| DT bindings for the Renesas R-Mobile System Controller |
| |
| == System Controller Node == |
| |
| The R-Mobile System Controller provides the following functions: |
| - Boot mode management, |
| - Reset generation, |
| - Power management. |
| |
| Required properties: |
| - compatible: Should be "renesas,sysc-<soctype>", "renesas,sysc-rmobile" as |
| fallback. |
| Examples with soctypes are: |
| - "renesas,sysc-r8a7740" (R-Mobile A1) |
| - "renesas,sysc-sh73a0" (SH-Mobile AG5) |
| - reg: Two address start and address range blocks for the device: |
| - The first block refers to the normally accessible registers, |
| - the second block refers to the registers protected by the HPB |
| semaphore. |
| |
| Optional nodes: |
| - pm-domains: This node contains a hierarchy of PM domain nodes, which should |
| match the Power Area Hierarchy in the Power Domain Specifications section of |
| the device's datasheet. |
| |
| |
| == PM Domain Nodes == |
| |
| Each of the PM domain nodes represents a PM domain, as documented by the |
| generic PM domain bindings in |
| Documentation/devicetree/bindings/power/power_domain.txt. |
| |
| The nodes should be named by the real power area names, and thus their names |
| should be unique. |
| |
| Required properties: |
| - #power-domain-cells: Must be 0. |
| |
| Optional properties: |
| - reg: If the PM domain is not always-on, this property must contain the bit |
| index number for the corresponding power area in the various Power |
| Control and Status Registers. The parent's node must contain the |
| following two properties: |
| - #address-cells: Must be 1, |
| - #size-cells: Must be 0. |
| If the PM domain is always-on, this property must be omitted. |
| |
| |
| Example: |
| |
| This shows a subset of the r8a7740 PM domain hierarchy, containing the |
| C5 "always-on" domain, 2 of its subdomains (A4S and A4SU), and the A3SP domain, |
| which is a subdomain of A4S. |
| |
| sysc: system-controller@e6180000 { |
| compatible = "renesas,sysc-r8a7740", "renesas,sysc-rmobile"; |
| reg = <0xe6180000 0x8000>, <0xe6188000 0x8000>; |
| |
| pm-domains { |
| pd_c5: c5 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| #power-domain-cells = <0>; |
| |
| pd_a4s: a4s@10 { |
| reg = <10>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| #power-domain-cells = <0>; |
| |
| pd_a3sp: a3sp@11 { |
| reg = <11>; |
| #power-domain-cells = <0>; |
| }; |
| }; |
| |
| pd_a4su: a4su@20 { |
| reg = <20>; |
| #power-domain-cells = <0>; |
| }; |
| }; |
| }; |
| }; |
| |
| |
| == PM Domain Consumers == |
| |
| Hardware blocks belonging to a PM domain should contain a "power-domains" |
| property that is a phandle pointing to the corresponding PM domain node. |
| |
| Example: |
| |
| tpu: pwm@e6600000 { |
| compatible = "renesas,tpu-r8a7740", "renesas,tpu"; |
| reg = <0xe6600000 0x100>; |
| clocks = <&mstp3_clks R8A7740_CLK_TPU0>; |
| power-domains = <&pd_a3sp>; |
| #pwm-cells = <3>; |
| }; |