xref: /freebsd/sys/contrib/device-tree/Bindings/soc/samsung/exynos-pmu.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2e67e8565SEmmanuel Vadot%YAML 1.2
3e67e8565SEmmanuel Vadot---
4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/soc/samsung/exynos-pmu.yaml#
5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6e67e8565SEmmanuel Vadot
7e67e8565SEmmanuel Vadottitle: Samsung Exynos SoC series Power Management Unit (PMU)
8e67e8565SEmmanuel Vadot
9e67e8565SEmmanuel Vadotmaintainers:
10e67e8565SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11e67e8565SEmmanuel Vadot
12e67e8565SEmmanuel Vadot# Custom select to avoid matching all nodes with 'syscon'
13e67e8565SEmmanuel Vadotselect:
14e67e8565SEmmanuel Vadot  properties:
15e67e8565SEmmanuel Vadot    compatible:
16e67e8565SEmmanuel Vadot      contains:
17e67e8565SEmmanuel Vadot        enum:
18e67e8565SEmmanuel Vadot          - samsung,exynos3250-pmu
19e67e8565SEmmanuel Vadot          - samsung,exynos4210-pmu
20e67e8565SEmmanuel Vadot          - samsung,exynos4412-pmu
21e67e8565SEmmanuel Vadot          - samsung,exynos5250-pmu
22e67e8565SEmmanuel Vadot          - samsung,exynos5260-pmu
23e67e8565SEmmanuel Vadot          - samsung,exynos5410-pmu
24e67e8565SEmmanuel Vadot          - samsung,exynos5420-pmu
25e67e8565SEmmanuel Vadot          - samsung,exynos5433-pmu
26e67e8565SEmmanuel Vadot          - samsung,exynos7-pmu
27e67e8565SEmmanuel Vadot          - samsung,exynos850-pmu
28e67e8565SEmmanuel Vadot          - samsung-s5pv210-pmu
29e67e8565SEmmanuel Vadot  required:
30e67e8565SEmmanuel Vadot    - compatible
31e67e8565SEmmanuel Vadot
32e67e8565SEmmanuel Vadotproperties:
33e67e8565SEmmanuel Vadot  compatible:
34cb7aa33aSEmmanuel Vadot    oneOf:
35cb7aa33aSEmmanuel Vadot      - items:
36e67e8565SEmmanuel Vadot          - enum:
37e67e8565SEmmanuel Vadot              - samsung,exynos3250-pmu
38e67e8565SEmmanuel Vadot              - samsung,exynos4210-pmu
39e67e8565SEmmanuel Vadot              - samsung,exynos4412-pmu
40e67e8565SEmmanuel Vadot              - samsung,exynos5250-pmu
41e67e8565SEmmanuel Vadot              - samsung,exynos5260-pmu
42e67e8565SEmmanuel Vadot              - samsung,exynos5410-pmu
43e67e8565SEmmanuel Vadot              - samsung,exynos5420-pmu
44e67e8565SEmmanuel Vadot              - samsung,exynos5433-pmu
45e67e8565SEmmanuel Vadot              - samsung,exynos7-pmu
46e67e8565SEmmanuel Vadot              - samsung,exynos850-pmu
47e67e8565SEmmanuel Vadot              - samsung-s5pv210-pmu
48e67e8565SEmmanuel Vadot          - const: syscon
49cb7aa33aSEmmanuel Vadot      - items:
50cb7aa33aSEmmanuel Vadot          - enum:
51*fac71e4eSEmmanuel Vadot              - samsung,exynos3250-pmu
52*fac71e4eSEmmanuel Vadot              - samsung,exynos4210-pmu
53*fac71e4eSEmmanuel Vadot              - samsung,exynos4412-pmu
54cb7aa33aSEmmanuel Vadot              - samsung,exynos5250-pmu
55cb7aa33aSEmmanuel Vadot              - samsung,exynos5420-pmu
56cb7aa33aSEmmanuel Vadot              - samsung,exynos5433-pmu
57cb7aa33aSEmmanuel Vadot          - const: simple-mfd
58cb7aa33aSEmmanuel Vadot          - const: syscon
59e67e8565SEmmanuel Vadot
60e67e8565SEmmanuel Vadot  reg:
61e67e8565SEmmanuel Vadot    maxItems: 1
62e67e8565SEmmanuel Vadot
63e67e8565SEmmanuel Vadot  '#clock-cells':
64e67e8565SEmmanuel Vadot    const: 1
65e67e8565SEmmanuel Vadot
66e67e8565SEmmanuel Vadot  clock-names:
67e67e8565SEmmanuel Vadot    description:
68e67e8565SEmmanuel Vadot      List of clock names for particular CLKOUT mux inputs
69e67e8565SEmmanuel Vadot    minItems: 1
70e67e8565SEmmanuel Vadot    maxItems: 32
71e67e8565SEmmanuel Vadot    items:
72e67e8565SEmmanuel Vadot      pattern: '^clkout([0-9]|[12][0-9]|3[0-1])$'
73e67e8565SEmmanuel Vadot
74e67e8565SEmmanuel Vadot  clocks:
75e67e8565SEmmanuel Vadot    minItems: 1
76e67e8565SEmmanuel Vadot    maxItems: 32
77e67e8565SEmmanuel Vadot
78cb7aa33aSEmmanuel Vadot  dp-phy:
79cb7aa33aSEmmanuel Vadot    $ref: /schemas/phy/samsung,dp-video-phy.yaml
80cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
81cb7aa33aSEmmanuel Vadot
82e67e8565SEmmanuel Vadot  interrupt-controller:
83e67e8565SEmmanuel Vadot    description:
84e67e8565SEmmanuel Vadot      Some PMUs are capable of behaving as an interrupt controller (mostly
85e67e8565SEmmanuel Vadot      to wake up a suspended PMU).
86e67e8565SEmmanuel Vadot
87e67e8565SEmmanuel Vadot  '#interrupt-cells':
88e67e8565SEmmanuel Vadot    description:
89e67e8565SEmmanuel Vadot      Must be identical to the that of the parent interrupt controller.
90e67e8565SEmmanuel Vadot    const: 3
91e67e8565SEmmanuel Vadot
92cb7aa33aSEmmanuel Vadot  mipi-phy:
93cb7aa33aSEmmanuel Vadot    $ref: /schemas/phy/samsung,mipi-video-phy.yaml
94cb7aa33aSEmmanuel Vadot    unevaluatedProperties: false
95cb7aa33aSEmmanuel Vadot
96b97ee269SEmmanuel Vadot  reboot-mode:
97b97ee269SEmmanuel Vadot    $ref: /schemas/power/reset/syscon-reboot-mode.yaml
98b97ee269SEmmanuel Vadot    type: object
99b97ee269SEmmanuel Vadot    description:
100b97ee269SEmmanuel Vadot      Reboot mode to alter bootloader behavior for the next boot
101b97ee269SEmmanuel Vadot
102e67e8565SEmmanuel Vadot  syscon-poweroff:
103b97ee269SEmmanuel Vadot    $ref: /schemas/power/reset/syscon-poweroff.yaml#
104e67e8565SEmmanuel Vadot    type: object
105e67e8565SEmmanuel Vadot    description:
106e67e8565SEmmanuel Vadot      Node for power off method
107e67e8565SEmmanuel Vadot
108e67e8565SEmmanuel Vadot  syscon-reboot:
109b97ee269SEmmanuel Vadot    $ref: /schemas/power/reset/syscon-reboot.yaml#
110e67e8565SEmmanuel Vadot    type: object
111e67e8565SEmmanuel Vadot    description:
112e67e8565SEmmanuel Vadot      Node for reboot method
113e67e8565SEmmanuel Vadot
114e67e8565SEmmanuel Vadotrequired:
115e67e8565SEmmanuel Vadot  - compatible
116e67e8565SEmmanuel Vadot  - reg
117e67e8565SEmmanuel Vadot
118e67e8565SEmmanuel VadotadditionalProperties: false
119e67e8565SEmmanuel Vadot
120e67e8565SEmmanuel VadotallOf:
121e67e8565SEmmanuel Vadot  - if:
122e67e8565SEmmanuel Vadot      properties:
123e67e8565SEmmanuel Vadot        compatible:
124e67e8565SEmmanuel Vadot          contains:
125e67e8565SEmmanuel Vadot            enum:
126e67e8565SEmmanuel Vadot              - samsung,exynos3250-pmu
127e67e8565SEmmanuel Vadot              - samsung,exynos4210-pmu
128e67e8565SEmmanuel Vadot              - samsung,exynos4412-pmu
129e67e8565SEmmanuel Vadot              - samsung,exynos5250-pmu
130e67e8565SEmmanuel Vadot              - samsung,exynos5410-pmu
131e67e8565SEmmanuel Vadot              - samsung,exynos5420-pmu
132e67e8565SEmmanuel Vadot              - samsung,exynos5433-pmu
133e67e8565SEmmanuel Vadot    then:
134e67e8565SEmmanuel Vadot      required:
135e67e8565SEmmanuel Vadot        - '#clock-cells'
136e67e8565SEmmanuel Vadot        - clock-names
137e67e8565SEmmanuel Vadot        - clocks
138e67e8565SEmmanuel Vadot
139cb7aa33aSEmmanuel Vadot  - if:
140cb7aa33aSEmmanuel Vadot      properties:
141cb7aa33aSEmmanuel Vadot        compatible:
142cb7aa33aSEmmanuel Vadot          contains:
143cb7aa33aSEmmanuel Vadot            enum:
144*fac71e4eSEmmanuel Vadot              - samsung,exynos3250-pmu
145*fac71e4eSEmmanuel Vadot              - samsung,exynos4210-pmu
146*fac71e4eSEmmanuel Vadot              - samsung,exynos4412-pmu
147*fac71e4eSEmmanuel Vadot              - samsung,exynos5250-pmu
148*fac71e4eSEmmanuel Vadot              - samsung,exynos5420-pmu
149*fac71e4eSEmmanuel Vadot              - samsung,exynos5433-pmu
150*fac71e4eSEmmanuel Vadot    then:
151*fac71e4eSEmmanuel Vadot      properties:
152*fac71e4eSEmmanuel Vadot        mipi-phy: true
153*fac71e4eSEmmanuel Vadot    else:
154*fac71e4eSEmmanuel Vadot      properties:
155*fac71e4eSEmmanuel Vadot        mipi-phy: false
156*fac71e4eSEmmanuel Vadot
157*fac71e4eSEmmanuel Vadot  - if:
158*fac71e4eSEmmanuel Vadot      properties:
159*fac71e4eSEmmanuel Vadot        compatible:
160*fac71e4eSEmmanuel Vadot          contains:
161*fac71e4eSEmmanuel Vadot            enum:
162cb7aa33aSEmmanuel Vadot              - samsung,exynos5250-pmu
163cb7aa33aSEmmanuel Vadot              - samsung,exynos5420-pmu
164cb7aa33aSEmmanuel Vadot              - samsung,exynos5433-pmu
165cb7aa33aSEmmanuel Vadot    then:
166cb7aa33aSEmmanuel Vadot      properties:
167cb7aa33aSEmmanuel Vadot        dp-phy: true
168cb7aa33aSEmmanuel Vadot    else:
169cb7aa33aSEmmanuel Vadot      properties:
170cb7aa33aSEmmanuel Vadot        dp-phy: false
171cb7aa33aSEmmanuel Vadot
172e67e8565SEmmanuel Vadotexamples:
173e67e8565SEmmanuel Vadot  - |
174e67e8565SEmmanuel Vadot    #include <dt-bindings/clock/exynos5250.h>
175e67e8565SEmmanuel Vadot
176e67e8565SEmmanuel Vadot    pmu_system_controller: system-controller@10040000 {
177e67e8565SEmmanuel Vadot        compatible = "samsung,exynos5250-pmu", "syscon";
178e67e8565SEmmanuel Vadot        reg = <0x10040000 0x5000>;
179e67e8565SEmmanuel Vadot        interrupt-controller;
180e67e8565SEmmanuel Vadot        #interrupt-cells = <3>;
181e67e8565SEmmanuel Vadot        interrupt-parent = <&gic>;
182e67e8565SEmmanuel Vadot        #clock-cells = <1>;
183e67e8565SEmmanuel Vadot        clock-names = "clkout16";
184e67e8565SEmmanuel Vadot        clocks = <&clock CLK_FIN_PLL>;
185cb7aa33aSEmmanuel Vadot
186cb7aa33aSEmmanuel Vadot        dp-phy {
187cb7aa33aSEmmanuel Vadot            compatible = "samsung,exynos5250-dp-video-phy";
188cb7aa33aSEmmanuel Vadot            #phy-cells = <0>;
189cb7aa33aSEmmanuel Vadot        };
190cb7aa33aSEmmanuel Vadot
191cb7aa33aSEmmanuel Vadot        mipi-phy {
192cb7aa33aSEmmanuel Vadot            compatible = "samsung,s5pv210-mipi-video-phy";
193cb7aa33aSEmmanuel Vadot            #phy-cells = <1>;
194cb7aa33aSEmmanuel Vadot        };
195e67e8565SEmmanuel Vadot    };
196