GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / soc / samsung / exynos-pmu.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/soc/samsung/exynos-pmu.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Samsung Exynos SoC series Power Management Unit (PMU)
8
9 maintainers:
10   - Krzysztof Kozlowski <krzk@kernel.org>
11
12 # Custom select to avoid matching all nodes with 'syscon'
13 select:
14   properties:
15     compatible:
16       contains:
17         enum:
18           - samsung,exynos3250-pmu
19           - samsung,exynos4210-pmu
20           - samsung,exynos4412-pmu
21           - samsung,exynos5250-pmu
22           - samsung,exynos5260-pmu
23           - samsung,exynos5410-pmu
24           - samsung,exynos5420-pmu
25           - samsung,exynos5433-pmu
26           - samsung,exynos7-pmu
27           - samsung,exynos850-pmu
28           - samsung-s5pv210-pmu
29   required:
30     - compatible
31
32 properties:
33   compatible:
34     items:
35       - enum:
36           - samsung,exynos3250-pmu
37           - samsung,exynos4210-pmu
38           - samsung,exynos4412-pmu
39           - samsung,exynos5250-pmu
40           - samsung,exynos5260-pmu
41           - samsung,exynos5410-pmu
42           - samsung,exynos5420-pmu
43           - samsung,exynos5433-pmu
44           - samsung,exynos7-pmu
45           - samsung,exynos850-pmu
46           - samsung-s5pv210-pmu
47       - const: syscon
48
49   reg:
50     maxItems: 1
51
52   '#clock-cells':
53     const: 1
54
55   clock-names:
56     description:
57       List of clock names for particular CLKOUT mux inputs
58     minItems: 1
59     maxItems: 32
60     items:
61       pattern: '^clkout([0-9]|[12][0-9]|3[0-1])$'
62
63   clocks:
64     minItems: 1
65     maxItems: 32
66
67   interrupt-controller:
68     description:
69       Some PMUs are capable of behaving as an interrupt controller (mostly
70       to wake up a suspended PMU).
71
72   '#interrupt-cells':
73     description:
74       Must be identical to the that of the parent interrupt controller.
75     const: 3
76
77   reboot-mode:
78     $ref: /schemas/power/reset/syscon-reboot-mode.yaml
79     type: object
80     description:
81       Reboot mode to alter bootloader behavior for the next boot
82
83   syscon-poweroff:
84     $ref: /schemas/power/reset/syscon-poweroff.yaml#
85     type: object
86     description:
87       Node for power off method
88
89   syscon-reboot:
90     $ref: /schemas/power/reset/syscon-reboot.yaml#
91     type: object
92     description:
93       Node for reboot method
94
95 required:
96   - compatible
97   - reg
98
99 additionalProperties: false
100
101 allOf:
102   - if:
103       properties:
104         compatible:
105           contains:
106             enum:
107               - samsung,exynos3250-pmu
108               - samsung,exynos4210-pmu
109               - samsung,exynos4412-pmu
110               - samsung,exynos5250-pmu
111               - samsung,exynos5410-pmu
112               - samsung,exynos5420-pmu
113               - samsung,exynos5433-pmu
114     then:
115       required:
116         - '#clock-cells'
117         - clock-names
118         - clocks
119
120 examples:
121   - |
122     #include <dt-bindings/clock/exynos5250.h>
123
124     pmu_system_controller: system-controller@10040000 {
125         compatible = "samsung,exynos5250-pmu", "syscon";
126         reg = <0x10040000 0x5000>;
127         interrupt-controller;
128         #interrupt-cells = <3>;
129         interrupt-parent = <&gic>;
130         #clock-cells = <1>;
131         clock-names = "clkout16";
132         clocks = <&clock CLK_FIN_PLL>;
133     };