GNU Linux-libre 4.14.266-gnu1
[releases.git] / Documentation / devicetree / bindings / bus / simple-pm-bus.txt
1 Simple Power-Managed Bus
2 ========================
3
4 A Simple Power-Managed Bus is a transparent bus that doesn't need a real
5 driver, as it's typically initialized by the boot loader.
6
7 However, its bus controller is part of a PM domain, or under the control of a
8 functional clock.  Hence, the bus controller's PM domain and/or clock must be
9 enabled for child devices connected to the bus (either on-SoC or externally)
10 to function.
11
12 While "simple-pm-bus" follows the "simple-bus" set of properties, as specified
13 in the Devicetree Specification, it is not an extension of "simple-bus".
14
15
16 Required properties:
17   - compatible: Must contain at least "simple-pm-bus".
18                 Must not contain "simple-bus".
19                 It's recommended to let this be preceded by one or more
20                 vendor-specific compatible values.
21   - #address-cells, #size-cells, ranges: Must describe the mapping between
22                 parent address and child address spaces.
23
24 Optional platform-specific properties for clock or PM domain control (at least
25 one of them is required):
26   - clocks: Must contain a reference to the functional clock(s),
27   - power-domains: Must contain a reference to the PM domain.
28 Please refer to the binding documentation for the clock and/or PM domain
29 providers for more details.
30
31
32 Example:
33
34         bsc: bus@fec10000 {
35                 compatible = "renesas,bsc-sh73a0", "renesas,bsc",
36                              "simple-pm-bus";
37                 #address-cells = <1>;
38                 #size-cells = <1>;
39                 ranges = <0 0 0x20000000>;
40                 reg = <0xfec10000 0x400>;
41                 interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>;
42                 clocks = <&zb_clk>;
43                 power-domains = <&pd_a4s>;
44         };