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