blob: 9bae85045a1611218a4ddc6e7e8ccaae04dc5c73 [file] [log] [blame]
Patrick Delaunay50599142018-07-09 15:17:19 +02001// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
4 * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
5 */
6#include <dt-bindings/pinctrl/stm32-pinfunc.h>
7
8/ {
9 soc {
10 pinctrl: pin-controller@50002000 {
11 #address-cells = <1>;
12 #size-cells = <1>;
13 compatible = "st,stm32mp157-pinctrl";
14 ranges = <0 0x50002000 0xa400>;
15 interrupt-parent = <&exti>;
16 st,syscfg = <&exti 0x60 0xff>;
Patrick Delaunaya3705302019-07-11 11:15:28 +020017 hwlocks = <&hwspinlock 0>;
Patrick Delaunay50599142018-07-09 15:17:19 +020018 pins-are-numbered;
19
20 gpioa: gpio@50002000 {
21 gpio-controller;
22 #gpio-cells = <2>;
23 interrupt-controller;
24 #interrupt-cells = <2>;
25 reg = <0x0 0x400>;
26 clocks = <&rcc GPIOA>;
27 st,bank-name = "GPIOA";
28 ngpios = <16>;
29 gpio-ranges = <&pinctrl 0 0 16>;
30 };
31
32 gpiob: gpio@50003000 {
33 gpio-controller;
34 #gpio-cells = <2>;
35 interrupt-controller;
36 #interrupt-cells = <2>;
37 reg = <0x1000 0x400>;
38 clocks = <&rcc GPIOB>;
39 st,bank-name = "GPIOB";
40 ngpios = <16>;
41 gpio-ranges = <&pinctrl 0 16 16>;
42 };
43
44 gpioc: gpio@50004000 {
45 gpio-controller;
46 #gpio-cells = <2>;
47 interrupt-controller;
48 #interrupt-cells = <2>;
49 reg = <0x2000 0x400>;
50 clocks = <&rcc GPIOC>;
51 st,bank-name = "GPIOC";
52 ngpios = <16>;
53 gpio-ranges = <&pinctrl 0 32 16>;
54 };
55
56 gpiod: gpio@50005000 {
57 gpio-controller;
58 #gpio-cells = <2>;
59 interrupt-controller;
60 #interrupt-cells = <2>;
61 reg = <0x3000 0x400>;
62 clocks = <&rcc GPIOD>;
63 st,bank-name = "GPIOD";
64 ngpios = <16>;
65 gpio-ranges = <&pinctrl 0 48 16>;
66 };
67
68 gpioe: gpio@50006000 {
69 gpio-controller;
70 #gpio-cells = <2>;
71 interrupt-controller;
72 #interrupt-cells = <2>;
73 reg = <0x4000 0x400>;
74 clocks = <&rcc GPIOE>;
75 st,bank-name = "GPIOE";
76 ngpios = <16>;
77 gpio-ranges = <&pinctrl 0 64 16>;
78 };
79
80 gpiof: gpio@50007000 {
81 gpio-controller;
82 #gpio-cells = <2>;
83 interrupt-controller;
84 #interrupt-cells = <2>;
85 reg = <0x5000 0x400>;
86 clocks = <&rcc GPIOF>;
87 st,bank-name = "GPIOF";
88 ngpios = <16>;
89 gpio-ranges = <&pinctrl 0 80 16>;
90 };
91
92 gpiog: gpio@50008000 {
93 gpio-controller;
94 #gpio-cells = <2>;
95 interrupt-controller;
96 #interrupt-cells = <2>;
97 reg = <0x6000 0x400>;
98 clocks = <&rcc GPIOG>;
99 st,bank-name = "GPIOG";
100 ngpios = <16>;
101 gpio-ranges = <&pinctrl 0 96 16>;
102 };
103
104 gpioh: gpio@50009000 {
105 gpio-controller;
106 #gpio-cells = <2>;
107 interrupt-controller;
108 #interrupt-cells = <2>;
109 reg = <0x7000 0x400>;
110 clocks = <&rcc GPIOH>;
111 st,bank-name = "GPIOH";
112 ngpios = <16>;
113 gpio-ranges = <&pinctrl 0 112 16>;
114 };
115
116 gpioi: gpio@5000a000 {
117 gpio-controller;
118 #gpio-cells = <2>;
119 interrupt-controller;
120 #interrupt-cells = <2>;
121 reg = <0x8000 0x400>;
122 clocks = <&rcc GPIOI>;
123 st,bank-name = "GPIOI";
124 ngpios = <16>;
125 gpio-ranges = <&pinctrl 0 128 16>;
126 };
127
128 gpioj: gpio@5000b000 {
129 gpio-controller;
130 #gpio-cells = <2>;
131 interrupt-controller;
132 #interrupt-cells = <2>;
133 reg = <0x9000 0x400>;
134 clocks = <&rcc GPIOJ>;
135 st,bank-name = "GPIOJ";
136 ngpios = <16>;
137 gpio-ranges = <&pinctrl 0 144 16>;
138 };
139
140 gpiok: gpio@5000c000 {
141 gpio-controller;
142 #gpio-cells = <2>;
143 interrupt-controller;
144 #interrupt-cells = <2>;
145 reg = <0xa000 0x400>;
146 clocks = <&rcc GPIOK>;
147 st,bank-name = "GPIOK";
148 ngpios = <8>;
149 gpio-ranges = <&pinctrl 0 160 8>;
150 };
151
Patrice Chotarde861c202019-02-12 16:50:41 +0100152 adc12_usb_pwr_pins_a: adc12-usb-pwr-pins-0 {
153 pins {
154 pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* ADC12 in18 */
155 <STM32_PINMUX('A', 5, ANALOG)>; /* ADC12 in19 */
156 };
157 };
158
Patrick Delaunay50599142018-07-09 15:17:19 +0200159 cec_pins_a: cec-0 {
160 pins {
161 pinmux = <STM32_PINMUX('A', 15, AF4)>;
162 bias-disable;
163 drive-open-drain;
164 slew-rate = <0>;
165 };
166 };
167
Patrick Delaunaya3705302019-07-11 11:15:28 +0200168 cec_pins_sleep_a: cec-sleep-0 {
169 pins {
170 pinmux = <STM32_PINMUX('A', 15, ANALOG)>; /* HDMI_CEC */
171 };
172 };
173
174 cec_pins_b: cec-1 {
175 pins {
176 pinmux = <STM32_PINMUX('B', 6, AF5)>;
177 bias-disable;
178 drive-open-drain;
179 slew-rate = <0>;
180 };
181 };
182
183 cec_pins_sleep_b: cec-sleep-1 {
184 pins {
185 pinmux = <STM32_PINMUX('B', 6, ANALOG)>; /* HDMI_CEC */
186 };
187 };
188
Patrice Chotard00442d02019-02-12 16:50:38 +0100189 ethernet0_rgmii_pins_a: rgmii-0 {
190 pins1 {
191 pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
192 <STM32_PINMUX('G', 4, AF11)>, /* ETH_RGMII_GTX_CLK */
193 <STM32_PINMUX('G', 13, AF11)>, /* ETH_RGMII_TXD0 */
194 <STM32_PINMUX('G', 14, AF11)>, /* ETH_RGMII_TXD1 */
195 <STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
196 <STM32_PINMUX('E', 2, AF11)>, /* ETH_RGMII_TXD3 */
197 <STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */
Patrice Chotard00442d02019-02-12 16:50:38 +0100198 <STM32_PINMUX('C', 1, AF11)>; /* ETH_MDC */
199 bias-disable;
200 drive-push-pull;
Christophe Roullier32ac3052019-05-17 15:08:45 +0200201 slew-rate = <2>;
Patrice Chotard00442d02019-02-12 16:50:38 +0100202 };
203 pins2 {
Christophe Roullier32ac3052019-05-17 15:08:45 +0200204 pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH_MDIO */
205 bias-disable;
206 drive-push-pull;
207 slew-rate = <0>;
208 };
209 pins3 {
Patrice Chotard00442d02019-02-12 16:50:38 +0100210 pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */
211 <STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */
212 <STM32_PINMUX('B', 0, AF11)>, /* ETH_RGMII_RXD2 */
213 <STM32_PINMUX('B', 1, AF11)>, /* ETH_RGMII_RXD3 */
214 <STM32_PINMUX('A', 1, AF11)>, /* ETH_RGMII_RX_CLK */
215 <STM32_PINMUX('A', 7, AF11)>; /* ETH_RGMII_RX_CTL */
216 bias-disable;
217 };
218 };
219
220 ethernet0_rgmii_pins_sleep_a: rgmii-sleep-0 {
221 pins1 {
222 pinmux = <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_RGMII_CLK125 */
223 <STM32_PINMUX('G', 4, ANALOG)>, /* ETH_RGMII_GTX_CLK */
224 <STM32_PINMUX('G', 13, ANALOG)>, /* ETH_RGMII_TXD0 */
225 <STM32_PINMUX('G', 14, ANALOG)>, /* ETH_RGMII_TXD1 */
226 <STM32_PINMUX('C', 2, ANALOG)>, /* ETH_RGMII_TXD2 */
227 <STM32_PINMUX('E', 2, ANALOG)>, /* ETH_RGMII_TXD3 */
228 <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RGMII_TX_CTL */
229 <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
230 <STM32_PINMUX('C', 1, ANALOG)>, /* ETH_MDC */
231 <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_RXD0 */
232 <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RGMII_RXD1 */
233 <STM32_PINMUX('B', 0, ANALOG)>, /* ETH_RGMII_RXD2 */
234 <STM32_PINMUX('B', 1, ANALOG)>, /* ETH_RGMII_RXD3 */
235 <STM32_PINMUX('A', 1, ANALOG)>, /* ETH_RGMII_RX_CLK */
236 <STM32_PINMUX('A', 7, ANALOG)>; /* ETH_RGMII_RX_CTL */
237 };
238 };
239
Patrick Delaunaye0188ac2019-04-08 15:30:52 +0200240 fmc_pins_a: fmc-0 {
241 pins1 {
242 pinmux = <STM32_PINMUX('D', 4, AF12)>, /* FMC_NOE */
243 <STM32_PINMUX('D', 5, AF12)>, /* FMC_NWE */
244 <STM32_PINMUX('D', 11, AF12)>, /* FMC_A16_FMC_CLE */
245 <STM32_PINMUX('D', 12, AF12)>, /* FMC_A17_FMC_ALE */
246 <STM32_PINMUX('D', 14, AF12)>, /* FMC_D0 */
247 <STM32_PINMUX('D', 15, AF12)>, /* FMC_D1 */
248 <STM32_PINMUX('D', 0, AF12)>, /* FMC_D2 */
249 <STM32_PINMUX('D', 1, AF12)>, /* FMC_D3 */
250 <STM32_PINMUX('E', 7, AF12)>, /* FMC_D4 */
251 <STM32_PINMUX('E', 8, AF12)>, /* FMC_D5 */
252 <STM32_PINMUX('E', 9, AF12)>, /* FMC_D6 */
253 <STM32_PINMUX('E', 10, AF12)>, /* FMC_D7 */
254 <STM32_PINMUX('G', 9, AF12)>; /* FMC_NE2_FMC_NCE */
255 bias-disable;
256 drive-push-pull;
257 slew-rate = <1>;
258 };
259 pins2 {
260 pinmux = <STM32_PINMUX('D', 6, AF12)>; /* FMC_NWAIT */
261 bias-pull-up;
262 };
263 };
264
265 fmc_sleep_pins_a: fmc-sleep-0 {
266 pins {
267 pinmux = <STM32_PINMUX('D', 4, ANALOG)>, /* FMC_NOE */
268 <STM32_PINMUX('D', 5, ANALOG)>, /* FMC_NWE */
269 <STM32_PINMUX('D', 11, ANALOG)>, /* FMC_A16_FMC_CLE */
270 <STM32_PINMUX('D', 12, ANALOG)>, /* FMC_A17_FMC_ALE */
271 <STM32_PINMUX('D', 14, ANALOG)>, /* FMC_D0 */
272 <STM32_PINMUX('D', 15, ANALOG)>, /* FMC_D1 */
273 <STM32_PINMUX('D', 0, ANALOG)>, /* FMC_D2 */
274 <STM32_PINMUX('D', 1, ANALOG)>, /* FMC_D3 */
275 <STM32_PINMUX('E', 7, ANALOG)>, /* FMC_D4 */
276 <STM32_PINMUX('E', 8, ANALOG)>, /* FMC_D5 */
277 <STM32_PINMUX('E', 9, ANALOG)>, /* FMC_D6 */
278 <STM32_PINMUX('E', 10, ANALOG)>, /* FMC_D7 */
279 <STM32_PINMUX('D', 6, ANALOG)>, /* FMC_NWAIT */
280 <STM32_PINMUX('G', 9, ANALOG)>; /* FMC_NE2_FMC_NCE */
281 };
282 };
283
Patrick Delaunay50599142018-07-09 15:17:19 +0200284 i2c1_pins_a: i2c1-0 {
285 pins {
286 pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
287 <STM32_PINMUX('F', 15, AF5)>; /* I2C1_SDA */
288 bias-disable;
289 drive-open-drain;
290 slew-rate = <0>;
291 };
292 };
293
Patrick Delaunaya3705302019-07-11 11:15:28 +0200294 i2c1_pins_sleep_a: i2c1-1 {
295 pins {
296 pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
297 <STM32_PINMUX('F', 15, ANALOG)>; /* I2C1_SDA */
298 };
299 };
300
301 i2c1_pins_b: i2c1-2 {
Manivannan Sadhasivamc70ef692019-05-02 13:26:43 +0530302 pins {
303 pinmux = <STM32_PINMUX('F', 14, AF5)>, /* I2C1_SCL */
304 <STM32_PINMUX('F', 15, AF5)>; /* I2C1_SDA */
305 bias-disable;
306 drive-open-drain;
307 slew-rate = <0>;
308 };
309 };
310
Patrick Delaunay50599142018-07-09 15:17:19 +0200311 i2c2_pins_a: i2c2-0 {
312 pins {
313 pinmux = <STM32_PINMUX('H', 4, AF4)>, /* I2C2_SCL */
314 <STM32_PINMUX('H', 5, AF4)>; /* I2C2_SDA */
315 bias-disable;
316 drive-open-drain;
317 slew-rate = <0>;
318 };
319 };
320
Patrick Delaunaya3705302019-07-11 11:15:28 +0200321 i2c2_pins_sleep_a: i2c2-1 {
322 pins {
323 pinmux = <STM32_PINMUX('H', 4, ANALOG)>, /* I2C2_SCL */
324 <STM32_PINMUX('H', 5, ANALOG)>; /* I2C2_SDA */
325 };
326 };
327
328 i2c2_pins_b: i2c2-2 {
Manivannan Sadhasivamc70ef692019-05-02 13:26:43 +0530329 pins {
330 pinmux = <STM32_PINMUX('Z', 0, AF3)>, /* I2C2_SCL */
331 <STM32_PINMUX('H', 5, AF4)>; /* I2C2_SDA */
332 bias-disable;
333 drive-open-drain;
334 slew-rate = <0>;
335 };
336 };
337
Patrick Delaunay50599142018-07-09 15:17:19 +0200338 i2c5_pins_a: i2c5-0 {
339 pins {
340 pinmux = <STM32_PINMUX('A', 11, AF4)>, /* I2C5_SCL */
341 <STM32_PINMUX('A', 12, AF4)>; /* I2C5_SDA */
342 bias-disable;
343 drive-open-drain;
344 slew-rate = <0>;
345 };
346 };
347
Patrick Delaunaya3705302019-07-11 11:15:28 +0200348 i2c5_pins_sleep_a: i2c5-1 {
349 pins {
350 pinmux = <STM32_PINMUX('A', 11, ANALOG)>, /* I2C5_SCL */
351 <STM32_PINMUX('A', 12, ANALOG)>; /* I2C5_SDA */
352
353 };
354 };
355
356 ltdc_pins_a: ltdc-a-0 {
357 pins {
358 pinmux = <STM32_PINMUX('G', 7, AF14)>, /* LCD_CLK */
359 <STM32_PINMUX('I', 10, AF14)>, /* LCD_HSYNC */
360 <STM32_PINMUX('I', 9, AF14)>, /* LCD_VSYNC */
361 <STM32_PINMUX('F', 10, AF14)>, /* LCD_DE */
362 <STM32_PINMUX('H', 2, AF14)>, /* LCD_R0 */
363 <STM32_PINMUX('H', 3, AF14)>, /* LCD_R1 */
364 <STM32_PINMUX('H', 8, AF14)>, /* LCD_R2 */
365 <STM32_PINMUX('H', 9, AF14)>, /* LCD_R3 */
366 <STM32_PINMUX('H', 10, AF14)>, /* LCD_R4 */
367 <STM32_PINMUX('C', 0, AF14)>, /* LCD_R5 */
368 <STM32_PINMUX('H', 12, AF14)>, /* LCD_R6 */
369 <STM32_PINMUX('E', 15, AF14)>, /* LCD_R7 */
370 <STM32_PINMUX('E', 5, AF14)>, /* LCD_G0 */
371 <STM32_PINMUX('E', 6, AF14)>, /* LCD_G1 */
372 <STM32_PINMUX('H', 13, AF14)>, /* LCD_G2 */
373 <STM32_PINMUX('H', 14, AF14)>, /* LCD_G3 */
374 <STM32_PINMUX('H', 15, AF14)>, /* LCD_G4 */
375 <STM32_PINMUX('I', 0, AF14)>, /* LCD_G5 */
376 <STM32_PINMUX('I', 1, AF14)>, /* LCD_G6 */
377 <STM32_PINMUX('I', 2, AF14)>, /* LCD_G7 */
378 <STM32_PINMUX('D', 9, AF14)>, /* LCD_B0 */
379 <STM32_PINMUX('G', 12, AF14)>, /* LCD_B1 */
380 <STM32_PINMUX('G', 10, AF14)>, /* LCD_B2 */
381 <STM32_PINMUX('D', 10, AF14)>, /* LCD_B3 */
382 <STM32_PINMUX('I', 4, AF14)>, /* LCD_B4 */
383 <STM32_PINMUX('A', 3, AF14)>, /* LCD_B5 */
384 <STM32_PINMUX('B', 8, AF14)>, /* LCD_B6 */
385 <STM32_PINMUX('D', 8, AF14)>; /* LCD_B7 */
386 bias-disable;
387 drive-push-pull;
388 slew-rate = <1>;
389 };
390 };
391
392 ltdc_pins_sleep_a: ltdc-a-1 {
393 pins {
394 pinmux = <STM32_PINMUX('G', 7, ANALOG)>, /* LCD_CLK */
395 <STM32_PINMUX('I', 10, ANALOG)>, /* LCD_HSYNC */
396 <STM32_PINMUX('I', 9, ANALOG)>, /* LCD_VSYNC */
397 <STM32_PINMUX('F', 10, ANALOG)>, /* LCD_DE */
398 <STM32_PINMUX('H', 2, ANALOG)>, /* LCD_R0 */
399 <STM32_PINMUX('H', 3, ANALOG)>, /* LCD_R1 */
400 <STM32_PINMUX('H', 8, ANALOG)>, /* LCD_R2 */
401 <STM32_PINMUX('H', 9, ANALOG)>, /* LCD_R3 */
402 <STM32_PINMUX('H', 10, ANALOG)>, /* LCD_R4 */
403 <STM32_PINMUX('C', 0, ANALOG)>, /* LCD_R5 */
404 <STM32_PINMUX('H', 12, ANALOG)>, /* LCD_R6 */
405 <STM32_PINMUX('E', 15, ANALOG)>, /* LCD_R7 */
406 <STM32_PINMUX('E', 5, ANALOG)>, /* LCD_G0 */
407 <STM32_PINMUX('E', 6, ANALOG)>, /* LCD_G1 */
408 <STM32_PINMUX('H', 13, ANALOG)>, /* LCD_G2 */
409 <STM32_PINMUX('H', 14, ANALOG)>, /* LCD_G3 */
410 <STM32_PINMUX('H', 15, ANALOG)>, /* LCD_G4 */
411 <STM32_PINMUX('I', 0, ANALOG)>, /* LCD_G5 */
412 <STM32_PINMUX('I', 1, ANALOG)>, /* LCD_G6 */
413 <STM32_PINMUX('I', 2, ANALOG)>, /* LCD_G7 */
414 <STM32_PINMUX('D', 9, ANALOG)>, /* LCD_B0 */
415 <STM32_PINMUX('G', 12, ANALOG)>, /* LCD_B1 */
416 <STM32_PINMUX('G', 10, ANALOG)>, /* LCD_B2 */
417 <STM32_PINMUX('D', 10, ANALOG)>, /* LCD_B3 */
418 <STM32_PINMUX('I', 4, ANALOG)>, /* LCD_B4 */
419 <STM32_PINMUX('A', 3, ANALOG)>, /* LCD_B5 */
420 <STM32_PINMUX('B', 8, ANALOG)>, /* LCD_B6 */
421 <STM32_PINMUX('D', 8, ANALOG)>; /* LCD_B7 */
422 };
423 };
424
425 ltdc_pins_b: ltdc-b-0 {
426 pins {
427 pinmux = <STM32_PINMUX('I', 14, AF14)>, /* LCD_CLK */
428 <STM32_PINMUX('I', 12, AF14)>, /* LCD_HSYNC */
429 <STM32_PINMUX('I', 13, AF14)>, /* LCD_VSYNC */
430 <STM32_PINMUX('K', 7, AF14)>, /* LCD_DE */
431 <STM32_PINMUX('I', 15, AF14)>, /* LCD_R0 */
432 <STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */
433 <STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */
434 <STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */
435 <STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */
436 <STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */
437 <STM32_PINMUX('J', 5, AF14)>, /* LCD_R6 */
438 <STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */
439 <STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */
440 <STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */
441 <STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */
442 <STM32_PINMUX('J', 10, AF14)>, /* LCD_G3 */
443 <STM32_PINMUX('J', 11, AF14)>, /* LCD_G4 */
444 <STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */
445 <STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */
446 <STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */
447 <STM32_PINMUX('J', 12, AF14)>, /* LCD_B0 */
448 <STM32_PINMUX('J', 13, AF14)>, /* LCD_B1 */
449 <STM32_PINMUX('J', 14, AF14)>, /* LCD_B2 */
450 <STM32_PINMUX('J', 15, AF14)>, /* LCD_B3 */
451 <STM32_PINMUX('K', 3, AF14)>, /* LCD_B4 */
452 <STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */
453 <STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */
454 <STM32_PINMUX('K', 6, AF14)>; /* LCD_B7 */
455 bias-disable;
456 drive-push-pull;
457 slew-rate = <1>;
458 };
459 };
460
461 ltdc_pins_sleep_b: ltdc-b-1 {
462 pins {
463 pinmux = <STM32_PINMUX('I', 14, ANALOG)>, /* LCD_CLK */
464 <STM32_PINMUX('I', 12, ANALOG)>, /* LCD_HSYNC */
465 <STM32_PINMUX('I', 13, ANALOG)>, /* LCD_VSYNC */
466 <STM32_PINMUX('K', 7, ANALOG)>, /* LCD_DE */
467 <STM32_PINMUX('I', 15, ANALOG)>, /* LCD_R0 */
468 <STM32_PINMUX('J', 0, ANALOG)>, /* LCD_R1 */
469 <STM32_PINMUX('J', 1, ANALOG)>, /* LCD_R2 */
470 <STM32_PINMUX('J', 2, ANALOG)>, /* LCD_R3 */
471 <STM32_PINMUX('J', 3, ANALOG)>, /* LCD_R4 */
472 <STM32_PINMUX('J', 4, ANALOG)>, /* LCD_R5 */
473 <STM32_PINMUX('J', 5, ANALOG)>, /* LCD_R6 */
474 <STM32_PINMUX('J', 6, ANALOG)>, /* LCD_R7 */
475 <STM32_PINMUX('J', 7, ANALOG)>, /* LCD_G0 */
476 <STM32_PINMUX('J', 8, ANALOG)>, /* LCD_G1 */
477 <STM32_PINMUX('J', 9, ANALOG)>, /* LCD_G2 */
478 <STM32_PINMUX('J', 10, ANALOG)>, /* LCD_G3 */
479 <STM32_PINMUX('J', 11, ANALOG)>, /* LCD_G4 */
480 <STM32_PINMUX('K', 0, ANALOG)>, /* LCD_G5 */
481 <STM32_PINMUX('K', 1, ANALOG)>, /* LCD_G6 */
482 <STM32_PINMUX('K', 2, ANALOG)>, /* LCD_G7 */
483 <STM32_PINMUX('J', 12, ANALOG)>, /* LCD_B0 */
484 <STM32_PINMUX('J', 13, ANALOG)>, /* LCD_B1 */
485 <STM32_PINMUX('J', 14, ANALOG)>, /* LCD_B2 */
486 <STM32_PINMUX('J', 15, ANALOG)>, /* LCD_B3 */
487 <STM32_PINMUX('K', 3, ANALOG)>, /* LCD_B4 */
488 <STM32_PINMUX('K', 4, ANALOG)>, /* LCD_B5 */
489 <STM32_PINMUX('K', 5, ANALOG)>, /* LCD_B6 */
490 <STM32_PINMUX('K', 6, ANALOG)>; /* LCD_B7 */
491 };
492 };
493
Patrice Chotard00442d02019-02-12 16:50:38 +0100494 m_can1_pins_a: m-can1-0 {
495 pins1 {
496 pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
497 slew-rate = <1>;
498 drive-push-pull;
499 bias-disable;
500 };
501 pins2 {
502 pinmux = <STM32_PINMUX('I', 9, AF9)>; /* CAN1_RX */
503 bias-disable;
504 };
505 };
506
Patrick Delaunaya3705302019-07-11 11:15:28 +0200507 m_can1_sleep_pins_a: m_can1-sleep@0 {
508 pins {
509 pinmux = <STM32_PINMUX('H', 13, ANALOG)>, /* CAN1_TX */
510 <STM32_PINMUX('I', 9, ANALOG)>; /* CAN1_RX */
511 };
512 };
513
Patrick Delaunay50599142018-07-09 15:17:19 +0200514 pwm2_pins_a: pwm2-0 {
515 pins {
516 pinmux = <STM32_PINMUX('A', 3, AF1)>; /* TIM2_CH4 */
517 bias-pull-down;
518 drive-push-pull;
519 slew-rate = <0>;
520 };
521 };
522
523 pwm8_pins_a: pwm8-0 {
524 pins {
525 pinmux = <STM32_PINMUX('I', 2, AF3)>; /* TIM8_CH4 */
526 bias-pull-down;
527 drive-push-pull;
528 slew-rate = <0>;
529 };
530 };
531
532 pwm12_pins_a: pwm12-0 {
533 pins {
534 pinmux = <STM32_PINMUX('H', 6, AF2)>; /* TIM12_CH1 */
535 bias-pull-down;
536 drive-push-pull;
537 slew-rate = <0>;
538 };
539 };
540
541 qspi_clk_pins_a: qspi-clk-0 {
542 pins {
543 pinmux = <STM32_PINMUX('F', 10, AF9)>; /* QSPI_CLK */
544 bias-disable;
545 drive-push-pull;
546 slew-rate = <3>;
547 };
548 };
549
550 qspi_bk1_pins_a: qspi-bk1-0 {
551 pins1 {
552 pinmux = <STM32_PINMUX('F', 8, AF10)>, /* QSPI_BK1_IO0 */
553 <STM32_PINMUX('F', 9, AF10)>, /* QSPI_BK1_IO1 */
554 <STM32_PINMUX('F', 7, AF9)>, /* QSPI_BK1_IO2 */
555 <STM32_PINMUX('F', 6, AF9)>; /* QSPI_BK1_IO3 */
556 bias-disable;
557 drive-push-pull;
558 slew-rate = <3>;
559 };
560 pins2 {
561 pinmux = <STM32_PINMUX('B', 6, AF10)>; /* QSPI_BK1_NCS */
562 bias-pull-up;
563 drive-push-pull;
564 slew-rate = <3>;
565 };
566 };
567
568 qspi_bk2_pins_a: qspi-bk2-0 {
569 pins1 {
570 pinmux = <STM32_PINMUX('H', 2, AF9)>, /* QSPI_BK2_IO0 */
571 <STM32_PINMUX('H', 3, AF9)>, /* QSPI_BK2_IO1 */
572 <STM32_PINMUX('G', 10, AF11)>, /* QSPI_BK2_IO2 */
573 <STM32_PINMUX('G', 7, AF11)>; /* QSPI_BK2_IO3 */
574 bias-disable;
575 drive-push-pull;
576 slew-rate = <3>;
577 };
578 pins2 {
579 pinmux = <STM32_PINMUX('C', 0, AF10)>; /* QSPI_BK2_NCS */
580 bias-pull-up;
581 drive-push-pull;
582 slew-rate = <3>;
583 };
584 };
Patrick Delaunaya3705302019-07-11 11:15:28 +0200585
586 sdmmc1_b4_pins_a: sdmmc1-b4-0 {
Patrick Delaunay50599142018-07-09 15:17:19 +0200587 pins {
588 pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
589 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
590 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
591 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
592 <STM32_PINMUX('C', 12, AF12)>, /* SDMMC1_CK */
593 <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
594 slew-rate = <3>;
595 drive-push-pull;
596 bias-disable;
597 };
Patrick Delaunaya3705302019-07-11 11:15:28 +0200598 };
599
600 sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
601 pins1 {
602 pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
603 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
604 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
605 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
606 <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
607 slew-rate = <3>;
608 drive-push-pull;
609 bias-disable;
610 };
611 pins2{
612 pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
613 slew-rate = <3>;
614 drive-open-drain;
615 bias-disable;
616 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200617 };
618
Patrick Delaunaya3705302019-07-11 11:15:28 +0200619 sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
Patrick Delaunay50599142018-07-09 15:17:19 +0200620 pins {
Patrick Delaunaya3705302019-07-11 11:15:28 +0200621 pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
622 <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
623 <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
624 <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
625 <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
626 <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
627 };
628 };
629
630 sdmmc1_dir_pins_a: sdmmc1-dir-0 {
631 pins1 {
Patrick Delaunay50599142018-07-09 15:17:19 +0200632 pinmux = <STM32_PINMUX('F', 2, AF11)>, /* SDMMC1_D0DIR */
633 <STM32_PINMUX('C', 7, AF8)>, /* SDMMC1_D123DIR */
Patrick Delaunaya3705302019-07-11 11:15:28 +0200634 <STM32_PINMUX('B', 9, AF11)>; /* SDMMC1_CDIR */
Patrick Delaunay50599142018-07-09 15:17:19 +0200635 slew-rate = <3>;
636 drive-push-pull;
637 bias-pull-up;
638 };
Patrick Delaunaya3705302019-07-11 11:15:28 +0200639 pins2{
640 pinmux = <STM32_PINMUX('E', 4, AF8)>; /* SDMMC1_CKIN */
641 bias-pull-up;
642 };
643 };
644
645 sdmmc1_dir_sleep_pins_a: sdmmc1-dir-sleep-0 {
646 pins {
647 pinmux = <STM32_PINMUX('F', 2, ANALOG)>, /* SDMMC1_D0DIR */
648 <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC1_D123DIR */
649 <STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC1_CDIR */
650 <STM32_PINMUX('E', 4, ANALOG)>; /* SDMMC1_CKIN */
651 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200652 };
Patrick Delaunaya3705302019-07-11 11:15:28 +0200653
654 sdmmc2_b4_pins_a: sdmmc2-b4-0 {
Patrick Delaunay50599142018-07-09 15:17:19 +0200655 pins {
656 pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
657 <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
658 <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
659 <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
660 <STM32_PINMUX('E', 3, AF9)>, /* SDMMC2_CK */
661 <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
662 slew-rate = <3>;
663 drive-push-pull;
664 bias-pull-up;
665 };
666 };
667
Patrick Delaunaya3705302019-07-11 11:15:28 +0200668 sdmmc2_d47_pins_a: sdmmc2-d47-0 {
Patrick Delaunay50599142018-07-09 15:17:19 +0200669 pins {
670 pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
671 <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
672 <STM32_PINMUX('E', 5, AF9)>, /* SDMMC2_D6 */
673 <STM32_PINMUX('D', 3, AF9)>; /* SDMMC2_D7 */
674 slew-rate = <3>;
675 drive-push-pull;
676 bias-pull-up;
677 };
678 };
679
Patrick Delaunaya3705302019-07-11 11:15:28 +0200680 spdifrx_pins_a: spdifrx-0 {
681 pins {
682 pinmux = <STM32_PINMUX('G', 12, AF8)>; /* SPDIF_IN1 */
683 bias-disable;
684 };
685 };
686
687 spdifrx_sleep_pins_a: spdifrx-1 {
688 pins {
689 pinmux = <STM32_PINMUX('G', 12, ANALOG)>; /* SPDIF_IN1 */
690 };
691 };
692
Manivannan Sadhasivamc70ef692019-05-02 13:26:43 +0530693 spi2_pins_a: spi2-0 {
694 pins1 {
695 pinmux = <STM32_PINMUX('B', 10, AF5)>, /* SPI2_SCK */
696 <STM32_PINMUX('I', 0, AF5)>, /* SPI2_NSS */
697 <STM32_PINMUX('I', 3, AF5)>; /* SPI2_MOSI */
698 bias-disable;
699 drive-push-pull;
700 slew-rate = <3>;
701 };
702 pins2 {
703 pinmux = <STM32_PINMUX('I', 2, AF5)>; /* SPI2_MISO */
704 bias-disable;
705 };
706 };
707
Patrick Delaunay7f3384d2019-03-29 15:42:24 +0100708 stusb1600_pins_a: stusb1600-0 {
709 pins {
710 pinmux = <STM32_PINMUX('I', 11, ANALOG)>;
711 bias-pull-up;
712 };
713 };
714
Patrick Delaunay50599142018-07-09 15:17:19 +0200715 uart4_pins_a: uart4-0 {
716 pins1 {
717 pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
718 bias-disable;
719 drive-push-pull;
720 slew-rate = <0>;
721 };
722 pins2 {
723 pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
724 bias-disable;
725 };
726 };
Patrice Chotard18cb6f52018-08-10 17:12:11 +0200727
Manivannan Sadhasivamc70ef692019-05-02 13:26:43 +0530728 uart4_pins_b: uart4-1 {
729 pins1 {
730 pinmux = <STM32_PINMUX('D', 1, AF8)>; /* UART4_TX */
731 bias-disable;
732 drive-push-pull;
733 slew-rate = <0>;
734 };
735 pins2 {
736 pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
737 bias-disable;
738 };
739 };
740
741 uart7_pins_a: uart7-0 {
742 pins1 {
743 pinmux = <STM32_PINMUX('E', 8, AF7)>; /* UART4_TX */
744 bias-disable;
745 drive-push-pull;
746 slew-rate = <0>;
747 };
748 pins2 {
749 pinmux = <STM32_PINMUX('E', 7, AF7)>, /* UART4_RX */
750 <STM32_PINMUX('E', 10, AF7)>, /* UART4_CTS */
751 <STM32_PINMUX('E', 9, AF7)>; /* UART4_RTS */
752 bias-disable;
753 };
754 };
755
Patrice Chotard18cb6f52018-08-10 17:12:11 +0200756 usbotg_hs_pins_a: usbotg_hs-0 {
757 pins {
758 pinmux = <STM32_PINMUX('A', 10, ANALOG)>; /* OTG_ID */
759 };
760 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200761 };
762
763 pinctrl_z: pin-controller-z@54004000 {
764 #address-cells = <1>;
765 #size-cells = <1>;
766 compatible = "st,stm32mp157-z-pinctrl";
767 ranges = <0 0x54004000 0x400>;
768 pins-are-numbered;
769 interrupt-parent = <&exti>;
770 st,syscfg = <&exti 0x60 0xff>;
Patrick Delaunaya3705302019-07-11 11:15:28 +0200771 hwlocks = <&hwspinlock 0>;
Patrick Delaunay50599142018-07-09 15:17:19 +0200772
773 gpioz: gpio@54004000 {
774 gpio-controller;
775 #gpio-cells = <2>;
776 interrupt-controller;
777 #interrupt-cells = <2>;
778 reg = <0 0x400>;
779 clocks = <&rcc GPIOZ>;
780 st,bank-name = "GPIOZ";
781 st,bank-ioport = <11>;
782 ngpios = <8>;
783 gpio-ranges = <&pinctrl_z 0 400 8>;
784 };
785
786 i2c4_pins_a: i2c4-0 {
787 pins {
788 pinmux = <STM32_PINMUX('Z', 4, AF6)>, /* I2C4_SCL */
789 <STM32_PINMUX('Z', 5, AF6)>; /* I2C4_SDA */
790 bias-disable;
791 drive-open-drain;
792 slew-rate = <0>;
793 };
794 };
Patrice Chotard00442d02019-02-12 16:50:38 +0100795
Patrick Delaunaya3705302019-07-11 11:15:28 +0200796 i2c4_pins_sleep_a: i2c4-1 {
797 pins {
798 pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C4_SCL */
799 <STM32_PINMUX('Z', 5, ANALOG)>; /* I2C4_SDA */
800 };
801 };
802
Patrice Chotard00442d02019-02-12 16:50:38 +0100803 spi1_pins_a: spi1-0 {
804 pins1 {
805 pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* SPI1_SCK */
806 <STM32_PINMUX('Z', 2, AF5)>; /* SPI1_MOSI */
807 bias-disable;
808 drive-push-pull;
809 slew-rate = <1>;
810 };
811
812 pins2 {
813 pinmux = <STM32_PINMUX('Z', 1, AF5)>; /* SPI1_MISO */
814 bias-disable;
815 };
816 };
Patrick Delaunay50599142018-07-09 15:17:19 +0200817 };
818 };
819};