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
7title: Samsung Exynos SoC series Power Management Unit (PMU)
8
9maintainers:
10  - Krzysztof Kozlowski <krzk@kernel.org>
11
12# Custom select to avoid matching all nodes with 'syscon'
13select:
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
32properties:
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  assigned-clock-parents: true
53  assigned-clocks: true
54
55  '#clock-cells':
56    const: 1
57
58  clock-names:
59    description:
60      List of clock names for particular CLKOUT mux inputs
61    minItems: 1
62    maxItems: 32
63    items:
64      pattern: '^clkout([0-9]|[12][0-9]|3[0-1])$'
65
66  clocks:
67    minItems: 1
68    maxItems: 32
69
70  interrupt-controller:
71    description:
72      Some PMUs are capable of behaving as an interrupt controller (mostly
73      to wake up a suspended PMU).
74
75  '#interrupt-cells':
76    description:
77      Must be identical to the that of the parent interrupt controller.
78    const: 3
79
80  syscon-poweroff:
81    $ref: "../../power/reset/syscon-poweroff.yaml#"
82    type: object
83    description:
84      Node for power off method
85
86  syscon-reboot:
87    $ref: "../../power/reset/syscon-reboot.yaml#"
88    type: object
89    description:
90      Node for reboot method
91
92required:
93  - compatible
94  - reg
95
96additionalProperties: false
97
98allOf:
99  - if:
100      properties:
101        compatible:
102          contains:
103            enum:
104              - samsung,exynos3250-pmu
105              - samsung,exynos4210-pmu
106              - samsung,exynos4412-pmu
107              - samsung,exynos5250-pmu
108              - samsung,exynos5410-pmu
109              - samsung,exynos5420-pmu
110              - samsung,exynos5433-pmu
111    then:
112      required:
113        - '#clock-cells'
114        - clock-names
115        - clocks
116
117examples:
118  - |
119    #include <dt-bindings/clock/exynos5250.h>
120
121    pmu_system_controller: system-controller@10040000 {
122        compatible = "samsung,exynos5250-pmu", "syscon";
123        reg = <0x10040000 0x5000>;
124        interrupt-controller;
125        #interrupt-cells = <3>;
126        interrupt-parent = <&gic>;
127        #clock-cells = <1>;
128        clock-names = "clkout16";
129        clocks = <&clock CLK_FIN_PLL>;
130    };
131