Kernel-4.18.0-80.el8_renesas,sysc-rmobile

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-“, “renesas,sysc-rmobile” as
        fallback.
        Examples with soctypes are:
      - "renesas,sysc-r8a73a4" (R-Mobile APE6)
      - "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>;
};