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