Merge branches 'pm-cpufreq' and 'pm-cpuidle'
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / arm / samsung / pmu.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/arm/samsung/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-s5pv210-pmu
28   required:
29     - compatible
30
31 properties:
32   compatible:
33     items:
34       - enum:
35           - samsung,exynos3250-pmu
36           - samsung,exynos4210-pmu
37           - samsung,exynos4412-pmu
38           - samsung,exynos5250-pmu
39           - samsung,exynos5260-pmu
40           - samsung,exynos5410-pmu
41           - samsung,exynos5420-pmu
42           - samsung,exynos5433-pmu
43           - samsung,exynos7-pmu
44           - samsung-s5pv210-pmu
45       - const: syscon
46
47   reg:
48     maxItems: 1
49
50   assigned-clock-parents: true
51   assigned-clocks: true
52
53   '#clock-cells':
54     const: 1
55
56   clock-names:
57     description:
58       List of clock names for particular CLKOUT mux inputs
59     minItems: 1
60     maxItems: 32
61     items:
62       pattern: '^clkout([0-9]|[12][0-9]|3[0-1])$'
63
64   clocks:
65     minItems: 1
66     maxItems: 32
67
68   interrupt-controller:
69     description:
70       Some PMUs are capable of behaving as an interrupt controller (mostly
71       to wake up a suspended PMU).
72
73   '#interrupt-cells':
74     description:
75       Must be identical to the that of the parent interrupt controller.
76     const: 3
77
78   syscon-poweroff:
79     $ref: "../../power/reset/syscon-poweroff.yaml#"
80     type: object
81     description:
82       Node for power off method
83
84   syscon-reboot:
85     $ref: "../../power/reset/syscon-reboot.yaml#"
86     type: object
87     description:
88       Node for reboot method
89
90 required:
91   - compatible
92   - reg
93
94 additionalProperties: false
95
96 allOf:
97   - if:
98       properties:
99         compatible:
100           contains:
101             enum:
102               - samsung,exynos3250-pmu
103               - samsung,exynos4210-pmu
104               - samsung,exynos4412-pmu
105               - samsung,exynos5250-pmu
106               - samsung,exynos5410-pmu
107               - samsung,exynos5420-pmu
108               - samsung,exynos5433-pmu
109     then:
110       required:
111         - '#clock-cells'
112         - clock-names
113         - clocks
114
115 examples:
116   - |
117     #include <dt-bindings/clock/exynos5250.h>
118
119     pmu_system_controller: system-controller@10040000 {
120         compatible = "samsung,exynos5250-pmu", "syscon";
121         reg = <0x10040000 0x5000>;
122         interrupt-controller;
123         #interrupt-cells = <3>;
124         interrupt-parent = <&gic>;
125         #clock-cells = <1>;
126         clock-names = "clkout16";
127         clocks = <&clock CLK_FIN_PLL>;
128     };