1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2e67e8565SEmmanuel Vadot%YAML 1.2
3e67e8565SEmmanuel Vadot---
4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/soc/samsung/exynos-pmu.yaml#
5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6e67e8565SEmmanuel Vadot
7e67e8565SEmmanuel Vadottitle: Samsung Exynos SoC series Power Management Unit (PMU)
8e67e8565SEmmanuel Vadot
9e67e8565SEmmanuel Vadotmaintainers:
10e67e8565SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11e67e8565SEmmanuel Vadot
12e67e8565SEmmanuel Vadot# Custom select to avoid matching all nodes with 'syscon'
13e67e8565SEmmanuel Vadotselect:
14e67e8565SEmmanuel Vadot  properties:
15e67e8565SEmmanuel Vadot    compatible:
16e67e8565SEmmanuel Vadot      contains:
17e67e8565SEmmanuel Vadot        enum:
18*8d13bc63SEmmanuel Vadot          - google,gs101-pmu
19e67e8565SEmmanuel Vadot          - samsung,exynos3250-pmu
20e67e8565SEmmanuel Vadot          - samsung,exynos4210-pmu
21f126890aSEmmanuel Vadot          - samsung,exynos4212-pmu
22e67e8565SEmmanuel Vadot          - samsung,exynos4412-pmu
23e67e8565SEmmanuel Vadot          - samsung,exynos5250-pmu
24e67e8565SEmmanuel Vadot          - samsung,exynos5260-pmu
25e67e8565SEmmanuel Vadot          - samsung,exynos5410-pmu
26e67e8565SEmmanuel Vadot          - samsung,exynos5420-pmu
27e67e8565SEmmanuel Vadot          - samsung,exynos5433-pmu
28e67e8565SEmmanuel Vadot          - samsung,exynos7-pmu
29e67e8565SEmmanuel Vadot          - samsung,exynos850-pmu
30e67e8565SEmmanuel Vadot          - samsung-s5pv210-pmu
31e67e8565SEmmanuel Vadot  required:
32e67e8565SEmmanuel Vadot    - compatible
33e67e8565SEmmanuel Vadot
34e67e8565SEmmanuel Vadotproperties:
35e67e8565SEmmanuel Vadot  compatible:
36cb7aa33aSEmmanuel Vadot    oneOf:
37cb7aa33aSEmmanuel Vadot      - items:
38e67e8565SEmmanuel Vadot          - enum:
39*8d13bc63SEmmanuel Vadot              - google,gs101-pmu
40e67e8565SEmmanuel Vadot              - samsung,exynos3250-pmu
41e67e8565SEmmanuel Vadot              - samsung,exynos4210-pmu
42f126890aSEmmanuel Vadot              - samsung,exynos4212-pmu
43e67e8565SEmmanuel Vadot              - samsung,exynos4412-pmu
44e67e8565SEmmanuel Vadot              - samsung,exynos5250-pmu
45e67e8565SEmmanuel Vadot              - samsung,exynos5260-pmu
46e67e8565SEmmanuel Vadot              - samsung,exynos5410-pmu
47e67e8565SEmmanuel Vadot              - samsung,exynos5420-pmu
48e67e8565SEmmanuel Vadot              - samsung,exynos5433-pmu
49e67e8565SEmmanuel Vadot              - samsung,exynos7-pmu
50e67e8565SEmmanuel Vadot              - samsung,exynos850-pmu
51e67e8565SEmmanuel Vadot              - samsung-s5pv210-pmu
52e67e8565SEmmanuel Vadot          - const: syscon
53cb7aa33aSEmmanuel Vadot      - items:
54cb7aa33aSEmmanuel Vadot          - enum:
55*8d13bc63SEmmanuel Vadot              - samsung,exynos7885-pmu
56*8d13bc63SEmmanuel Vadot              - samsung,exynosautov9-pmu
57*8d13bc63SEmmanuel Vadot              - samsung,exynosautov920-pmu
58*8d13bc63SEmmanuel Vadot              - tesla,fsd-pmu
59*8d13bc63SEmmanuel Vadot          - const: samsung,exynos7-pmu
60*8d13bc63SEmmanuel Vadot          - const: syscon
61*8d13bc63SEmmanuel Vadot      - items:
62*8d13bc63SEmmanuel Vadot          - enum:
63fac71e4eSEmmanuel Vadot              - samsung,exynos3250-pmu
64fac71e4eSEmmanuel Vadot              - samsung,exynos4210-pmu
65f126890aSEmmanuel Vadot              - samsung,exynos4212-pmu
66fac71e4eSEmmanuel Vadot              - samsung,exynos4412-pmu
67cb7aa33aSEmmanuel Vadot              - samsung,exynos5250-pmu
68cb7aa33aSEmmanuel Vadot              - samsung,exynos5420-pmu
69cb7aa33aSEmmanuel Vadot              - samsung,exynos5433-pmu
70cb7aa33aSEmmanuel Vadot          - const: simple-mfd
71cb7aa33aSEmmanuel Vadot          - const: syscon
72e67e8565SEmmanuel Vadot
73e67e8565SEmmanuel Vadot  reg:
74e67e8565SEmmanuel Vadot    maxItems: 1
75e67e8565SEmmanuel Vadot
76e67e8565SEmmanuel Vadot  '#clock-cells':
77e67e8565SEmmanuel Vadot    const: 1
78e67e8565SEmmanuel Vadot
79e67e8565SEmmanuel Vadot  clock-names:
80e67e8565SEmmanuel Vadot    description:
81e67e8565SEmmanuel Vadot      List of clock names for particular CLKOUT mux inputs
82e67e8565SEmmanuel Vadot    minItems: 1
83e67e8565SEmmanuel Vadot    maxItems: 32
84e67e8565SEmmanuel Vadot    items:
85e67e8565SEmmanuel Vadot      pattern: '^clkout([0-9]|[12][0-9]|3[0-1])$'
86e67e8565SEmmanuel Vadot
87e67e8565SEmmanuel Vadot  clocks:
88e67e8565SEmmanuel Vadot    minItems: 1
89e67e8565SEmmanuel Vadot    maxItems: 32
90e67e8565SEmmanuel Vadot
91cb7aa33aSEmmanuel Vadot  dp-phy:
92cb7aa33aSEmmanuel Vadot    $ref: /schemas/phy/samsung,dp-video-phy.yaml
93cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
94cb7aa33aSEmmanuel Vadot
95e67e8565SEmmanuel Vadot  interrupt-controller:
96e67e8565SEmmanuel Vadot    description:
97e67e8565SEmmanuel Vadot      Some PMUs are capable of behaving as an interrupt controller (mostly
98e67e8565SEmmanuel Vadot      to wake up a suspended PMU).
99e67e8565SEmmanuel Vadot
100e67e8565SEmmanuel Vadot  '#interrupt-cells':
101e67e8565SEmmanuel Vadot    description:
102e67e8565SEmmanuel Vadot      Must be identical to the that of the parent interrupt controller.
103e67e8565SEmmanuel Vadot    const: 3
104e67e8565SEmmanuel Vadot
105cb7aa33aSEmmanuel Vadot  mipi-phy:
106cb7aa33aSEmmanuel Vadot    $ref: /schemas/phy/samsung,mipi-video-phy.yaml
107cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
108cb7aa33aSEmmanuel Vadot
109b97ee269SEmmanuel Vadot  reboot-mode:
110b97ee269SEmmanuel Vadot    $ref: /schemas/power/reset/syscon-reboot-mode.yaml
111b97ee269SEmmanuel Vadot    type: object
112b97ee269SEmmanuel Vadot    description:
113b97ee269SEmmanuel Vadot      Reboot mode to alter bootloader behavior for the next boot
114b97ee269SEmmanuel Vadot
115e67e8565SEmmanuel Vadot  syscon-poweroff:
116b97ee269SEmmanuel Vadot    $ref: /schemas/power/reset/syscon-poweroff.yaml#
117e67e8565SEmmanuel Vadot    type: object
118e67e8565SEmmanuel Vadot    description:
119e67e8565SEmmanuel Vadot      Node for power off method
120e67e8565SEmmanuel Vadot
121e67e8565SEmmanuel Vadot  syscon-reboot:
122b97ee269SEmmanuel Vadot    $ref: /schemas/power/reset/syscon-reboot.yaml#
123e67e8565SEmmanuel Vadot    type: object
124e67e8565SEmmanuel Vadot    description:
125e67e8565SEmmanuel Vadot      Node for reboot method
126e67e8565SEmmanuel Vadot
127e67e8565SEmmanuel Vadotrequired:
128e67e8565SEmmanuel Vadot  - compatible
129e67e8565SEmmanuel Vadot  - reg
130e67e8565SEmmanuel Vadot
131e67e8565SEmmanuel VadotadditionalProperties: false
132e67e8565SEmmanuel Vadot
133e67e8565SEmmanuel VadotallOf:
134e67e8565SEmmanuel Vadot  - if:
135e67e8565SEmmanuel Vadot      properties:
136e67e8565SEmmanuel Vadot        compatible:
137e67e8565SEmmanuel Vadot          contains:
138e67e8565SEmmanuel Vadot            enum:
139e67e8565SEmmanuel Vadot              - samsung,exynos3250-pmu
140e67e8565SEmmanuel Vadot              - samsung,exynos4210-pmu
141f126890aSEmmanuel Vadot              - samsung,exynos4212-pmu
142e67e8565SEmmanuel Vadot              - samsung,exynos4412-pmu
143e67e8565SEmmanuel Vadot              - samsung,exynos5250-pmu
144e67e8565SEmmanuel Vadot              - samsung,exynos5410-pmu
145e67e8565SEmmanuel Vadot              - samsung,exynos5420-pmu
146e67e8565SEmmanuel Vadot              - samsung,exynos5433-pmu
147e67e8565SEmmanuel Vadot    then:
148e67e8565SEmmanuel Vadot      required:
149e67e8565SEmmanuel Vadot        - '#clock-cells'
150e67e8565SEmmanuel Vadot        - clock-names
151e67e8565SEmmanuel Vadot        - clocks
152e67e8565SEmmanuel Vadot
153cb7aa33aSEmmanuel Vadot  - if:
154cb7aa33aSEmmanuel Vadot      properties:
155cb7aa33aSEmmanuel Vadot        compatible:
156cb7aa33aSEmmanuel Vadot          contains:
157cb7aa33aSEmmanuel Vadot            enum:
158fac71e4eSEmmanuel Vadot              - samsung,exynos3250-pmu
159fac71e4eSEmmanuel Vadot              - samsung,exynos4210-pmu
160f126890aSEmmanuel Vadot              - samsung,exynos4212-pmu
161fac71e4eSEmmanuel Vadot              - samsung,exynos4412-pmu
162fac71e4eSEmmanuel Vadot              - samsung,exynos5250-pmu
163fac71e4eSEmmanuel Vadot              - samsung,exynos5420-pmu
164fac71e4eSEmmanuel Vadot              - samsung,exynos5433-pmu
165fac71e4eSEmmanuel Vadot    then:
166fac71e4eSEmmanuel Vadot      properties:
167fac71e4eSEmmanuel Vadot        mipi-phy: true
168fac71e4eSEmmanuel Vadot    else:
169fac71e4eSEmmanuel Vadot      properties:
170fac71e4eSEmmanuel Vadot        mipi-phy: false
171fac71e4eSEmmanuel Vadot
172fac71e4eSEmmanuel Vadot  - if:
173fac71e4eSEmmanuel Vadot      properties:
174fac71e4eSEmmanuel Vadot        compatible:
175fac71e4eSEmmanuel Vadot          contains:
176fac71e4eSEmmanuel Vadot            enum:
177cb7aa33aSEmmanuel Vadot              - samsung,exynos5250-pmu
178cb7aa33aSEmmanuel Vadot              - samsung,exynos5420-pmu
179cb7aa33aSEmmanuel Vadot              - samsung,exynos5433-pmu
180cb7aa33aSEmmanuel Vadot    then:
181cb7aa33aSEmmanuel Vadot      properties:
182cb7aa33aSEmmanuel Vadot        dp-phy: true
183cb7aa33aSEmmanuel Vadot    else:
184cb7aa33aSEmmanuel Vadot      properties:
185cb7aa33aSEmmanuel Vadot        dp-phy: false
186cb7aa33aSEmmanuel Vadot
187e67e8565SEmmanuel Vadotexamples:
188e67e8565SEmmanuel Vadot  - |
189e67e8565SEmmanuel Vadot    #include <dt-bindings/clock/exynos5250.h>
190e67e8565SEmmanuel Vadot
191e67e8565SEmmanuel Vadot    pmu_system_controller: system-controller@10040000 {
192e67e8565SEmmanuel Vadot        compatible = "samsung,exynos5250-pmu", "syscon";
193e67e8565SEmmanuel Vadot        reg = <0x10040000 0x5000>;
194e67e8565SEmmanuel Vadot        interrupt-controller;
195e67e8565SEmmanuel Vadot        #interrupt-cells = <3>;
196e67e8565SEmmanuel Vadot        interrupt-parent = <&gic>;
197e67e8565SEmmanuel Vadot        #clock-cells = <1>;
198e67e8565SEmmanuel Vadot        clock-names = "clkout16";
199e67e8565SEmmanuel Vadot        clocks = <&clock CLK_FIN_PLL>;
200cb7aa33aSEmmanuel Vadot
201cb7aa33aSEmmanuel Vadot        dp-phy {
202cb7aa33aSEmmanuel Vadot            compatible = "samsung,exynos5250-dp-video-phy";
203cb7aa33aSEmmanuel Vadot            #phy-cells = <0>;
204cb7aa33aSEmmanuel Vadot        };
205cb7aa33aSEmmanuel Vadot
206cb7aa33aSEmmanuel Vadot        mipi-phy {
207cb7aa33aSEmmanuel Vadot            compatible = "samsung,s5pv210-mipi-video-phy";
208cb7aa33aSEmmanuel Vadot            #phy-cells = <1>;
209cb7aa33aSEmmanuel Vadot        };
210e67e8565SEmmanuel Vadot    };
211