1*4d92239bSGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*4d92239bSGeert Uytterhoeven%YAML 1.2
3*4d92239bSGeert Uytterhoeven---
4*4d92239bSGeert Uytterhoeven$id: http://devicetree.org/schemas/power/renesas,sysc-rmobile.yaml#
5*4d92239bSGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4d92239bSGeert Uytterhoeven
7*4d92239bSGeert Uytterhoeventitle: Renesas R-Mobile System Controller
8*4d92239bSGeert Uytterhoeven
9*4d92239bSGeert Uytterhoevenmaintainers:
10*4d92239bSGeert Uytterhoeven  - Geert Uytterhoeven <geert+renesas@glider.be>
11*4d92239bSGeert Uytterhoeven  - Magnus Damm <magnus.damm@gmail.com>
12*4d92239bSGeert Uytterhoeven
13*4d92239bSGeert Uytterhoevendescription: |
14*4d92239bSGeert Uytterhoeven  The R-Mobile System Controller provides the following functions:
15*4d92239bSGeert Uytterhoeven    - Boot mode management,
16*4d92239bSGeert Uytterhoeven    - Reset generation,
17*4d92239bSGeert Uytterhoeven    - Power management.
18*4d92239bSGeert Uytterhoeven
19*4d92239bSGeert Uytterhoevenproperties:
20*4d92239bSGeert Uytterhoeven  compatible:
21*4d92239bSGeert Uytterhoeven    items:
22*4d92239bSGeert Uytterhoeven      - enum:
23*4d92239bSGeert Uytterhoeven          - renesas,sysc-r8a73a4    # R-Mobile APE6
24*4d92239bSGeert Uytterhoeven          - renesas,sysc-r8a7740    # R-Mobile A1
25*4d92239bSGeert Uytterhoeven          - renesas,sysc-sh73a0     # SH-Mobile AG5
26*4d92239bSGeert Uytterhoeven      - const: renesas,sysc-rmobile # Generic SH/R-Mobile
27*4d92239bSGeert Uytterhoeven
28*4d92239bSGeert Uytterhoeven  reg:
29*4d92239bSGeert Uytterhoeven    items:
30*4d92239bSGeert Uytterhoeven      - description: Normally accessible register block
31*4d92239bSGeert Uytterhoeven      - description: Register block protected by the HPB semaphore
32*4d92239bSGeert Uytterhoeven
33*4d92239bSGeert Uytterhoeven  pm-domains:
34*4d92239bSGeert Uytterhoeven    type: object
35*4d92239bSGeert Uytterhoeven    description: |
36*4d92239bSGeert Uytterhoeven      This node contains a hierarchy of PM domain nodes, which should match the
37*4d92239bSGeert Uytterhoeven      Power Area Hierarchy in the Power Domain Specifications section of the
38*4d92239bSGeert Uytterhoeven      device's datasheet.
39*4d92239bSGeert Uytterhoeven
40*4d92239bSGeert Uytterhoeven    properties:
41*4d92239bSGeert Uytterhoeven      '#address-cells':
42*4d92239bSGeert Uytterhoeven        const: 1
43*4d92239bSGeert Uytterhoeven
44*4d92239bSGeert Uytterhoeven      '#size-cells':
45*4d92239bSGeert Uytterhoeven        const: 0
46*4d92239bSGeert Uytterhoeven
47*4d92239bSGeert Uytterhoeven    additionalProperties:
48*4d92239bSGeert Uytterhoeven      $ref: "#/$defs/pd-node"
49*4d92239bSGeert Uytterhoeven
50*4d92239bSGeert Uytterhoevenrequired:
51*4d92239bSGeert Uytterhoeven  - compatible
52*4d92239bSGeert Uytterhoeven  - reg
53*4d92239bSGeert Uytterhoeven  - pm-domains
54*4d92239bSGeert Uytterhoeven
55*4d92239bSGeert UytterhoevenadditionalProperties: false
56*4d92239bSGeert Uytterhoeven
57*4d92239bSGeert Uytterhoeven$defs:
58*4d92239bSGeert Uytterhoeven  pd-node:
59*4d92239bSGeert Uytterhoeven    type: object
60*4d92239bSGeert Uytterhoeven    description:
61*4d92239bSGeert Uytterhoeven      PM domain node representing a PM domain.  This node hould be named by
62*4d92239bSGeert Uytterhoeven      the real power area name, and thus its name should be unique.
63*4d92239bSGeert Uytterhoeven
64*4d92239bSGeert Uytterhoeven    properties:
65*4d92239bSGeert Uytterhoeven      reg:
66*4d92239bSGeert Uytterhoeven        maxItems: 1
67*4d92239bSGeert Uytterhoeven        description:
68*4d92239bSGeert Uytterhoeven          If the PM domain is not always-on, this property must contain the
69*4d92239bSGeert Uytterhoeven          bit index number for the corresponding power area in the various
70*4d92239bSGeert Uytterhoeven          Power Control and Status Registers.
71*4d92239bSGeert Uytterhoeven          If the PM domain is always-on, this property must be omitted.
72*4d92239bSGeert Uytterhoeven
73*4d92239bSGeert Uytterhoeven      '#address-cells':
74*4d92239bSGeert Uytterhoeven        const: 1
75*4d92239bSGeert Uytterhoeven
76*4d92239bSGeert Uytterhoeven      '#size-cells':
77*4d92239bSGeert Uytterhoeven        const: 0
78*4d92239bSGeert Uytterhoeven
79*4d92239bSGeert Uytterhoeven      '#power-domain-cells':
80*4d92239bSGeert Uytterhoeven        const: 0
81*4d92239bSGeert Uytterhoeven
82*4d92239bSGeert Uytterhoeven    required:
83*4d92239bSGeert Uytterhoeven      - '#power-domain-cells'
84*4d92239bSGeert Uytterhoeven
85*4d92239bSGeert Uytterhoeven    additionalProperties:
86*4d92239bSGeert Uytterhoeven      $ref: "#/$defs/pd-node"
87*4d92239bSGeert Uytterhoeven
88*4d92239bSGeert Uytterhoevenexamples:
89*4d92239bSGeert Uytterhoeven  - |
90*4d92239bSGeert Uytterhoeven    // This shows a subset of the r8a7740 PM domain hierarchy, containing the
91*4d92239bSGeert Uytterhoeven    // C5 "always-on" domain, 2 of its subdomains (A4S and A4SU), and the A3SP
92*4d92239bSGeert Uytterhoeven    // domain, which is a subdomain of A4S.
93*4d92239bSGeert Uytterhoeven    sysc: system-controller@e6180000 {
94*4d92239bSGeert Uytterhoeven            compatible = "renesas,sysc-r8a7740", "renesas,sysc-rmobile";
95*4d92239bSGeert Uytterhoeven            reg = <0xe6180000 0x8000>, <0xe6188000 0x8000>;
96*4d92239bSGeert Uytterhoeven
97*4d92239bSGeert Uytterhoeven            pm-domains {
98*4d92239bSGeert Uytterhoeven                    pd_c5: c5 {
99*4d92239bSGeert Uytterhoeven                            #address-cells = <1>;
100*4d92239bSGeert Uytterhoeven                            #size-cells = <0>;
101*4d92239bSGeert Uytterhoeven                            #power-domain-cells = <0>;
102*4d92239bSGeert Uytterhoeven
103*4d92239bSGeert Uytterhoeven                            pd_a4s: a4s@10 {
104*4d92239bSGeert Uytterhoeven                                    reg = <10>;
105*4d92239bSGeert Uytterhoeven                                    #address-cells = <1>;
106*4d92239bSGeert Uytterhoeven                                    #size-cells = <0>;
107*4d92239bSGeert Uytterhoeven                                    #power-domain-cells = <0>;
108*4d92239bSGeert Uytterhoeven
109*4d92239bSGeert Uytterhoeven                                    pd_a3sp: a3sp@11 {
110*4d92239bSGeert Uytterhoeven                                            reg = <11>;
111*4d92239bSGeert Uytterhoeven                                            #power-domain-cells = <0>;
112*4d92239bSGeert Uytterhoeven                                    };
113*4d92239bSGeert Uytterhoeven                            };
114*4d92239bSGeert Uytterhoeven
115*4d92239bSGeert Uytterhoeven                            pd_a4su: a4su@20 {
116*4d92239bSGeert Uytterhoeven                                    reg = <20>;
117*4d92239bSGeert Uytterhoeven                                    #power-domain-cells = <0>;
118*4d92239bSGeert Uytterhoeven                            };
119*4d92239bSGeert Uytterhoeven                    };
120*4d92239bSGeert Uytterhoeven            };
121*4d92239bSGeert Uytterhoeven    };
122