1*c66ec88fSEmmanuel VadotDT bindings for the Renesas R-Mobile System Controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel Vadot== System Controller Node ==
4*c66ec88fSEmmanuel Vadot
5*c66ec88fSEmmanuel VadotThe R-Mobile System Controller provides the following functions:
6*c66ec88fSEmmanuel Vadot  - Boot mode management,
7*c66ec88fSEmmanuel Vadot  - Reset generation,
8*c66ec88fSEmmanuel Vadot  - Power management.
9*c66ec88fSEmmanuel Vadot
10*c66ec88fSEmmanuel VadotRequired properties:
11*c66ec88fSEmmanuel Vadot- compatible: Should be "renesas,sysc-<soctype>", "renesas,sysc-rmobile" as
12*c66ec88fSEmmanuel Vadot	      fallback.
13*c66ec88fSEmmanuel Vadot	      Examples with soctypes are:
14*c66ec88fSEmmanuel Vadot		- "renesas,sysc-r8a73a4" (R-Mobile APE6)
15*c66ec88fSEmmanuel Vadot		- "renesas,sysc-r8a7740" (R-Mobile A1)
16*c66ec88fSEmmanuel Vadot		- "renesas,sysc-sh73a0" (SH-Mobile AG5)
17*c66ec88fSEmmanuel Vadot- reg: Two address start and address range blocks for the device:
18*c66ec88fSEmmanuel Vadot         - The first block refers to the normally accessible registers,
19*c66ec88fSEmmanuel Vadot         - the second block refers to the registers protected by the HPB
20*c66ec88fSEmmanuel Vadot	   semaphore.
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel VadotOptional nodes:
23*c66ec88fSEmmanuel Vadot- pm-domains: This node contains a hierarchy of PM domain nodes, which should
24*c66ec88fSEmmanuel Vadot  match the Power Area Hierarchy in the Power Domain Specifications section of
25*c66ec88fSEmmanuel Vadot  the device's datasheet.
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot== PM Domain Nodes ==
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel VadotEach of the PM domain nodes represents a PM domain, as documented by the
31*c66ec88fSEmmanuel Vadotgeneric PM domain bindings in
32*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/power/power-domain.yaml.
33*c66ec88fSEmmanuel Vadot
34*c66ec88fSEmmanuel VadotThe nodes should be named by the real power area names, and thus their names
35*c66ec88fSEmmanuel Vadotshould be unique.
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel VadotRequired properties:
38*c66ec88fSEmmanuel Vadot  - #power-domain-cells: Must be 0.
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel VadotOptional properties:
41*c66ec88fSEmmanuel Vadot- reg: If the PM domain is not always-on, this property must contain the bit
42*c66ec88fSEmmanuel Vadot       index number for the corresponding power area in the various Power
43*c66ec88fSEmmanuel Vadot       Control and Status Registers. The parent's node must contain the
44*c66ec88fSEmmanuel Vadot       following two properties:
45*c66ec88fSEmmanuel Vadot	 - #address-cells: Must be 1,
46*c66ec88fSEmmanuel Vadot	 - #size-cells: Must be 0.
47*c66ec88fSEmmanuel Vadot       If the PM domain is always-on, this property must be omitted.
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel VadotExample:
51*c66ec88fSEmmanuel Vadot
52*c66ec88fSEmmanuel VadotThis shows a subset of the r8a7740 PM domain hierarchy, containing the
53*c66ec88fSEmmanuel VadotC5 "always-on" domain, 2 of its subdomains (A4S and A4SU), and the A3SP domain,
54*c66ec88fSEmmanuel Vadotwhich is a subdomain of A4S.
55*c66ec88fSEmmanuel Vadot
56*c66ec88fSEmmanuel Vadot	sysc: system-controller@e6180000 {
57*c66ec88fSEmmanuel Vadot		compatible = "renesas,sysc-r8a7740", "renesas,sysc-rmobile";
58*c66ec88fSEmmanuel Vadot		reg = <0xe6180000 0x8000>, <0xe6188000 0x8000>;
59*c66ec88fSEmmanuel Vadot
60*c66ec88fSEmmanuel Vadot		pm-domains {
61*c66ec88fSEmmanuel Vadot			pd_c5: c5 {
62*c66ec88fSEmmanuel Vadot				#address-cells = <1>;
63*c66ec88fSEmmanuel Vadot				#size-cells = <0>;
64*c66ec88fSEmmanuel Vadot				#power-domain-cells = <0>;
65*c66ec88fSEmmanuel Vadot
66*c66ec88fSEmmanuel Vadot				pd_a4s: a4s@10 {
67*c66ec88fSEmmanuel Vadot					reg = <10>;
68*c66ec88fSEmmanuel Vadot					#address-cells = <1>;
69*c66ec88fSEmmanuel Vadot					#size-cells = <0>;
70*c66ec88fSEmmanuel Vadot					#power-domain-cells = <0>;
71*c66ec88fSEmmanuel Vadot
72*c66ec88fSEmmanuel Vadot					pd_a3sp: a3sp@11 {
73*c66ec88fSEmmanuel Vadot						reg = <11>;
74*c66ec88fSEmmanuel Vadot						#power-domain-cells = <0>;
75*c66ec88fSEmmanuel Vadot					};
76*c66ec88fSEmmanuel Vadot				};
77*c66ec88fSEmmanuel Vadot
78*c66ec88fSEmmanuel Vadot				pd_a4su: a4su@20 {
79*c66ec88fSEmmanuel Vadot					reg = <20>;
80*c66ec88fSEmmanuel Vadot					#power-domain-cells = <0>;
81*c66ec88fSEmmanuel Vadot				};
82*c66ec88fSEmmanuel Vadot			};
83*c66ec88fSEmmanuel Vadot		};
84*c66ec88fSEmmanuel Vadot	};
85*c66ec88fSEmmanuel Vadot
86*c66ec88fSEmmanuel Vadot
87*c66ec88fSEmmanuel Vadot== PM Domain Consumers ==
88*c66ec88fSEmmanuel Vadot
89*c66ec88fSEmmanuel VadotHardware blocks belonging to a PM domain should contain a "power-domains"
90*c66ec88fSEmmanuel Vadotproperty that is a phandle pointing to the corresponding PM domain node.
91*c66ec88fSEmmanuel Vadot
92*c66ec88fSEmmanuel VadotExample:
93*c66ec88fSEmmanuel Vadot
94*c66ec88fSEmmanuel Vadot	tpu: pwm@e6600000 {
95*c66ec88fSEmmanuel Vadot		compatible = "renesas,tpu-r8a7740", "renesas,tpu";
96*c66ec88fSEmmanuel Vadot		reg = <0xe6600000 0x100>;
97*c66ec88fSEmmanuel Vadot		clocks = <&mstp3_clks R8A7740_CLK_TPU0>;
98*c66ec88fSEmmanuel Vadot		power-domains = <&pd_a3sp>;
99*c66ec88fSEmmanuel Vadot		#pwm-cells = <3>;
100*c66ec88fSEmmanuel Vadot	};
101