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
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-s5pv210-pmu
28  required:
29    - compatible
30
31properties:
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
90required:
91  - compatible
92  - reg
93
94additionalProperties: false
95
96allOf:
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
115examples:
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    };
129