Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/bus/simple-pm-bus.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Simple Power-Managed Bus
0008 
0009 maintainers:
0010   - Geert Uytterhoeven <geert+renesas@glider.be>
0011 
0012 description: |
0013   A Simple Power-Managed Bus is a transparent bus that doesn't need a real
0014   driver, as it's typically initialized by the boot loader.
0015 
0016   However, its bus controller is part of a PM domain, or under the control
0017   of a functional clock.  Hence, the bus controller's PM domain and/or
0018   clock must be enabled for child devices connected to the bus (either
0019   on-SoC or externally) to function.
0020 
0021   While "simple-pm-bus" follows the "simple-bus" set of properties, as
0022   specified in the Devicetree Specification, it is not an extension of
0023   "simple-bus".
0024 
0025 properties:
0026   $nodename:
0027     pattern: "^bus(@[0-9a-f]+)?$"
0028 
0029   compatible:
0030     contains:
0031       const: simple-pm-bus
0032     description:
0033       Shall contain "simple-pm-bus" in addition to a optional bus-specific
0034       compatible strings defined in individual pm-bus bindings.
0035 
0036   '#address-cells':
0037     enum: [ 1, 2 ]
0038 
0039   '#size-cells':
0040     enum: [ 1, 2 ]
0041 
0042   ranges: true
0043 
0044   clocks: true
0045     # Functional clocks
0046     # Required if power-domains is absent, optional otherwise
0047 
0048   power-domains:
0049     # Required if clocks is absent, optional otherwise
0050     minItems: 1
0051 
0052 required:
0053   - compatible
0054   - '#address-cells'
0055   - '#size-cells'
0056   - ranges
0057 
0058 anyOf:
0059   - required:
0060       - clocks
0061   - required:
0062       - power-domains
0063 
0064 additionalProperties: true
0065 
0066 examples:
0067   - |
0068     #include <dt-bindings/clock/qcom,gcc-msm8996.h>
0069     #include <dt-bindings/interrupt-controller/irq.h>
0070 
0071     bus {
0072         power-domains = <&gcc AGGRE0_NOC_GDSC>;
0073         compatible = "simple-pm-bus";
0074         #address-cells = <1>;
0075         #size-cells = <1>;
0076         ranges;
0077     };