xref: /freebsd-src/sys/contrib/device-tree/src/arm64/st/stm32mp25-pinctrl.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
4f126890aSEmmanuel Vadot * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5f126890aSEmmanuel Vadot */
6f126890aSEmmanuel Vadot#include <dt-bindings/pinctrl/stm32-pinfunc.h>
7f126890aSEmmanuel Vadot
8f126890aSEmmanuel Vadot&pinctrl {
9*0e8011faSEmmanuel Vadot	eth2_rgmii_pins_a: eth2-rgmii-0 {
10*0e8011faSEmmanuel Vadot		pins1 {
11*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('C', 7, AF10)>, /* ETH_RGMII_TXD0 */
12*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 8, AF10)>, /* ETH_RGMII_TXD1 */
13*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 9, AF10)>, /* ETH_RGMII_TXD2 */
14*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 10, AF10)>, /* ETH_RGMII_TXD3 */
15*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 4, AF10)>; /* ETH_RGMII_TX_CTL */
16*0e8011faSEmmanuel Vadot			bias-disable;
17*0e8011faSEmmanuel Vadot			drive-push-pull;
18*0e8011faSEmmanuel Vadot			slew-rate = <3>;
19*0e8011faSEmmanuel Vadot		};
20*0e8011faSEmmanuel Vadot		pins2 {
21*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('F', 8, AF10)>, /* ETH_RGMII_CLK125 */
22*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 7, AF10)>, /* ETH_RGMII_GTX_CLK */
23*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 6, AF10)>; /* ETH_MDC */
24*0e8011faSEmmanuel Vadot			bias-disable;
25*0e8011faSEmmanuel Vadot			drive-push-pull;
26*0e8011faSEmmanuel Vadot			slew-rate = <3>;
27*0e8011faSEmmanuel Vadot		};
28*0e8011faSEmmanuel Vadot		pins3 {
29*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('C', 5, AF10)>; /* ETH_MDIO */
30*0e8011faSEmmanuel Vadot			bias-disable;
31*0e8011faSEmmanuel Vadot			drive-push-pull;
32*0e8011faSEmmanuel Vadot			slew-rate = <0>;
33*0e8011faSEmmanuel Vadot		};
34*0e8011faSEmmanuel Vadot		pins4 {
35*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('G', 0, AF10)>, /* ETH_RGMII_RXD0 */
36*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 12, AF10)>, /* ETH_RGMII_RXD1 */
37*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 9, AF10)>, /* ETH_RGMII_RXD2 */
38*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 11, AF10)>, /* ETH_RGMII_RXD3 */
39*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 3, AF10)>; /* ETH_RGMII_RX_CTL */
40*0e8011faSEmmanuel Vadot			bias-disable;
41*0e8011faSEmmanuel Vadot		};
42*0e8011faSEmmanuel Vadot		pins5 {
43*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('F', 6, AF10)>; /* ETH_RGMII_RX_CLK */
44*0e8011faSEmmanuel Vadot			bias-disable;
45*0e8011faSEmmanuel Vadot		};
46*0e8011faSEmmanuel Vadot	};
47*0e8011faSEmmanuel Vadot
48*0e8011faSEmmanuel Vadot	eth2_rgmii_sleep_pins_a: eth2-rgmii-sleep-0 {
49*0e8011faSEmmanuel Vadot		pins {
50*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('C', 7, ANALOG)>, /* ETH_RGMII_TXD0 */
51*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 8, ANALOG)>, /* ETH_RGMII_TXD1 */
52*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 9, ANALOG)>, /* ETH_RGMII_TXD2 */
53*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 10, ANALOG)>, /* ETH_RGMII_TXD3 */
54*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_TX_CTL */
55*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 8, ANALOG)>, /* ETH_RGMII_CLK125 */
56*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 7, ANALOG)>, /* ETH_RGMII_GTX_CLK */
57*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 6, ANALOG)>, /* ETH_MDC */
58*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_MDIO */
59*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('G', 0, ANALOG)>, /* ETH_RGMII_RXD0 */
60*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 12, ANALOG)>, /* ETH_RGMII_RXD1 */
61*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 9, ANALOG)>, /* ETH_RGMII_RXD2 */
62*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 11, ANALOG)>, /* ETH_RGMII_RXD3 */
63*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('C', 3, ANALOG)>, /* ETH_RGMII_RX_CTL */
64*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 6, ANALOG)>; /* ETH_RGMII_RX_CLK */
65*0e8011faSEmmanuel Vadot		};
66*0e8011faSEmmanuel Vadot	};
67*0e8011faSEmmanuel Vadot
687d0873ebSEmmanuel Vadot	i2c2_pins_a: i2c2-0 {
697d0873ebSEmmanuel Vadot		pins {
707d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('B', 5, AF9)>, /* I2C2_SCL */
717d0873ebSEmmanuel Vadot				 <STM32_PINMUX('B', 4, AF9)>; /* I2C2_SDA */
727d0873ebSEmmanuel Vadot			bias-disable;
737d0873ebSEmmanuel Vadot			drive-open-drain;
747d0873ebSEmmanuel Vadot			slew-rate = <0>;
757d0873ebSEmmanuel Vadot		};
767d0873ebSEmmanuel Vadot	};
777d0873ebSEmmanuel Vadot
787d0873ebSEmmanuel Vadot	i2c2_sleep_pins_a: i2c2-sleep-0 {
797d0873ebSEmmanuel Vadot		pins {
807d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('B', 5, ANALOG)>, /* I2C2_SCL */
817d0873ebSEmmanuel Vadot				 <STM32_PINMUX('B', 4, ANALOG)>; /* I2C2_SDA */
827d0873ebSEmmanuel Vadot		};
837d0873ebSEmmanuel Vadot	};
847d0873ebSEmmanuel Vadot
8584943d6fSEmmanuel Vadot	sdmmc1_b4_pins_a: sdmmc1-b4-0 {
8684943d6fSEmmanuel Vadot		pins1 {
8784943d6fSEmmanuel Vadot			pinmux = <STM32_PINMUX('E', 4, AF10)>, /* SDMMC1_D0 */
8884943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 5, AF10)>, /* SDMMC1_D1 */
8984943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 0, AF10)>, /* SDMMC1_D2 */
9084943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 1, AF10)>, /* SDMMC1_D3 */
9184943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 2, AF10)>; /* SDMMC1_CMD */
9284943d6fSEmmanuel Vadot			slew-rate = <2>;
9384943d6fSEmmanuel Vadot			drive-push-pull;
9484943d6fSEmmanuel Vadot			bias-disable;
9584943d6fSEmmanuel Vadot		};
9684943d6fSEmmanuel Vadot		pins2 {
9784943d6fSEmmanuel Vadot			pinmux = <STM32_PINMUX('E', 3, AF10)>; /* SDMMC1_CK */
9884943d6fSEmmanuel Vadot			slew-rate = <3>;
9984943d6fSEmmanuel Vadot			drive-push-pull;
10084943d6fSEmmanuel Vadot			bias-disable;
10184943d6fSEmmanuel Vadot		};
10284943d6fSEmmanuel Vadot	};
10384943d6fSEmmanuel Vadot
10484943d6fSEmmanuel Vadot	sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
10584943d6fSEmmanuel Vadot		pins1 {
10684943d6fSEmmanuel Vadot			pinmux = <STM32_PINMUX('E', 4, AF10)>, /* SDMMC1_D0 */
10784943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 5, AF10)>, /* SDMMC1_D1 */
10884943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 0, AF10)>, /* SDMMC1_D2 */
10984943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 1, AF10)>; /* SDMMC1_D3 */
11084943d6fSEmmanuel Vadot			slew-rate = <2>;
11184943d6fSEmmanuel Vadot			drive-push-pull;
11284943d6fSEmmanuel Vadot			bias-disable;
11384943d6fSEmmanuel Vadot		};
11484943d6fSEmmanuel Vadot		pins2 {
11584943d6fSEmmanuel Vadot			pinmux = <STM32_PINMUX('E', 3, AF10)>; /* SDMMC1_CK */
11684943d6fSEmmanuel Vadot			slew-rate = <3>;
11784943d6fSEmmanuel Vadot			drive-push-pull;
11884943d6fSEmmanuel Vadot			bias-disable;
11984943d6fSEmmanuel Vadot		};
12084943d6fSEmmanuel Vadot		pins3 {
12184943d6fSEmmanuel Vadot			pinmux = <STM32_PINMUX('E', 2, AF10)>; /* SDMMC1_CMD */
12284943d6fSEmmanuel Vadot			slew-rate = <2>;
12384943d6fSEmmanuel Vadot			drive-open-drain;
12484943d6fSEmmanuel Vadot			bias-disable;
12584943d6fSEmmanuel Vadot		};
12684943d6fSEmmanuel Vadot	};
12784943d6fSEmmanuel Vadot
12884943d6fSEmmanuel Vadot	sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
12984943d6fSEmmanuel Vadot		pins {
13084943d6fSEmmanuel Vadot			pinmux = <STM32_PINMUX('E', 4, ANALOG)>, /* SDMMC1_D0 */
13184943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 5, ANALOG)>, /* SDMMC1_D1 */
13284943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 0, ANALOG)>, /* SDMMC1_D2 */
13384943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 1, ANALOG)>, /* SDMMC1_D3 */
13484943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC1_CK */
13584943d6fSEmmanuel Vadot				 <STM32_PINMUX('E', 2, ANALOG)>; /* SDMMC1_CMD */
13684943d6fSEmmanuel Vadot		};
13784943d6fSEmmanuel Vadot	};
13884943d6fSEmmanuel Vadot
1397d0873ebSEmmanuel Vadot	spi3_pins_a: spi3-0 {
1407d0873ebSEmmanuel Vadot		pins1 {
1417d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('B', 7, AF1)>, /* SPI3_SCK */
1427d0873ebSEmmanuel Vadot				 <STM32_PINMUX('B', 8, AF1)>; /* SPI3_MOSI */
1437d0873ebSEmmanuel Vadot			drive-push-pull;
1447d0873ebSEmmanuel Vadot			bias-disable;
1457d0873ebSEmmanuel Vadot			slew-rate = <1>;
1467d0873ebSEmmanuel Vadot		};
1477d0873ebSEmmanuel Vadot		pins2 {
1487d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('B', 10, AF1)>; /* SPI3_MISO */
1497d0873ebSEmmanuel Vadot			bias-disable;
1507d0873ebSEmmanuel Vadot		};
1517d0873ebSEmmanuel Vadot	};
1527d0873ebSEmmanuel Vadot
1537d0873ebSEmmanuel Vadot	spi3_sleep_pins_a: spi3-sleep-0 {
1547d0873ebSEmmanuel Vadot		pins1 {
1557d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('B', 7, ANALOG)>, /* SPI3_SCK */
1567d0873ebSEmmanuel Vadot				 <STM32_PINMUX('B', 8, ANALOG)>, /* SPI3_MOSI */
1577d0873ebSEmmanuel Vadot				 <STM32_PINMUX('B', 10, ANALOG)>; /* SPI3_MISO */
1587d0873ebSEmmanuel Vadot		};
1597d0873ebSEmmanuel Vadot	};
1607d0873ebSEmmanuel Vadot
161f126890aSEmmanuel Vadot	usart2_pins_a: usart2-0 {
162f126890aSEmmanuel Vadot		pins1 {
163f126890aSEmmanuel Vadot			pinmux = <STM32_PINMUX('A', 4, AF6)>; /* USART2_TX */
164f126890aSEmmanuel Vadot			bias-disable;
165f126890aSEmmanuel Vadot			drive-push-pull;
166f126890aSEmmanuel Vadot			slew-rate = <0>;
167f126890aSEmmanuel Vadot		};
168f126890aSEmmanuel Vadot		pins2 {
169f126890aSEmmanuel Vadot			pinmux = <STM32_PINMUX('A', 8, AF8)>; /* USART2_RX */
170f126890aSEmmanuel Vadot			bias-disable;
171f126890aSEmmanuel Vadot		};
172f126890aSEmmanuel Vadot	};
173f126890aSEmmanuel Vadot
174f126890aSEmmanuel Vadot	usart2_idle_pins_a: usart2-idle-0 {
175f126890aSEmmanuel Vadot		pins1 {
176f126890aSEmmanuel Vadot			pinmux = <STM32_PINMUX('A', 4, ANALOG)>; /* USART2_TX */
177f126890aSEmmanuel Vadot		};
178f126890aSEmmanuel Vadot		pins2 {
179f126890aSEmmanuel Vadot			pinmux = <STM32_PINMUX('A', 8, AF8)>; /* USART2_RX */
180f126890aSEmmanuel Vadot			bias-disable;
181f126890aSEmmanuel Vadot		};
182f126890aSEmmanuel Vadot	};
183f126890aSEmmanuel Vadot
184f126890aSEmmanuel Vadot	usart2_sleep_pins_a: usart2-sleep-0 {
185f126890aSEmmanuel Vadot		pins {
186f126890aSEmmanuel Vadot			pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* USART2_TX */
187f126890aSEmmanuel Vadot				 <STM32_PINMUX('A', 8, ANALOG)>; /* USART2_RX */
188f126890aSEmmanuel Vadot		};
189f126890aSEmmanuel Vadot	};
190*0e8011faSEmmanuel Vadot
191*0e8011faSEmmanuel Vadot	usart6_pins_a: usart6-0 {
192*0e8011faSEmmanuel Vadot		pins1 {
193*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('F', 13, AF3)>, /* USART6_TX */
194*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('G', 5, AF3)>;  /* USART6_RTS */
195*0e8011faSEmmanuel Vadot			bias-disable;
196*0e8011faSEmmanuel Vadot			drive-push-pull;
197*0e8011faSEmmanuel Vadot			slew-rate = <0>;
198*0e8011faSEmmanuel Vadot		};
199*0e8011faSEmmanuel Vadot		pins2 {
200*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('F', 14, AF3)>, /* USART6_RX */
201*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 15, AF3)>; /* USART6_CTS_NSS */
202*0e8011faSEmmanuel Vadot			bias-pull-up;
203*0e8011faSEmmanuel Vadot		};
204*0e8011faSEmmanuel Vadot	};
205*0e8011faSEmmanuel Vadot
206*0e8011faSEmmanuel Vadot	usart6_idle_pins_a: usart6-idle-0 {
207*0e8011faSEmmanuel Vadot		pins1 {
208*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('F', 13, ANALOG)>, /* USART6_TX */
209*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 15, ANALOG)>; /* USART6_CTS_NSS */
210*0e8011faSEmmanuel Vadot		};
211*0e8011faSEmmanuel Vadot		pins2 {
212*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('G', 5, AF3)>; /* USART6_RTS */
213*0e8011faSEmmanuel Vadot			bias-disable;
214*0e8011faSEmmanuel Vadot			drive-push-pull;
215*0e8011faSEmmanuel Vadot			slew-rate = <0>;
216*0e8011faSEmmanuel Vadot		};
217*0e8011faSEmmanuel Vadot		pins3 {
218*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('F', 14, AF3)>; /* USART6_RX */
219*0e8011faSEmmanuel Vadot			bias-pull-up;
220*0e8011faSEmmanuel Vadot		};
221*0e8011faSEmmanuel Vadot	};
222*0e8011faSEmmanuel Vadot
223*0e8011faSEmmanuel Vadot	usart6_sleep_pins_a: usart6-sleep-0 {
224*0e8011faSEmmanuel Vadot		pins {
225*0e8011faSEmmanuel Vadot			pinmux = <STM32_PINMUX('F', 13, ANALOG)>, /* USART6_TX */
226*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('G', 5, ANALOG)>,  /* USART6_RTS */
227*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 15, ANALOG)>, /* USART6_CTS_NSS */
228*0e8011faSEmmanuel Vadot				 <STM32_PINMUX('F', 14, ANALOG)>; /* USART6_RX */
229*0e8011faSEmmanuel Vadot		};
230*0e8011faSEmmanuel Vadot	};
231f126890aSEmmanuel Vadot};
2327d0873ebSEmmanuel Vadot
2337d0873ebSEmmanuel Vadot&pinctrl_z {
2347d0873ebSEmmanuel Vadot	i2c8_pins_a: i2c8-0 {
2357d0873ebSEmmanuel Vadot		pins {
2367d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('Z', 4, AF8)>, /* I2C8_SCL */
2377d0873ebSEmmanuel Vadot				 <STM32_PINMUX('Z', 3, AF8)>; /* I2C8_SDA */
2387d0873ebSEmmanuel Vadot			bias-disable;
2397d0873ebSEmmanuel Vadot			drive-open-drain;
2407d0873ebSEmmanuel Vadot			slew-rate = <0>;
2417d0873ebSEmmanuel Vadot		};
2427d0873ebSEmmanuel Vadot	};
2437d0873ebSEmmanuel Vadot
2447d0873ebSEmmanuel Vadot	i2c8_sleep_pins_a: i2c8-sleep-0 {
2457d0873ebSEmmanuel Vadot		pins {
2467d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C8_SCL */
2477d0873ebSEmmanuel Vadot				 <STM32_PINMUX('Z', 3, ANALOG)>; /* I2C8_SDA */
2487d0873ebSEmmanuel Vadot		};
2497d0873ebSEmmanuel Vadot	};
2507d0873ebSEmmanuel Vadot};
2517d0873ebSEmmanuel Vadot
2527d0873ebSEmmanuel Vadot&pinctrl_z {
2537d0873ebSEmmanuel Vadot	spi8_pins_a: spi8-0 {
2547d0873ebSEmmanuel Vadot		pins1 {
2557d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('Z', 2, AF3)>, /* SPI8_SCK */
2567d0873ebSEmmanuel Vadot				 <STM32_PINMUX('Z', 0, AF3)>; /* SPI8_MOSI */
2577d0873ebSEmmanuel Vadot			drive-push-pull;
2587d0873ebSEmmanuel Vadot			bias-disable;
2597d0873ebSEmmanuel Vadot			slew-rate = <1>;
2607d0873ebSEmmanuel Vadot		};
2617d0873ebSEmmanuel Vadot		pins2 {
2627d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('Z', 1, AF3)>; /* SPI8_MISO */
2637d0873ebSEmmanuel Vadot			bias-disable;
2647d0873ebSEmmanuel Vadot		};
2657d0873ebSEmmanuel Vadot	};
2667d0873ebSEmmanuel Vadot
2677d0873ebSEmmanuel Vadot	spi8_sleep_pins_a: spi8-sleep-0 {
2687d0873ebSEmmanuel Vadot		pins1 {
2697d0873ebSEmmanuel Vadot			pinmux = <STM32_PINMUX('Z', 2, ANALOG)>, /* SPI8_SCK */
2707d0873ebSEmmanuel Vadot				 <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI8_MOSI */
2717d0873ebSEmmanuel Vadot				 <STM32_PINMUX('Z', 1, ANALOG)>; /* SPI8_MISO */
2727d0873ebSEmmanuel Vadot		};
2737d0873ebSEmmanuel Vadot	};
2747d0873ebSEmmanuel Vadot};
275