1*724ba675SRob Herring/*
2*724ba675SRob Herring * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
3*724ba675SRob Herring *
4*724ba675SRob Herring * This file is dual-licensed: you can use it either under the terms
5*724ba675SRob Herring * of the GPL or the X11 license, at your option. Note that this dual
6*724ba675SRob Herring * licensing only applies to this file, and not this project as a
7*724ba675SRob Herring * whole.
8*724ba675SRob Herring *
9*724ba675SRob Herring *  a) This file is free software; you can redistribute it and/or
10*724ba675SRob Herring *     modify it under the terms of the GNU General Public License as
11*724ba675SRob Herring *     published by the Free Software Foundation; either version 2 of the
12*724ba675SRob Herring *     License, or (at your option) any later version.
13*724ba675SRob Herring *
14*724ba675SRob Herring *     This file is distributed in the hope that it will be useful,
15*724ba675SRob Herring *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16*724ba675SRob Herring *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*724ba675SRob Herring *     GNU General Public License for more details.
18*724ba675SRob Herring *
19*724ba675SRob Herring * Or, alternatively,
20*724ba675SRob Herring *
21*724ba675SRob Herring *  b) Permission is hereby granted, free of charge, to any person
22*724ba675SRob Herring *     obtaining a copy of this software and associated documentation
23*724ba675SRob Herring *     files (the "Software"), to deal in the Software without
24*724ba675SRob Herring *     restriction, including without limitation the rights to use,
25*724ba675SRob Herring *     copy, modify, merge, publish, distribute, sublicense, and/or
26*724ba675SRob Herring *     sell copies of the Software, and to permit persons to whom the
27*724ba675SRob Herring *     Software is furnished to do so, subject to the following
28*724ba675SRob Herring *     conditions:
29*724ba675SRob Herring *
30*724ba675SRob Herring *     The above copyright notice and this permission notice shall be
31*724ba675SRob Herring *     included in all copies or substantial portions of the Software.
32*724ba675SRob Herring *
33*724ba675SRob Herring *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34*724ba675SRob Herring *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35*724ba675SRob Herring *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36*724ba675SRob Herring *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37*724ba675SRob Herring *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38*724ba675SRob Herring *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39*724ba675SRob Herring *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40*724ba675SRob Herring *     OTHER DEALINGS IN THE SOFTWARE.
41*724ba675SRob Herring */
42*724ba675SRob Herring
43*724ba675SRob Herring#include <dt-bindings/pinctrl/stm32-pinfunc.h>
44*724ba675SRob Herring#include <dt-bindings/mfd/stm32f4-rcc.h>
45*724ba675SRob Herring
46*724ba675SRob Herring/ {
47*724ba675SRob Herring	soc {
48*724ba675SRob Herring		pinctrl: pinctrl@40020000 {
49*724ba675SRob Herring			#address-cells = <1>;
50*724ba675SRob Herring			#size-cells = <1>;
51*724ba675SRob Herring			ranges = <0 0x40020000 0x3000>;
52*724ba675SRob Herring			interrupt-parent = <&exti>;
53*724ba675SRob Herring			st,syscfg = <&syscfg 0x8>;
54*724ba675SRob Herring
55*724ba675SRob Herring			gpioa: gpio@40020000 {
56*724ba675SRob Herring				gpio-controller;
57*724ba675SRob Herring				#gpio-cells = <2>;
58*724ba675SRob Herring				interrupt-controller;
59*724ba675SRob Herring				#interrupt-cells = <2>;
60*724ba675SRob Herring				reg = <0x0 0x400>;
61*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOA)>;
62*724ba675SRob Herring				st,bank-name = "GPIOA";
63*724ba675SRob Herring			};
64*724ba675SRob Herring
65*724ba675SRob Herring			gpiob: gpio@40020400 {
66*724ba675SRob Herring				gpio-controller;
67*724ba675SRob Herring				#gpio-cells = <2>;
68*724ba675SRob Herring				interrupt-controller;
69*724ba675SRob Herring				#interrupt-cells = <2>;
70*724ba675SRob Herring				reg = <0x400 0x400>;
71*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOB)>;
72*724ba675SRob Herring				st,bank-name = "GPIOB";
73*724ba675SRob Herring			};
74*724ba675SRob Herring
75*724ba675SRob Herring			gpioc: gpio@40020800 {
76*724ba675SRob Herring				gpio-controller;
77*724ba675SRob Herring				#gpio-cells = <2>;
78*724ba675SRob Herring				interrupt-controller;
79*724ba675SRob Herring				#interrupt-cells = <2>;
80*724ba675SRob Herring				reg = <0x800 0x400>;
81*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOC)>;
82*724ba675SRob Herring				st,bank-name = "GPIOC";
83*724ba675SRob Herring			};
84*724ba675SRob Herring
85*724ba675SRob Herring			gpiod: gpio@40020c00 {
86*724ba675SRob Herring				gpio-controller;
87*724ba675SRob Herring				#gpio-cells = <2>;
88*724ba675SRob Herring				interrupt-controller;
89*724ba675SRob Herring				#interrupt-cells = <2>;
90*724ba675SRob Herring				reg = <0xc00 0x400>;
91*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOD)>;
92*724ba675SRob Herring				st,bank-name = "GPIOD";
93*724ba675SRob Herring			};
94*724ba675SRob Herring
95*724ba675SRob Herring			gpioe: gpio@40021000 {
96*724ba675SRob Herring				gpio-controller;
97*724ba675SRob Herring				#gpio-cells = <2>;
98*724ba675SRob Herring				interrupt-controller;
99*724ba675SRob Herring				#interrupt-cells = <2>;
100*724ba675SRob Herring				reg = <0x1000 0x400>;
101*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOE)>;
102*724ba675SRob Herring				st,bank-name = "GPIOE";
103*724ba675SRob Herring			};
104*724ba675SRob Herring
105*724ba675SRob Herring			gpiof: gpio@40021400 {
106*724ba675SRob Herring				gpio-controller;
107*724ba675SRob Herring				#gpio-cells = <2>;
108*724ba675SRob Herring				interrupt-controller;
109*724ba675SRob Herring				#interrupt-cells = <2>;
110*724ba675SRob Herring				reg = <0x1400 0x400>;
111*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOF)>;
112*724ba675SRob Herring				st,bank-name = "GPIOF";
113*724ba675SRob Herring			};
114*724ba675SRob Herring
115*724ba675SRob Herring			gpiog: gpio@40021800 {
116*724ba675SRob Herring				gpio-controller;
117*724ba675SRob Herring				#gpio-cells = <2>;
118*724ba675SRob Herring				interrupt-controller;
119*724ba675SRob Herring				#interrupt-cells = <2>;
120*724ba675SRob Herring				reg = <0x1800 0x400>;
121*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOG)>;
122*724ba675SRob Herring				st,bank-name = "GPIOG";
123*724ba675SRob Herring			};
124*724ba675SRob Herring
125*724ba675SRob Herring			gpioh: gpio@40021c00 {
126*724ba675SRob Herring				gpio-controller;
127*724ba675SRob Herring				#gpio-cells = <2>;
128*724ba675SRob Herring				interrupt-controller;
129*724ba675SRob Herring				#interrupt-cells = <2>;
130*724ba675SRob Herring				reg = <0x1c00 0x400>;
131*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOH)>;
132*724ba675SRob Herring				st,bank-name = "GPIOH";
133*724ba675SRob Herring			};
134*724ba675SRob Herring
135*724ba675SRob Herring			gpioi: gpio@40022000 {
136*724ba675SRob Herring				gpio-controller;
137*724ba675SRob Herring				#gpio-cells = <2>;
138*724ba675SRob Herring				interrupt-controller;
139*724ba675SRob Herring				#interrupt-cells = <2>;
140*724ba675SRob Herring				reg = <0x2000 0x400>;
141*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOI)>;
142*724ba675SRob Herring				st,bank-name = "GPIOI";
143*724ba675SRob Herring			};
144*724ba675SRob Herring
145*724ba675SRob Herring			gpioj: gpio@40022400 {
146*724ba675SRob Herring				gpio-controller;
147*724ba675SRob Herring				#gpio-cells = <2>;
148*724ba675SRob Herring				interrupt-controller;
149*724ba675SRob Herring				#interrupt-cells = <2>;
150*724ba675SRob Herring				reg = <0x2400 0x400>;
151*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOJ)>;
152*724ba675SRob Herring				st,bank-name = "GPIOJ";
153*724ba675SRob Herring			};
154*724ba675SRob Herring
155*724ba675SRob Herring			gpiok: gpio@40022800 {
156*724ba675SRob Herring				gpio-controller;
157*724ba675SRob Herring				#gpio-cells = <2>;
158*724ba675SRob Herring				interrupt-controller;
159*724ba675SRob Herring				#interrupt-cells = <2>;
160*724ba675SRob Herring				reg = <0x2800 0x400>;
161*724ba675SRob Herring				clocks = <&rcc 0 STM32F4_AHB1_CLOCK(GPIOK)>;
162*724ba675SRob Herring				st,bank-name = "GPIOK";
163*724ba675SRob Herring			};
164*724ba675SRob Herring
165*724ba675SRob Herring			usart1_pins_a: usart1-0 {
166*724ba675SRob Herring				pins1 {
167*724ba675SRob Herring					pinmux = <STM32_PINMUX('A', 9, AF7)>; /* USART1_TX */
168*724ba675SRob Herring					bias-disable;
169*724ba675SRob Herring					drive-push-pull;
170*724ba675SRob Herring					slew-rate = <0>;
171*724ba675SRob Herring				};
172*724ba675SRob Herring				pins2 {
173*724ba675SRob Herring					pinmux = <STM32_PINMUX('A', 10, AF7)>; /* USART1_RX */
174*724ba675SRob Herring					bias-disable;
175*724ba675SRob Herring				};
176*724ba675SRob Herring			};
177*724ba675SRob Herring
178*724ba675SRob Herring			usart3_pins_a: usart3-0 {
179*724ba675SRob Herring				pins1 {
180*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 10, AF7)>; /* USART3_TX */
181*724ba675SRob Herring					bias-disable;
182*724ba675SRob Herring					drive-push-pull;
183*724ba675SRob Herring					slew-rate = <0>;
184*724ba675SRob Herring				};
185*724ba675SRob Herring				pins2 {
186*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 11, AF7)>; /* USART3_RX */
187*724ba675SRob Herring					bias-disable;
188*724ba675SRob Herring				};
189*724ba675SRob Herring			};
190*724ba675SRob Herring
191*724ba675SRob Herring			usbotg_fs_pins_a: usbotg-fs-0 {
192*724ba675SRob Herring				pins {
193*724ba675SRob Herring					pinmux = <STM32_PINMUX('A', 10, AF10)>, /* OTG_FS_ID */
194*724ba675SRob Herring						 <STM32_PINMUX('A', 11, AF10)>, /* OTG_FS_DM */
195*724ba675SRob Herring						 <STM32_PINMUX('A', 12, AF10)>; /* OTG_FS_DP */
196*724ba675SRob Herring					bias-disable;
197*724ba675SRob Herring					drive-push-pull;
198*724ba675SRob Herring					slew-rate = <2>;
199*724ba675SRob Herring				};
200*724ba675SRob Herring			};
201*724ba675SRob Herring
202*724ba675SRob Herring			usbotg_fs_pins_b: usbotg-fs-1 {
203*724ba675SRob Herring				pins {
204*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 12, AF12)>, /* OTG_HS_ID */
205*724ba675SRob Herring						 <STM32_PINMUX('B', 14, AF12)>, /* OTG_HS_DM */
206*724ba675SRob Herring						 <STM32_PINMUX('B', 15, AF12)>; /* OTG_HS_DP */
207*724ba675SRob Herring					bias-disable;
208*724ba675SRob Herring					drive-push-pull;
209*724ba675SRob Herring					slew-rate = <2>;
210*724ba675SRob Herring				};
211*724ba675SRob Herring			};
212*724ba675SRob Herring
213*724ba675SRob Herring			usbotg_hs_pins_a: usbotg-hs-0 {
214*724ba675SRob Herring				pins {
215*724ba675SRob Herring					pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT*/
216*724ba675SRob Herring						 <STM32_PINMUX('I', 11, AF10)>, /* OTG_HS_ULPI_DIR */
217*724ba675SRob Herring						 <STM32_PINMUX('C', 0, AF10)>, /* OTG_HS_ULPI_STP */
218*724ba675SRob Herring						 <STM32_PINMUX('A', 5, AF10)>, /* OTG_HS_ULPI_CK */
219*724ba675SRob Herring						 <STM32_PINMUX('A', 3, AF10)>, /* OTG_HS_ULPI_D0 */
220*724ba675SRob Herring						 <STM32_PINMUX('B', 0, AF10)>, /* OTG_HS_ULPI_D1 */
221*724ba675SRob Herring						 <STM32_PINMUX('B', 1, AF10)>, /* OTG_HS_ULPI_D2 */
222*724ba675SRob Herring						 <STM32_PINMUX('B', 10, AF10)>, /* OTG_HS_ULPI_D3 */
223*724ba675SRob Herring						 <STM32_PINMUX('B', 11, AF10)>, /* OTG_HS_ULPI_D4 */
224*724ba675SRob Herring						 <STM32_PINMUX('B', 12, AF10)>, /* OTG_HS_ULPI_D5 */
225*724ba675SRob Herring						 <STM32_PINMUX('B', 13, AF10)>, /* OTG_HS_ULPI_D6 */
226*724ba675SRob Herring						 <STM32_PINMUX('B', 5, AF10)>; /* OTG_HS_ULPI_D7 */
227*724ba675SRob Herring					bias-disable;
228*724ba675SRob Herring					drive-push-pull;
229*724ba675SRob Herring					slew-rate = <2>;
230*724ba675SRob Herring				};
231*724ba675SRob Herring			};
232*724ba675SRob Herring
233*724ba675SRob Herring			ethernet_mii: mii-0 {
234*724ba675SRob Herring				pins {
235*724ba675SRob Herring					pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_MII_TXD0_ETH_RMII_TXD0 */
236*724ba675SRob Herring						 <STM32_PINMUX('G', 14, AF11)>, /* ETH_MII_TXD1_ETH_RMII_TXD1 */
237*724ba675SRob Herring						 <STM32_PINMUX('C', 2, AF11)>, /* ETH_MII_TXD2 */
238*724ba675SRob Herring						 <STM32_PINMUX('B', 8, AF11)>, /* ETH_MII_TXD3 */
239*724ba675SRob Herring						 <STM32_PINMUX('C', 3, AF11)>, /* ETH_MII_TX_CLK */
240*724ba675SRob Herring						 <STM32_PINMUX('G', 11,AF11)>, /* ETH_MII_TX_EN_ETH_RMII_TX_EN */
241*724ba675SRob Herring						 <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
242*724ba675SRob Herring						 <STM32_PINMUX('C', 1, AF11)>, /* ETH_MDC */
243*724ba675SRob Herring						 <STM32_PINMUX('A', 1, AF11)>, /* ETH_MII_RX_CLK_ETH_RMII_REF_CLK */
244*724ba675SRob Herring						 <STM32_PINMUX('A', 7, AF11)>, /* ETH_MII_RX_DV_ETH_RMII_CRS_DV */
245*724ba675SRob Herring						 <STM32_PINMUX('C', 4, AF11)>, /* ETH_MII_RXD0_ETH_RMII_RXD0 */
246*724ba675SRob Herring						 <STM32_PINMUX('C', 5, AF11)>, /* ETH_MII_RXD1_ETH_RMII_RXD1 */
247*724ba675SRob Herring						 <STM32_PINMUX('H', 6, AF11)>, /* ETH_MII_RXD2 */
248*724ba675SRob Herring						 <STM32_PINMUX('H', 7, AF11)>; /* ETH_MII_RXD3 */
249*724ba675SRob Herring					slew-rate = <2>;
250*724ba675SRob Herring				};
251*724ba675SRob Herring			};
252*724ba675SRob Herring
253*724ba675SRob Herring			adc3_in8_pin: adc-200 {
254*724ba675SRob Herring				pins {
255*724ba675SRob Herring					pinmux = <STM32_PINMUX('F', 10, ANALOG)>;
256*724ba675SRob Herring				};
257*724ba675SRob Herring			};
258*724ba675SRob Herring
259*724ba675SRob Herring			pwm1_pins: pwm1-0 {
260*724ba675SRob Herring				pins {
261*724ba675SRob Herring					pinmux = <STM32_PINMUX('A', 8, AF1)>, /* TIM1_CH1 */
262*724ba675SRob Herring						 <STM32_PINMUX('B', 13, AF1)>, /* TIM1_CH1N */
263*724ba675SRob Herring						 <STM32_PINMUX('B', 12, AF1)>; /* TIM1_BKIN */
264*724ba675SRob Herring				};
265*724ba675SRob Herring			};
266*724ba675SRob Herring
267*724ba675SRob Herring			pwm3_pins: pwm3-0 {
268*724ba675SRob Herring				pins {
269*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 4, AF2)>, /* TIM3_CH1 */
270*724ba675SRob Herring						 <STM32_PINMUX('B', 5, AF2)>; /* TIM3_CH2 */
271*724ba675SRob Herring				};
272*724ba675SRob Herring			};
273*724ba675SRob Herring
274*724ba675SRob Herring			i2c1_pins: i2c1-0 {
275*724ba675SRob Herring				pins {
276*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 9, AF4)>, /* I2C1_SDA */
277*724ba675SRob Herring						 <STM32_PINMUX('B', 6, AF4)>; /* I2C1_SCL */
278*724ba675SRob Herring					bias-disable;
279*724ba675SRob Herring					drive-open-drain;
280*724ba675SRob Herring					slew-rate = <3>;
281*724ba675SRob Herring				};
282*724ba675SRob Herring			};
283*724ba675SRob Herring
284*724ba675SRob Herring			ltdc_pins_a: ltdc-0 {
285*724ba675SRob Herring				pins {
286*724ba675SRob Herring					pinmux = <STM32_PINMUX('I', 12, AF14)>, /* LCD_HSYNC */
287*724ba675SRob Herring						 <STM32_PINMUX('I', 13, AF14)>, /* LCD_VSYNC */
288*724ba675SRob Herring						 <STM32_PINMUX('I', 14, AF14)>, /* LCD_CLK */
289*724ba675SRob Herring						 <STM32_PINMUX('I', 15, AF14)>, /* LCD_R0 */
290*724ba675SRob Herring						 <STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */
291*724ba675SRob Herring						 <STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */
292*724ba675SRob Herring						 <STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */
293*724ba675SRob Herring						 <STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */
294*724ba675SRob Herring						 <STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */
295*724ba675SRob Herring						 <STM32_PINMUX('J', 5, AF14)>, /* LCD_R6*/
296*724ba675SRob Herring						 <STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */
297*724ba675SRob Herring						 <STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */
298*724ba675SRob Herring						 <STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */
299*724ba675SRob Herring						 <STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */
300*724ba675SRob Herring						 <STM32_PINMUX('J', 10, AF14)>, /* LCD_G3 */
301*724ba675SRob Herring						 <STM32_PINMUX('J', 11, AF14)>, /* LCD_G4 */
302*724ba675SRob Herring						 <STM32_PINMUX('J', 12, AF14)>, /* LCD_B0 */
303*724ba675SRob Herring						 <STM32_PINMUX('J', 13, AF14)>, /* LCD_B1 */
304*724ba675SRob Herring						 <STM32_PINMUX('J', 14, AF14)>, /* LCD_B2 */
305*724ba675SRob Herring						 <STM32_PINMUX('J', 15, AF14)>, /* LCD_B3*/
306*724ba675SRob Herring						 <STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */
307*724ba675SRob Herring						 <STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */
308*724ba675SRob Herring						 <STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */
309*724ba675SRob Herring						 <STM32_PINMUX('K', 3, AF14)>, /* LCD_B4 */
310*724ba675SRob Herring						 <STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */
311*724ba675SRob Herring						 <STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */
312*724ba675SRob Herring						 <STM32_PINMUX('K', 6, AF14)>, /* LCD_B7 */
313*724ba675SRob Herring						 <STM32_PINMUX('K', 7, AF14)>; /* LCD_DE */
314*724ba675SRob Herring					slew-rate = <2>;
315*724ba675SRob Herring				};
316*724ba675SRob Herring			};
317*724ba675SRob Herring
318*724ba675SRob Herring			ltdc_pins_b: ltdc-1 {
319*724ba675SRob Herring				pins {
320*724ba675SRob Herring					pinmux = <STM32_PINMUX('C', 6,  AF14)>,
321*724ba675SRob Herring						/* LCD_HSYNC */
322*724ba675SRob Herring						 <STM32_PINMUX('A', 4,  AF14)>,
323*724ba675SRob Herring						 /* LCD_VSYNC */
324*724ba675SRob Herring						 <STM32_PINMUX('G', 7,  AF14)>,
325*724ba675SRob Herring						 /* LCD_CLK */
326*724ba675SRob Herring						 <STM32_PINMUX('C', 10, AF14)>,
327*724ba675SRob Herring						 /* LCD_R2 */
328*724ba675SRob Herring						 <STM32_PINMUX('B', 0,  AF9)>,
329*724ba675SRob Herring						 /* LCD_R3 */
330*724ba675SRob Herring						 <STM32_PINMUX('A', 11, AF14)>,
331*724ba675SRob Herring						 /* LCD_R4 */
332*724ba675SRob Herring						 <STM32_PINMUX('A', 12, AF14)>,
333*724ba675SRob Herring						 /* LCD_R5 */
334*724ba675SRob Herring						 <STM32_PINMUX('B', 1,  AF9)>,
335*724ba675SRob Herring						 /* LCD_R6*/
336*724ba675SRob Herring						 <STM32_PINMUX('G', 6,  AF14)>,
337*724ba675SRob Herring						 /* LCD_R7 */
338*724ba675SRob Herring						 <STM32_PINMUX('A', 6,  AF14)>,
339*724ba675SRob Herring						 /* LCD_G2 */
340*724ba675SRob Herring						 <STM32_PINMUX('G', 10, AF9)>,
341*724ba675SRob Herring						 /* LCD_G3 */
342*724ba675SRob Herring						 <STM32_PINMUX('B', 10, AF14)>,
343*724ba675SRob Herring						 /* LCD_G4 */
344*724ba675SRob Herring						 <STM32_PINMUX('D', 6,  AF14)>,
345*724ba675SRob Herring						 /* LCD_B2 */
346*724ba675SRob Herring						 <STM32_PINMUX('G', 11, AF14)>,
347*724ba675SRob Herring						 /* LCD_B3*/
348*724ba675SRob Herring						 <STM32_PINMUX('B', 11, AF14)>,
349*724ba675SRob Herring						 /* LCD_G5 */
350*724ba675SRob Herring						 <STM32_PINMUX('C', 7,  AF14)>,
351*724ba675SRob Herring						 /* LCD_G6 */
352*724ba675SRob Herring						 <STM32_PINMUX('D', 3,  AF14)>,
353*724ba675SRob Herring						 /* LCD_G7 */
354*724ba675SRob Herring						 <STM32_PINMUX('G', 12, AF9)>,
355*724ba675SRob Herring						 /* LCD_B4 */
356*724ba675SRob Herring						 <STM32_PINMUX('A', 3,  AF14)>,
357*724ba675SRob Herring						 /* LCD_B5 */
358*724ba675SRob Herring						 <STM32_PINMUX('B', 8,  AF14)>,
359*724ba675SRob Herring						 /* LCD_B6 */
360*724ba675SRob Herring						 <STM32_PINMUX('B', 9,  AF14)>,
361*724ba675SRob Herring						 /* LCD_B7 */
362*724ba675SRob Herring						 <STM32_PINMUX('F', 10, AF14)>;
363*724ba675SRob Herring						 /* LCD_DE */
364*724ba675SRob Herring					slew-rate = <2>;
365*724ba675SRob Herring				};
366*724ba675SRob Herring			};
367*724ba675SRob Herring
368*724ba675SRob Herring			spi5_pins: spi5-0 {
369*724ba675SRob Herring				pins1 {
370*724ba675SRob Herring					pinmux = <STM32_PINMUX('F', 7, AF5)>,
371*724ba675SRob Herring						/* SPI5_CLK */
372*724ba675SRob Herring						 <STM32_PINMUX('F', 9, AF5)>;
373*724ba675SRob Herring						/* SPI5_MOSI */
374*724ba675SRob Herring					bias-disable;
375*724ba675SRob Herring					drive-push-pull;
376*724ba675SRob Herring					slew-rate = <0>;
377*724ba675SRob Herring				};
378*724ba675SRob Herring				pins2 {
379*724ba675SRob Herring					pinmux = <STM32_PINMUX('F', 8, AF5)>;
380*724ba675SRob Herring						/* SPI5_MISO */
381*724ba675SRob Herring					bias-disable;
382*724ba675SRob Herring				};
383*724ba675SRob Herring			};
384*724ba675SRob Herring
385*724ba675SRob Herring			i2c3_pins: i2c3-0 {
386*724ba675SRob Herring				pins {
387*724ba675SRob Herring					pinmux = <STM32_PINMUX('C', 9, AF4)>,
388*724ba675SRob Herring						/* I2C3_SDA */
389*724ba675SRob Herring						 <STM32_PINMUX('A', 8, AF4)>;
390*724ba675SRob Herring						/* I2C3_SCL */
391*724ba675SRob Herring					bias-disable;
392*724ba675SRob Herring					drive-open-drain;
393*724ba675SRob Herring					slew-rate = <3>;
394*724ba675SRob Herring				};
395*724ba675SRob Herring			};
396*724ba675SRob Herring
397*724ba675SRob Herring			dcmi_pins: dcmi-0 {
398*724ba675SRob Herring				pins {
399*724ba675SRob Herring					pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */
400*724ba675SRob Herring						 <STM32_PINMUX('B', 7, AF13)>, /* DCMI_VSYNC */
401*724ba675SRob Herring						 <STM32_PINMUX('A', 6, AF13)>, /* DCMI_PIXCLK */
402*724ba675SRob Herring						 <STM32_PINMUX('C', 6, AF13)>, /* DCMI_D0 */
403*724ba675SRob Herring						 <STM32_PINMUX('C', 7, AF13)>, /* DCMI_D1 */
404*724ba675SRob Herring						 <STM32_PINMUX('C', 8, AF13)>, /* DCMI_D2 */
405*724ba675SRob Herring						 <STM32_PINMUX('C', 9, AF13)>, /* DCMI_D3 */
406*724ba675SRob Herring						 <STM32_PINMUX('C', 11, AF13)>, /*DCMI_D4 */
407*724ba675SRob Herring						 <STM32_PINMUX('D', 3, AF13)>, /* DCMI_D5 */
408*724ba675SRob Herring						 <STM32_PINMUX('B', 8, AF13)>, /* DCMI_D6 */
409*724ba675SRob Herring						 <STM32_PINMUX('E', 6, AF13)>, /* DCMI_D7 */
410*724ba675SRob Herring						 <STM32_PINMUX('C', 10, AF13)>, /* DCMI_D8 */
411*724ba675SRob Herring						 <STM32_PINMUX('C', 12, AF13)>, /* DCMI_D9 */
412*724ba675SRob Herring						 <STM32_PINMUX('D', 6, AF13)>, /* DCMI_D10 */
413*724ba675SRob Herring						 <STM32_PINMUX('D', 2, AF13)>; /* DCMI_D11 */
414*724ba675SRob Herring					bias-disable;
415*724ba675SRob Herring					drive-push-pull;
416*724ba675SRob Herring					slew-rate = <3>;
417*724ba675SRob Herring				};
418*724ba675SRob Herring			};
419*724ba675SRob Herring
420*724ba675SRob Herring			sdio_pins: sdio-pins-0 {
421*724ba675SRob Herring				pins {
422*724ba675SRob Herring					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDIO_D0 */
423*724ba675SRob Herring						 <STM32_PINMUX('C', 9, AF12)>, /* SDIO_D1 */
424*724ba675SRob Herring						 <STM32_PINMUX('C', 10, AF12)>, /* SDIO_D2 */
425*724ba675SRob Herring						 <STM32_PINMUX('C', 11, AF12)>, /* SDIO_D3 */
426*724ba675SRob Herring						 <STM32_PINMUX('C', 12, AF12)>, /* SDIO_CK */
427*724ba675SRob Herring						 <STM32_PINMUX('D', 2, AF12)>; /* SDIO_CMD */
428*724ba675SRob Herring					drive-push-pull;
429*724ba675SRob Herring					slew-rate = <2>;
430*724ba675SRob Herring				};
431*724ba675SRob Herring			};
432*724ba675SRob Herring
433*724ba675SRob Herring			sdio_pins_od: sdio-pins-od-0 {
434*724ba675SRob Herring				pins1 {
435*724ba675SRob Herring					pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDIO_D0 */
436*724ba675SRob Herring						 <STM32_PINMUX('C', 9, AF12)>, /* SDIO_D1 */
437*724ba675SRob Herring						 <STM32_PINMUX('C', 10, AF12)>, /* SDIO_D2 */
438*724ba675SRob Herring						 <STM32_PINMUX('C', 11, AF12)>, /* SDIO_D3 */
439*724ba675SRob Herring						 <STM32_PINMUX('C', 12, AF12)>; /* SDIO_CK */
440*724ba675SRob Herring					drive-push-pull;
441*724ba675SRob Herring					slew-rate = <2>;
442*724ba675SRob Herring				};
443*724ba675SRob Herring
444*724ba675SRob Herring				pins2 {
445*724ba675SRob Herring					pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDIO_CMD */
446*724ba675SRob Herring					drive-open-drain;
447*724ba675SRob Herring					slew-rate = <2>;
448*724ba675SRob Herring				};
449*724ba675SRob Herring			};
450*724ba675SRob Herring
451*724ba675SRob Herring			can1_pins_a: can1-0 {
452*724ba675SRob Herring				pins1 {
453*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 9, AF9)>; /* CAN1_TX */
454*724ba675SRob Herring				};
455*724ba675SRob Herring				pins2 {
456*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 8, AF9)>; /* CAN1_RX */
457*724ba675SRob Herring					bias-pull-up;
458*724ba675SRob Herring				};
459*724ba675SRob Herring			};
460*724ba675SRob Herring
461*724ba675SRob Herring			can2_pins_a: can2-0 {
462*724ba675SRob Herring				pins1 {
463*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 13, AF9)>; /* CAN2_TX */
464*724ba675SRob Herring				};
465*724ba675SRob Herring				pins2 {
466*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 5, AF9)>; /* CAN2_RX */
467*724ba675SRob Herring					bias-pull-up;
468*724ba675SRob Herring				};
469*724ba675SRob Herring			};
470*724ba675SRob Herring
471*724ba675SRob Herring			can2_pins_b: can2-1 {
472*724ba675SRob Herring				pins1 {
473*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 13, AF9)>; /* CAN2_TX */
474*724ba675SRob Herring				};
475*724ba675SRob Herring				pins2 {
476*724ba675SRob Herring					pinmux = <STM32_PINMUX('B', 12, AF9)>; /* CAN2_RX */
477*724ba675SRob Herring					bias-pull-up;
478*724ba675SRob Herring				};
479*724ba675SRob Herring			};
480*724ba675SRob Herring		};
481*724ba675SRob Herring	};
482*724ba675SRob Herring};
483