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