xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/samsung,pinctrl.yaml (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
1*c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only
2*c9ccf3a3SEmmanuel Vadot%YAML 1.2
3*c9ccf3a3SEmmanuel Vadot---
4*c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/samsung,pinctrl.yaml#
5*c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c9ccf3a3SEmmanuel Vadot
7*c9ccf3a3SEmmanuel Vadottitle: Samsung S3C/S5P/Exynos SoC pin controller
8*c9ccf3a3SEmmanuel Vadot
9*c9ccf3a3SEmmanuel Vadotmaintainers:
10*c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11*c9ccf3a3SEmmanuel Vadot  - Sylwester Nawrocki <s.nawrocki@samsung.com>
12*c9ccf3a3SEmmanuel Vadot  - Tomasz Figa <tomasz.figa@gmail.com>
13*c9ccf3a3SEmmanuel Vadot
14*c9ccf3a3SEmmanuel Vadotdescription: |
15*c9ccf3a3SEmmanuel Vadot  This is a part of device tree bindings for Samsung S3C/S5P/Exynos SoC pin
16*c9ccf3a3SEmmanuel Vadot  controller.
17*c9ccf3a3SEmmanuel Vadot
18*c9ccf3a3SEmmanuel Vadot  Pin group settings (like drive strength, pull up/down) are available as
19*c9ccf3a3SEmmanuel Vadot  macros in include/dt-bindings/pinctrl/samsung.h.
20*c9ccf3a3SEmmanuel Vadot
21*c9ccf3a3SEmmanuel Vadot  All the pin controller nodes should be represented in the aliases node using
22*c9ccf3a3SEmmanuel Vadot  the following format 'pinctrl{n}' where n is a unique number for the alias.
23*c9ccf3a3SEmmanuel Vadot
24*c9ccf3a3SEmmanuel Vadot  The controller supports three types of interrupts::
25*c9ccf3a3SEmmanuel Vadot   - External GPIO interrupts (see interrupts property in pin controller node);
26*c9ccf3a3SEmmanuel Vadot
27*c9ccf3a3SEmmanuel Vadot   - External wake-up interrupts - multiplexed (capable of waking up the system
28*c9ccf3a3SEmmanuel Vadot     see interrupts property in external wake-up interrupt controller node -
29*c9ccf3a3SEmmanuel Vadot     samsung,pinctrl-wakeup-interrupt.yaml);
30*c9ccf3a3SEmmanuel Vadot
31*c9ccf3a3SEmmanuel Vadot   - External wake-up interrupts - direct (capable of waking up the system, see
32*c9ccf3a3SEmmanuel Vadot     interrupts property in every bank of pin controller with external wake-up
33*c9ccf3a3SEmmanuel Vadot     interrupt controller - samsung,pinctrl-gpio-bank.yaml).
34*c9ccf3a3SEmmanuel Vadot
35*c9ccf3a3SEmmanuel Vadotproperties:
36*c9ccf3a3SEmmanuel Vadot  $nodename:
37*c9ccf3a3SEmmanuel Vadot    pattern: "^pinctrl(@.*)?"
38*c9ccf3a3SEmmanuel Vadot
39*c9ccf3a3SEmmanuel Vadot  compatible:
40*c9ccf3a3SEmmanuel Vadot    enum:
41*c9ccf3a3SEmmanuel Vadot      - samsung,s3c2412-pinctrl
42*c9ccf3a3SEmmanuel Vadot      - samsung,s3c2416-pinctrl
43*c9ccf3a3SEmmanuel Vadot      - samsung,s3c2440-pinctrl
44*c9ccf3a3SEmmanuel Vadot      - samsung,s3c2450-pinctrl
45*c9ccf3a3SEmmanuel Vadot      - samsung,s3c64xx-pinctrl
46*c9ccf3a3SEmmanuel Vadot      - samsung,s5pv210-pinctrl
47*c9ccf3a3SEmmanuel Vadot      - samsung,exynos3250-pinctrl
48*c9ccf3a3SEmmanuel Vadot      - samsung,exynos4210-pinctrl
49*c9ccf3a3SEmmanuel Vadot      - samsung,exynos4x12-pinctrl
50*c9ccf3a3SEmmanuel Vadot      - samsung,exynos5250-pinctrl
51*c9ccf3a3SEmmanuel Vadot      - samsung,exynos5260-pinctrl
52*c9ccf3a3SEmmanuel Vadot      - samsung,exynos5410-pinctrl
53*c9ccf3a3SEmmanuel Vadot      - samsung,exynos5420-pinctrl
54*c9ccf3a3SEmmanuel Vadot      - samsung,exynos5433-pinctrl
55*c9ccf3a3SEmmanuel Vadot      - samsung,exynos7-pinctrl
56*c9ccf3a3SEmmanuel Vadot      - samsung,exynos7885-pinctrl
57*c9ccf3a3SEmmanuel Vadot      - samsung,exynos850-pinctrl
58*c9ccf3a3SEmmanuel Vadot      - samsung,exynosautov9-pinctrl
59*c9ccf3a3SEmmanuel Vadot      - tesla,fsd-pinctrl
60*c9ccf3a3SEmmanuel Vadot
61*c9ccf3a3SEmmanuel Vadot  interrupts:
62*c9ccf3a3SEmmanuel Vadot    description:
63*c9ccf3a3SEmmanuel Vadot      Required for GPIO banks supporting external GPIO interrupts.
64*c9ccf3a3SEmmanuel Vadot    maxItems: 1
65*c9ccf3a3SEmmanuel Vadot
66*c9ccf3a3SEmmanuel Vadot  power-domains:
67*c9ccf3a3SEmmanuel Vadot    maxItems: 1
68*c9ccf3a3SEmmanuel Vadot
69*c9ccf3a3SEmmanuel Vadot  reg:
70*c9ccf3a3SEmmanuel Vadot    description:
71*c9ccf3a3SEmmanuel Vadot      Second base address of the pin controller if the specific registers of
72*c9ccf3a3SEmmanuel Vadot      the pin controller are separated into the different base address.
73*c9ccf3a3SEmmanuel Vadot      Only certain banks of certain pin controller might need it.
74*c9ccf3a3SEmmanuel Vadot    minItems: 1
75*c9ccf3a3SEmmanuel Vadot    maxItems: 2
76*c9ccf3a3SEmmanuel Vadot
77*c9ccf3a3SEmmanuel Vadot  wakeup-interrupt-controller:
78*c9ccf3a3SEmmanuel Vadot    $ref: samsung,pinctrl-wakeup-interrupt.yaml
79*c9ccf3a3SEmmanuel Vadot
80*c9ccf3a3SEmmanuel VadotpatternProperties:
81*c9ccf3a3SEmmanuel Vadot  "^[a-z]+[0-9]*-gpio-bank$":
82*c9ccf3a3SEmmanuel Vadot    description:
83*c9ccf3a3SEmmanuel Vadot      Pin banks of the controller are represented by child nodes of the
84*c9ccf3a3SEmmanuel Vadot      controller node. Bank name is taken from name of the node.
85*c9ccf3a3SEmmanuel Vadot    $ref: samsung,pinctrl-gpio-bank.yaml
86*c9ccf3a3SEmmanuel Vadot
87*c9ccf3a3SEmmanuel Vadot  "^[a-z0-9-]+-pins$":
88*c9ccf3a3SEmmanuel Vadot    oneOf:
89*c9ccf3a3SEmmanuel Vadot      - $ref: samsung,pinctrl-pins-cfg.yaml
90*c9ccf3a3SEmmanuel Vadot        required:
91*c9ccf3a3SEmmanuel Vadot          - samsung,pins
92*c9ccf3a3SEmmanuel Vadot      - type: object
93*c9ccf3a3SEmmanuel Vadot        patternProperties:
94*c9ccf3a3SEmmanuel Vadot          "^[a-z0-9-]+-pins$":
95*c9ccf3a3SEmmanuel Vadot            $ref: samsung,pinctrl-pins-cfg.yaml
96*c9ccf3a3SEmmanuel Vadot
97*c9ccf3a3SEmmanuel Vadot        additionalProperties: false
98*c9ccf3a3SEmmanuel Vadot
99*c9ccf3a3SEmmanuel Vadot  "^(initial|sleep)-state$":
100*c9ccf3a3SEmmanuel Vadot    patternProperties:
101*c9ccf3a3SEmmanuel Vadot      "^(pin-[a-z0-9-]+|[a-z0-9-]+-pin)$":
102*c9ccf3a3SEmmanuel Vadot        $ref: samsung,pinctrl-pins-cfg.yaml
103*c9ccf3a3SEmmanuel Vadot
104*c9ccf3a3SEmmanuel Vadot        properties:
105*c9ccf3a3SEmmanuel Vadot          samsung,pins:
106*c9ccf3a3SEmmanuel Vadot            description: See samsung,pinctrl-pins-cfg.yaml
107*c9ccf3a3SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/string-array
108*c9ccf3a3SEmmanuel Vadot            maxItems: 1
109*c9ccf3a3SEmmanuel Vadot
110*c9ccf3a3SEmmanuel Vadot        required:
111*c9ccf3a3SEmmanuel Vadot          - samsung,pins
112*c9ccf3a3SEmmanuel Vadot
113*c9ccf3a3SEmmanuel Vadot        unevaluatedProperties: false
114*c9ccf3a3SEmmanuel Vadot
115*c9ccf3a3SEmmanuel Vadotrequired:
116*c9ccf3a3SEmmanuel Vadot  - compatible
117*c9ccf3a3SEmmanuel Vadot  - reg
118*c9ccf3a3SEmmanuel Vadot
119*c9ccf3a3SEmmanuel VadotallOf:
120*c9ccf3a3SEmmanuel Vadot  - $ref: "pinctrl.yaml#"
121*c9ccf3a3SEmmanuel Vadot  - if:
122*c9ccf3a3SEmmanuel Vadot      properties:
123*c9ccf3a3SEmmanuel Vadot        compatible:
124*c9ccf3a3SEmmanuel Vadot          contains:
125*c9ccf3a3SEmmanuel Vadot            const: samsung,exynos5433-pinctrl
126*c9ccf3a3SEmmanuel Vadot    then:
127*c9ccf3a3SEmmanuel Vadot      properties:
128*c9ccf3a3SEmmanuel Vadot        reg:
129*c9ccf3a3SEmmanuel Vadot          minItems: 1
130*c9ccf3a3SEmmanuel Vadot          maxItems: 2
131*c9ccf3a3SEmmanuel Vadot    else:
132*c9ccf3a3SEmmanuel Vadot      properties:
133*c9ccf3a3SEmmanuel Vadot        reg:
134*c9ccf3a3SEmmanuel Vadot          minItems: 1
135*c9ccf3a3SEmmanuel Vadot          maxItems: 1
136*c9ccf3a3SEmmanuel Vadot
137*c9ccf3a3SEmmanuel VadotadditionalProperties: false
138*c9ccf3a3SEmmanuel Vadot
139*c9ccf3a3SEmmanuel Vadotexamples:
140*c9ccf3a3SEmmanuel Vadot  - |
141*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/pinctrl/samsung.h>
142*c9ccf3a3SEmmanuel Vadot
143*c9ccf3a3SEmmanuel Vadot    pinctrl@7f008000 {
144*c9ccf3a3SEmmanuel Vadot        compatible = "samsung,s3c64xx-pinctrl";
145*c9ccf3a3SEmmanuel Vadot        reg = <0x7f008000 0x1000>;
146*c9ccf3a3SEmmanuel Vadot        interrupt-parent = <&vic1>;
147*c9ccf3a3SEmmanuel Vadot        interrupts = <21>;
148*c9ccf3a3SEmmanuel Vadot
149*c9ccf3a3SEmmanuel Vadot        wakeup-interrupt-controller {
150*c9ccf3a3SEmmanuel Vadot            compatible = "samsung,s3c64xx-wakeup-eint";
151*c9ccf3a3SEmmanuel Vadot            interrupts-extended = <&vic0 0>,
152*c9ccf3a3SEmmanuel Vadot                                  <&vic0 1>,
153*c9ccf3a3SEmmanuel Vadot                                  <&vic1 0>,
154*c9ccf3a3SEmmanuel Vadot                                  <&vic1 1>;
155*c9ccf3a3SEmmanuel Vadot        };
156*c9ccf3a3SEmmanuel Vadot
157*c9ccf3a3SEmmanuel Vadot        /* Pin bank with external GPIO or muxed external wake-up interrupts */
158*c9ccf3a3SEmmanuel Vadot        gpa-gpio-bank {
159*c9ccf3a3SEmmanuel Vadot            gpio-controller;
160*c9ccf3a3SEmmanuel Vadot            #gpio-cells = <2>;
161*c9ccf3a3SEmmanuel Vadot            interrupt-controller;
162*c9ccf3a3SEmmanuel Vadot            #interrupt-cells = <2>;
163*c9ccf3a3SEmmanuel Vadot        };
164*c9ccf3a3SEmmanuel Vadot
165*c9ccf3a3SEmmanuel Vadot        // ...
166*c9ccf3a3SEmmanuel Vadot
167*c9ccf3a3SEmmanuel Vadot        uart0-data-pins {
168*c9ccf3a3SEmmanuel Vadot            samsung,pins = "gpa-0", "gpa-1";
169*c9ccf3a3SEmmanuel Vadot            samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
170*c9ccf3a3SEmmanuel Vadot            samsung,pin-pud = <S3C64XX_PIN_PULL_NONE>;
171*c9ccf3a3SEmmanuel Vadot        };
172*c9ccf3a3SEmmanuel Vadot
173*c9ccf3a3SEmmanuel Vadot        // ...
174*c9ccf3a3SEmmanuel Vadot    };
175*c9ccf3a3SEmmanuel Vadot
176*c9ccf3a3SEmmanuel Vadot  - |
177*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
178*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/pinctrl/samsung.h>
179*c9ccf3a3SEmmanuel Vadot
180*c9ccf3a3SEmmanuel Vadot    pinctrl@11400000 {
181*c9ccf3a3SEmmanuel Vadot        compatible = "samsung,exynos4210-pinctrl";
182*c9ccf3a3SEmmanuel Vadot        reg = <0x11400000 0x1000>;
183*c9ccf3a3SEmmanuel Vadot        interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
184*c9ccf3a3SEmmanuel Vadot
185*c9ccf3a3SEmmanuel Vadot        pinctrl-names = "default";
186*c9ccf3a3SEmmanuel Vadot        pinctrl-0 = <&sleep0>;
187*c9ccf3a3SEmmanuel Vadot
188*c9ccf3a3SEmmanuel Vadot        /* Pin bank with external GPIO or muxed external wake-up interrupts */
189*c9ccf3a3SEmmanuel Vadot        gpa0-gpio-bank {
190*c9ccf3a3SEmmanuel Vadot            gpio-controller;
191*c9ccf3a3SEmmanuel Vadot            #gpio-cells = <2>;
192*c9ccf3a3SEmmanuel Vadot            interrupt-controller;
193*c9ccf3a3SEmmanuel Vadot            #interrupt-cells = <2>;
194*c9ccf3a3SEmmanuel Vadot        };
195*c9ccf3a3SEmmanuel Vadot
196*c9ccf3a3SEmmanuel Vadot        // ...
197*c9ccf3a3SEmmanuel Vadot
198*c9ccf3a3SEmmanuel Vadot        uart0-data-pins {
199*c9ccf3a3SEmmanuel Vadot            samsung,pins = "gpa0-0", "gpa0-1";
200*c9ccf3a3SEmmanuel Vadot            samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
201*c9ccf3a3SEmmanuel Vadot            samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
202*c9ccf3a3SEmmanuel Vadot            samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
203*c9ccf3a3SEmmanuel Vadot        };
204*c9ccf3a3SEmmanuel Vadot
205*c9ccf3a3SEmmanuel Vadot        // ...
206*c9ccf3a3SEmmanuel Vadot
207*c9ccf3a3SEmmanuel Vadot        sleep0: sleep-state {
208*c9ccf3a3SEmmanuel Vadot            gpa0-0-pin {
209*c9ccf3a3SEmmanuel Vadot                samsung,pins = "gpa0-0";
210*c9ccf3a3SEmmanuel Vadot                samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
211*c9ccf3a3SEmmanuel Vadot                samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
212*c9ccf3a3SEmmanuel Vadot            };
213*c9ccf3a3SEmmanuel Vadot
214*c9ccf3a3SEmmanuel Vadot            gpa0-1-pin {
215*c9ccf3a3SEmmanuel Vadot                samsung,pins = "gpa0-1";
216*c9ccf3a3SEmmanuel Vadot                samsung,pin-con-pdn = <EXYNOS_PIN_PDN_OUT0>;
217*c9ccf3a3SEmmanuel Vadot                samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
218*c9ccf3a3SEmmanuel Vadot            };
219*c9ccf3a3SEmmanuel Vadot
220*c9ccf3a3SEmmanuel Vadot            // ...
221*c9ccf3a3SEmmanuel Vadot        };
222*c9ccf3a3SEmmanuel Vadot    };
223*c9ccf3a3SEmmanuel Vadot
224*c9ccf3a3SEmmanuel Vadot  - |
225*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
226*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/pinctrl/samsung.h>
227*c9ccf3a3SEmmanuel Vadot
228*c9ccf3a3SEmmanuel Vadot    pinctrl@11000000 {
229*c9ccf3a3SEmmanuel Vadot        compatible = "samsung,exynos4210-pinctrl";
230*c9ccf3a3SEmmanuel Vadot        reg = <0x11000000 0x1000>;
231*c9ccf3a3SEmmanuel Vadot        interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
232*c9ccf3a3SEmmanuel Vadot
233*c9ccf3a3SEmmanuel Vadot        wakeup-interrupt-controller {
234*c9ccf3a3SEmmanuel Vadot            compatible = "samsung,exynos4210-wakeup-eint";
235*c9ccf3a3SEmmanuel Vadot            interrupt-parent = <&gic>;
236*c9ccf3a3SEmmanuel Vadot            interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
237*c9ccf3a3SEmmanuel Vadot        };
238*c9ccf3a3SEmmanuel Vadot
239*c9ccf3a3SEmmanuel Vadot        /* Pin bank with external GPIO or muxed external wake-up interrupts */
240*c9ccf3a3SEmmanuel Vadot        gpj0-gpio-bank {
241*c9ccf3a3SEmmanuel Vadot            gpio-controller;
242*c9ccf3a3SEmmanuel Vadot            #gpio-cells = <2>;
243*c9ccf3a3SEmmanuel Vadot            interrupt-controller;
244*c9ccf3a3SEmmanuel Vadot            #interrupt-cells = <2>;
245*c9ccf3a3SEmmanuel Vadot        };
246*c9ccf3a3SEmmanuel Vadot
247*c9ccf3a3SEmmanuel Vadot        /* Pin bank without external interrupts */
248*c9ccf3a3SEmmanuel Vadot        gpy0-gpio-bank {
249*c9ccf3a3SEmmanuel Vadot            gpio-controller;
250*c9ccf3a3SEmmanuel Vadot            #gpio-cells = <2>;
251*c9ccf3a3SEmmanuel Vadot        };
252*c9ccf3a3SEmmanuel Vadot
253*c9ccf3a3SEmmanuel Vadot        /* Pin bank with external direct wake-up interrupts */
254*c9ccf3a3SEmmanuel Vadot        gpx0-gpio-bank {
255*c9ccf3a3SEmmanuel Vadot            gpio-controller;
256*c9ccf3a3SEmmanuel Vadot            #gpio-cells = <2>;
257*c9ccf3a3SEmmanuel Vadot
258*c9ccf3a3SEmmanuel Vadot            interrupt-controller;
259*c9ccf3a3SEmmanuel Vadot            interrupt-parent = <&gic>;
260*c9ccf3a3SEmmanuel Vadot            interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
261*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
262*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
263*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
264*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
265*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
266*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
267*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
268*c9ccf3a3SEmmanuel Vadot            #interrupt-cells = <2>;
269*c9ccf3a3SEmmanuel Vadot        };
270*c9ccf3a3SEmmanuel Vadot
271*c9ccf3a3SEmmanuel Vadot        // ...
272*c9ccf3a3SEmmanuel Vadot
273*c9ccf3a3SEmmanuel Vadot        sd0-clk-pins {
274*c9ccf3a3SEmmanuel Vadot            samsung,pins = "gpk0-0";
275*c9ccf3a3SEmmanuel Vadot            samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
276*c9ccf3a3SEmmanuel Vadot            samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
277*c9ccf3a3SEmmanuel Vadot            samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
278*c9ccf3a3SEmmanuel Vadot        };
279*c9ccf3a3SEmmanuel Vadot
280*c9ccf3a3SEmmanuel Vadot        sd4-bus-width8-pins {
281*c9ccf3a3SEmmanuel Vadot            part-1-pins {
282*c9ccf3a3SEmmanuel Vadot                samsung,pins = "gpk0-3", "gpk0-4",
283*c9ccf3a3SEmmanuel Vadot                               "gpk0-5", "gpk0-6";
284*c9ccf3a3SEmmanuel Vadot                samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
285*c9ccf3a3SEmmanuel Vadot                samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
286*c9ccf3a3SEmmanuel Vadot                samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
287*c9ccf3a3SEmmanuel Vadot            };
288*c9ccf3a3SEmmanuel Vadot
289*c9ccf3a3SEmmanuel Vadot            part-2-pins {
290*c9ccf3a3SEmmanuel Vadot                samsung,pins = "gpk1-3", "gpk1-4",
291*c9ccf3a3SEmmanuel Vadot                               "gpk1-5", "gpk1-6";
292*c9ccf3a3SEmmanuel Vadot                samsung,pin-function = <EXYNOS_PIN_FUNC_4>;
293*c9ccf3a3SEmmanuel Vadot                samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
294*c9ccf3a3SEmmanuel Vadot                samsung,pin-drv = <EXYNOS4_PIN_DRV_LV4>;
295*c9ccf3a3SEmmanuel Vadot            };
296*c9ccf3a3SEmmanuel Vadot        };
297*c9ccf3a3SEmmanuel Vadot
298*c9ccf3a3SEmmanuel Vadot        // ...
299*c9ccf3a3SEmmanuel Vadot
300*c9ccf3a3SEmmanuel Vadot        otg-gp-pins {
301*c9ccf3a3SEmmanuel Vadot            samsung,pins = "gpx3-3";
302*c9ccf3a3SEmmanuel Vadot            samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
303*c9ccf3a3SEmmanuel Vadot            samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
304*c9ccf3a3SEmmanuel Vadot            samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
305*c9ccf3a3SEmmanuel Vadot            samsung,pin-val = <0>;
306*c9ccf3a3SEmmanuel Vadot        };
307*c9ccf3a3SEmmanuel Vadot    };
308*c9ccf3a3SEmmanuel Vadot
309*c9ccf3a3SEmmanuel Vadot  - |
310*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
311*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/pinctrl/samsung.h>
312*c9ccf3a3SEmmanuel Vadot
313*c9ccf3a3SEmmanuel Vadot    pinctrl@10580000 {
314*c9ccf3a3SEmmanuel Vadot        compatible = "samsung,exynos5433-pinctrl";
315*c9ccf3a3SEmmanuel Vadot        reg = <0x10580000 0x1a20>, <0x11090000 0x100>;
316*c9ccf3a3SEmmanuel Vadot
317*c9ccf3a3SEmmanuel Vadot        pinctrl-names = "default";
318*c9ccf3a3SEmmanuel Vadot        pinctrl-0 = <&initial_alive>;
319*c9ccf3a3SEmmanuel Vadot
320*c9ccf3a3SEmmanuel Vadot        wakeup-interrupt-controller {
321*c9ccf3a3SEmmanuel Vadot            compatible = "samsung,exynos7-wakeup-eint";
322*c9ccf3a3SEmmanuel Vadot            interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
323*c9ccf3a3SEmmanuel Vadot        };
324*c9ccf3a3SEmmanuel Vadot
325*c9ccf3a3SEmmanuel Vadot        /* Pin bank with external direct wake-up interrupts */
326*c9ccf3a3SEmmanuel Vadot        gpa0-gpio-bank {
327*c9ccf3a3SEmmanuel Vadot            gpio-controller;
328*c9ccf3a3SEmmanuel Vadot            #gpio-cells = <2>;
329*c9ccf3a3SEmmanuel Vadot
330*c9ccf3a3SEmmanuel Vadot            interrupt-controller;
331*c9ccf3a3SEmmanuel Vadot            interrupt-parent = <&gic>;
332*c9ccf3a3SEmmanuel Vadot            interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
333*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
334*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
335*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
336*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
337*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
338*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
339*c9ccf3a3SEmmanuel Vadot                         <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
340*c9ccf3a3SEmmanuel Vadot            #interrupt-cells = <2>;
341*c9ccf3a3SEmmanuel Vadot        };
342*c9ccf3a3SEmmanuel Vadot
343*c9ccf3a3SEmmanuel Vadot        // ...
344*c9ccf3a3SEmmanuel Vadot
345*c9ccf3a3SEmmanuel Vadot        te-irq-pins {
346*c9ccf3a3SEmmanuel Vadot            samsung,pins = "gpf1-3";
347*c9ccf3a3SEmmanuel Vadot            samsung,pin-function = <0xf>;
348*c9ccf3a3SEmmanuel Vadot        };
349*c9ccf3a3SEmmanuel Vadot
350*c9ccf3a3SEmmanuel Vadot        // ..
351*c9ccf3a3SEmmanuel Vadot
352*c9ccf3a3SEmmanuel Vadot        initial_alive: initial-state {
353*c9ccf3a3SEmmanuel Vadot            gpa0-0-pin {
354*c9ccf3a3SEmmanuel Vadot                samsung,pins = "gpa0-0";
355*c9ccf3a3SEmmanuel Vadot                samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
356*c9ccf3a3SEmmanuel Vadot                samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
357*c9ccf3a3SEmmanuel Vadot                samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
358*c9ccf3a3SEmmanuel Vadot            };
359*c9ccf3a3SEmmanuel Vadot
360*c9ccf3a3SEmmanuel Vadot            // ...
361*c9ccf3a3SEmmanuel Vadot        };
362*c9ccf3a3SEmmanuel Vadot    };
363*c9ccf3a3SEmmanuel Vadot
364*c9ccf3a3SEmmanuel Vadot  - |
365*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
366*c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/pinctrl/samsung.h>
367*c9ccf3a3SEmmanuel Vadot
368*c9ccf3a3SEmmanuel Vadot    pinctrl@114b0000 {
369*c9ccf3a3SEmmanuel Vadot        compatible = "samsung,exynos5433-pinctrl";
370*c9ccf3a3SEmmanuel Vadot        reg = <0x114b0000 0x1000>;
371*c9ccf3a3SEmmanuel Vadot        interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
372*c9ccf3a3SEmmanuel Vadot        power-domains = <&pd_aud>;
373*c9ccf3a3SEmmanuel Vadot
374*c9ccf3a3SEmmanuel Vadot        /* Pin bank with external GPIO or muxed external wake-up interrupts */
375*c9ccf3a3SEmmanuel Vadot        gpz0-gpio-bank {
376*c9ccf3a3SEmmanuel Vadot            gpio-controller;
377*c9ccf3a3SEmmanuel Vadot            #gpio-cells = <2>;
378*c9ccf3a3SEmmanuel Vadot            interrupt-controller;
379*c9ccf3a3SEmmanuel Vadot            #interrupt-cells = <2>;
380*c9ccf3a3SEmmanuel Vadot        };
381*c9ccf3a3SEmmanuel Vadot
382*c9ccf3a3SEmmanuel Vadot        // ...
383*c9ccf3a3SEmmanuel Vadot
384*c9ccf3a3SEmmanuel Vadot        i2s0-bus-pins {
385*c9ccf3a3SEmmanuel Vadot            samsung,pins = "gpz0-0", "gpz0-1", "gpz0-2", "gpz0-3",
386*c9ccf3a3SEmmanuel Vadot                           "gpz0-4", "gpz0-5", "gpz0-6";
387*c9ccf3a3SEmmanuel Vadot            samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
388*c9ccf3a3SEmmanuel Vadot            samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
389*c9ccf3a3SEmmanuel Vadot            samsung,pin-drv = <EXYNOS5433_PIN_DRV_FAST_SR1>;
390*c9ccf3a3SEmmanuel Vadot        };
391*c9ccf3a3SEmmanuel Vadot
392*c9ccf3a3SEmmanuel Vadot        // ...
393*c9ccf3a3SEmmanuel Vadot    };
394