GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / bus / simple-pm-bus.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/bus/simple-pm-bus.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Simple Power-Managed Bus
8
9 maintainers:
10   - Geert Uytterhoeven <geert+renesas@glider.be>
11
12 description: |
13   A Simple Power-Managed Bus is a transparent bus that doesn't need a real
14   driver, as it's typically initialized by the boot loader.
15
16   However, its bus controller is part of a PM domain, or under the control
17   of a functional clock.  Hence, the bus controller's PM domain and/or
18   clock must be enabled for child devices connected to the bus (either
19   on-SoC or externally) to function.
20
21   While "simple-pm-bus" follows the "simple-bus" set of properties, as
22   specified in the Devicetree Specification, it is not an extension of
23   "simple-bus".
24
25 properties:
26   $nodename:
27     pattern: "^bus(@[0-9a-f]+)?$"
28
29   compatible:
30     contains:
31       const: simple-pm-bus
32     description:
33       Shall contain "simple-pm-bus" in addition to a optional bus-specific
34       compatible strings defined in individual pm-bus bindings.
35
36   '#address-cells':
37     enum: [ 1, 2 ]
38
39   '#size-cells':
40     enum: [ 1, 2 ]
41
42   ranges: true
43
44   clocks: true
45     # Functional clocks
46     # Required if power-domains is absent, optional otherwise
47
48   power-domains:
49     # Required if clocks is absent, optional otherwise
50     minItems: 1
51
52 required:
53   - compatible
54   - '#address-cells'
55   - '#size-cells'
56   - ranges
57
58 anyOf:
59   - required:
60       - clocks
61   - required:
62       - power-domains
63
64 additionalProperties: true
65
66 examples:
67   - |
68     #include <dt-bindings/clock/qcom,gcc-msm8996.h>
69     #include <dt-bindings/interrupt-controller/irq.h>
70
71     bus {
72         power-domains = <&gcc AGGRE0_NOC_GDSC>;
73         compatible = "simple-pm-bus";
74         #address-cells = <1>;
75         #size-cells = <1>;
76         ranges;
77     };