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  '#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
95required:
96  - compatible
97  - reg
98
99additionalProperties: false
100
101allOf:
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
120examples:
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    };
134