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