| Simple Power-Managed Bus |
| ======================== |
| |
| A Simple Power-Managed Bus is a transparent bus that doesn't need a real |
| driver, as it's typically initialized by the boot loader. |
| |
| However, its bus controller is part of a PM domain, or under the control of a |
| functional clock. Hence, the bus controller's PM domain and/or clock must be |
| enabled for child devices connected to the bus (either on-SoC or externally) |
| to function. |
| |
| While "simple-pm-bus" follows the "simple-bus" set of properties, as specified |
| in the Devicetree Specification, it is not an extension of "simple-bus". |
| |
| |
| Required properties: |
| - compatible: Must contain at least "simple-pm-bus". |
| Must not contain "simple-bus". |
| It's recommended to let this be preceded by one or more |
| vendor-specific compatible values. |
| - #address-cells, #size-cells, ranges: Must describe the mapping between |
| parent address and child address spaces. |
| |
| Optional platform-specific properties for clock or PM domain control (at least |
| one of them is required): |
| - clocks: Must contain a reference to the functional clock(s), |
| - power-domains: Must contain a reference to the PM domain. |
| Please refer to the binding documentation for the clock and/or PM domain |
| providers for more details. |
| |
| |
| Example: |
| |
| bsc: bus@fec10000 { |
| compatible = "renesas,bsc-sh73a0", "renesas,bsc", |
| "simple-pm-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges = <0 0 0x20000000>; |
| reg = <0xfec10000 0x400>; |
| interrupts = <0 39 IRQ_TYPE_LEVEL_HIGH>; |
| clocks = <&zb_clk>; |
| power-domains = <&pd_a4s>; |
| }; |