1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) STMicroelectronics 2017 - All Rights Reserved 4*4882a593Smuzhiyun * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <dt-bindings/pinctrl/stm32-pinfunc.h> 8*4882a593Smuzhiyun#include <dt-bindings/mfd/stm32f7-rcc.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun/ { 11*4882a593Smuzhiyun soc { 12*4882a593Smuzhiyun pinctrl: pin-controller { 13*4882a593Smuzhiyun #address-cells = <1>; 14*4882a593Smuzhiyun #size-cells = <1>; 15*4882a593Smuzhiyun ranges = <0 0x40020000 0x3000>; 16*4882a593Smuzhiyun interrupt-parent = <&exti>; 17*4882a593Smuzhiyun st,syscfg = <&syscfg 0x8>; 18*4882a593Smuzhiyun pins-are-numbered; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun gpioa: gpio@40020000 { 21*4882a593Smuzhiyun gpio-controller; 22*4882a593Smuzhiyun #gpio-cells = <2>; 23*4882a593Smuzhiyun interrupt-controller; 24*4882a593Smuzhiyun #interrupt-cells = <2>; 25*4882a593Smuzhiyun reg = <0x0 0x400>; 26*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOA)>; 27*4882a593Smuzhiyun st,bank-name = "GPIOA"; 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun gpiob: gpio@40020400 { 31*4882a593Smuzhiyun gpio-controller; 32*4882a593Smuzhiyun #gpio-cells = <2>; 33*4882a593Smuzhiyun interrupt-controller; 34*4882a593Smuzhiyun #interrupt-cells = <2>; 35*4882a593Smuzhiyun reg = <0x400 0x400>; 36*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOB)>; 37*4882a593Smuzhiyun st,bank-name = "GPIOB"; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun gpioc: gpio@40020800 { 41*4882a593Smuzhiyun gpio-controller; 42*4882a593Smuzhiyun #gpio-cells = <2>; 43*4882a593Smuzhiyun interrupt-controller; 44*4882a593Smuzhiyun #interrupt-cells = <2>; 45*4882a593Smuzhiyun reg = <0x800 0x400>; 46*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOC)>; 47*4882a593Smuzhiyun st,bank-name = "GPIOC"; 48*4882a593Smuzhiyun }; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun gpiod: gpio@40020c00 { 51*4882a593Smuzhiyun gpio-controller; 52*4882a593Smuzhiyun #gpio-cells = <2>; 53*4882a593Smuzhiyun interrupt-controller; 54*4882a593Smuzhiyun #interrupt-cells = <2>; 55*4882a593Smuzhiyun reg = <0xc00 0x400>; 56*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOD)>; 57*4882a593Smuzhiyun st,bank-name = "GPIOD"; 58*4882a593Smuzhiyun }; 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun gpioe: gpio@40021000 { 61*4882a593Smuzhiyun gpio-controller; 62*4882a593Smuzhiyun #gpio-cells = <2>; 63*4882a593Smuzhiyun interrupt-controller; 64*4882a593Smuzhiyun #interrupt-cells = <2>; 65*4882a593Smuzhiyun reg = <0x1000 0x400>; 66*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOE)>; 67*4882a593Smuzhiyun st,bank-name = "GPIOE"; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun gpiof: gpio@40021400 { 71*4882a593Smuzhiyun gpio-controller; 72*4882a593Smuzhiyun #gpio-cells = <2>; 73*4882a593Smuzhiyun interrupt-controller; 74*4882a593Smuzhiyun #interrupt-cells = <2>; 75*4882a593Smuzhiyun reg = <0x1400 0x400>; 76*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOF)>; 77*4882a593Smuzhiyun st,bank-name = "GPIOF"; 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun gpiog: gpio@40021800 { 81*4882a593Smuzhiyun gpio-controller; 82*4882a593Smuzhiyun #gpio-cells = <2>; 83*4882a593Smuzhiyun interrupt-controller; 84*4882a593Smuzhiyun #interrupt-cells = <2>; 85*4882a593Smuzhiyun reg = <0x1800 0x400>; 86*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOG)>; 87*4882a593Smuzhiyun st,bank-name = "GPIOG"; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun gpioh: gpio@40021c00 { 91*4882a593Smuzhiyun gpio-controller; 92*4882a593Smuzhiyun #gpio-cells = <2>; 93*4882a593Smuzhiyun interrupt-controller; 94*4882a593Smuzhiyun #interrupt-cells = <2>; 95*4882a593Smuzhiyun reg = <0x1c00 0x400>; 96*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOH)>; 97*4882a593Smuzhiyun st,bank-name = "GPIOH"; 98*4882a593Smuzhiyun }; 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun gpioi: gpio@40022000 { 101*4882a593Smuzhiyun gpio-controller; 102*4882a593Smuzhiyun #gpio-cells = <2>; 103*4882a593Smuzhiyun interrupt-controller; 104*4882a593Smuzhiyun #interrupt-cells = <2>; 105*4882a593Smuzhiyun reg = <0x2000 0x400>; 106*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOI)>; 107*4882a593Smuzhiyun st,bank-name = "GPIOI"; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun gpioj: gpio@40022400 { 111*4882a593Smuzhiyun gpio-controller; 112*4882a593Smuzhiyun #gpio-cells = <2>; 113*4882a593Smuzhiyun interrupt-controller; 114*4882a593Smuzhiyun #interrupt-cells = <2>; 115*4882a593Smuzhiyun reg = <0x2400 0x400>; 116*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOJ)>; 117*4882a593Smuzhiyun st,bank-name = "GPIOJ"; 118*4882a593Smuzhiyun }; 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun gpiok: gpio@40022800 { 121*4882a593Smuzhiyun gpio-controller; 122*4882a593Smuzhiyun #gpio-cells = <2>; 123*4882a593Smuzhiyun interrupt-controller; 124*4882a593Smuzhiyun #interrupt-cells = <2>; 125*4882a593Smuzhiyun reg = <0x2800 0x400>; 126*4882a593Smuzhiyun clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOK)>; 127*4882a593Smuzhiyun st,bank-name = "GPIOK"; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun cec_pins_a: cec-0 { 131*4882a593Smuzhiyun pins { 132*4882a593Smuzhiyun pinmux = <STM32_PINMUX('A', 15, AF4)>; /* HDMI CEC */ 133*4882a593Smuzhiyun slew-rate = <0>; 134*4882a593Smuzhiyun drive-open-drain; 135*4882a593Smuzhiyun bias-disable; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun }; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun usart1_pins_a: usart1-0 { 140*4882a593Smuzhiyun pins1 { 141*4882a593Smuzhiyun pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */ 142*4882a593Smuzhiyun bias-disable; 143*4882a593Smuzhiyun drive-push-pull; 144*4882a593Smuzhiyun slew-rate = <0>; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun pins2 { 147*4882a593Smuzhiyun pinmux = <STM32_PINMUX('A', 10, AF7)>; /* USART1_RX */ 148*4882a593Smuzhiyun bias-disable; 149*4882a593Smuzhiyun }; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun usart1_pins_b: usart1-1 { 153*4882a593Smuzhiyun pins1 { 154*4882a593Smuzhiyun pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */ 155*4882a593Smuzhiyun bias-disable; 156*4882a593Smuzhiyun drive-push-pull; 157*4882a593Smuzhiyun slew-rate = <0>; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun pins2 { 160*4882a593Smuzhiyun pinmux = <STM32_PINMUX('B', 7, AF7)>; /* USART1_RX */ 161*4882a593Smuzhiyun bias-disable; 162*4882a593Smuzhiyun }; 163*4882a593Smuzhiyun }; 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun i2c1_pins_b: i2c1-0 { 166*4882a593Smuzhiyun pins { 167*4882a593Smuzhiyun pinmux = <STM32_PINMUX('B', 9, AF4)>, /* I2C1 SDA */ 168*4882a593Smuzhiyun <STM32_PINMUX('B', 8, AF4)>; /* I2C1 SCL */ 169*4882a593Smuzhiyun bias-disable; 170*4882a593Smuzhiyun drive-open-drain; 171*4882a593Smuzhiyun slew-rate = <0>; 172*4882a593Smuzhiyun }; 173*4882a593Smuzhiyun }; 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun usbotg_hs_pins_a: usbotg-hs-0 { 176*4882a593Smuzhiyun pins { 177*4882a593Smuzhiyun pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT */ 178*4882a593Smuzhiyun <STM32_PINMUX('I', 11, AF10)>, /* OTG_HS_ULPI_DIR */ 179*4882a593Smuzhiyun <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */ 180*4882a593Smuzhiyun <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */ 181*4882a593Smuzhiyun <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */ 182*4882a593Smuzhiyun <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */ 183*4882a593Smuzhiyun <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */ 184*4882a593Smuzhiyun <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */ 185*4882a593Smuzhiyun <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */ 186*4882a593Smuzhiyun <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */ 187*4882a593Smuzhiyun <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */ 188*4882a593Smuzhiyun <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */ 189*4882a593Smuzhiyun bias-disable; 190*4882a593Smuzhiyun drive-push-pull; 191*4882a593Smuzhiyun slew-rate = <2>; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun }; 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun usbotg_hs_pins_b: usbotg-hs-1 { 196*4882a593Smuzhiyun pins { 197*4882a593Smuzhiyun pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT */ 198*4882a593Smuzhiyun <STM32_PINMUX('C', 2, AF10)>, /* OTG_HS_ULPI_DIR */ 199*4882a593Smuzhiyun <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */ 200*4882a593Smuzhiyun <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */ 201*4882a593Smuzhiyun <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */ 202*4882a593Smuzhiyun <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */ 203*4882a593Smuzhiyun <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */ 204*4882a593Smuzhiyun <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */ 205*4882a593Smuzhiyun <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */ 206*4882a593Smuzhiyun <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */ 207*4882a593Smuzhiyun <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */ 208*4882a593Smuzhiyun <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */ 209*4882a593Smuzhiyun bias-disable; 210*4882a593Smuzhiyun drive-push-pull; 211*4882a593Smuzhiyun slew-rate = <2>; 212*4882a593Smuzhiyun }; 213*4882a593Smuzhiyun }; 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun usbotg_fs_pins_a: usbotg-fs-0 { 216*4882a593Smuzhiyun pins { 217*4882a593Smuzhiyun pinmux = <STM32_PINMUX('A', 10, AF10)>, /* OTG_FS_ID */ 218*4882a593Smuzhiyun <STM32_PINMUX('A', 11, AF10)>, /* OTG_FS_DM */ 219*4882a593Smuzhiyun <STM32_PINMUX('A', 12, AF10)>; /* OTG_FS_DP */ 220*4882a593Smuzhiyun bias-disable; 221*4882a593Smuzhiyun drive-push-pull; 222*4882a593Smuzhiyun slew-rate = <2>; 223*4882a593Smuzhiyun }; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun sdio_pins_a: sdio-pins-a-0 { 227*4882a593Smuzhiyun pins { 228*4882a593Smuzhiyun pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1 D0 */ 229*4882a593Smuzhiyun <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1 D1 */ 230*4882a593Smuzhiyun <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1 D2 */ 231*4882a593Smuzhiyun <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1 D3 */ 232*4882a593Smuzhiyun <STM32_PINMUX('C', 12, AF12)>, /* SDMMC1 CLK */ 233*4882a593Smuzhiyun <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1 CMD */ 234*4882a593Smuzhiyun drive-push-pull; 235*4882a593Smuzhiyun slew-rate = <2>; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun }; 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun sdio_pins_od_a: sdio-pins-od-a-0 { 240*4882a593Smuzhiyun pins1 { 241*4882a593Smuzhiyun pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1 D0 */ 242*4882a593Smuzhiyun <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1 D1 */ 243*4882a593Smuzhiyun <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1 D2 */ 244*4882a593Smuzhiyun <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1 D3 */ 245*4882a593Smuzhiyun <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1 CLK */ 246*4882a593Smuzhiyun drive-push-pull; 247*4882a593Smuzhiyun slew-rate = <2>; 248*4882a593Smuzhiyun }; 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun pins2 { 251*4882a593Smuzhiyun pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1 CMD */ 252*4882a593Smuzhiyun drive-open-drain; 253*4882a593Smuzhiyun slew-rate = <2>; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun }; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun sdio_pins_b: sdio-pins-b-0 { 258*4882a593Smuzhiyun pins { 259*4882a593Smuzhiyun pinmux = <STM32_PINMUX('G', 9, AF11)>, /* SDMMC2 D0 */ 260*4882a593Smuzhiyun <STM32_PINMUX('G', 10, AF11)>, /* SDMMC2 D1 */ 261*4882a593Smuzhiyun <STM32_PINMUX('B', 3, AF10)>, /* SDMMC2 D2 */ 262*4882a593Smuzhiyun <STM32_PINMUX('B', 4, AF10)>, /* SDMMC2 D3 */ 263*4882a593Smuzhiyun <STM32_PINMUX('D', 6, AF11)>, /* SDMMC2 CLK */ 264*4882a593Smuzhiyun <STM32_PINMUX('D', 7, AF11)>; /* SDMMC2 CMD */ 265*4882a593Smuzhiyun drive-push-pull; 266*4882a593Smuzhiyun slew-rate = <2>; 267*4882a593Smuzhiyun }; 268*4882a593Smuzhiyun }; 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun sdio_pins_od_b: sdio-pins-od-b-0 { 271*4882a593Smuzhiyun pins1 { 272*4882a593Smuzhiyun pinmux = <STM32_PINMUX('G', 9, AF11)>, /* SDMMC2 D0 */ 273*4882a593Smuzhiyun <STM32_PINMUX('G', 10, AF11)>, /* SDMMC2 D1 */ 274*4882a593Smuzhiyun <STM32_PINMUX('B', 3, AF10)>, /* SDMMC2 D2 */ 275*4882a593Smuzhiyun <STM32_PINMUX('B', 4, AF10)>, /* SDMMC2 D3 */ 276*4882a593Smuzhiyun <STM32_PINMUX('D', 6, AF11)>; /* SDMMC2 CLK */ 277*4882a593Smuzhiyun drive-push-pull; 278*4882a593Smuzhiyun slew-rate = <2>; 279*4882a593Smuzhiyun }; 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun pins2 { 282*4882a593Smuzhiyun pinmux = <STM32_PINMUX('D', 7, AF11)>; /* SDMMC2 CMD */ 283*4882a593Smuzhiyun drive-open-drain; 284*4882a593Smuzhiyun slew-rate = <2>; 285*4882a593Smuzhiyun }; 286*4882a593Smuzhiyun }; 287*4882a593Smuzhiyun }; 288*4882a593Smuzhiyun }; 289*4882a593Smuzhiyun}; 290