xref: /linux/arch/arm64/boot/dts/st/stm32mp25-pinctrl.dtsi (revision 6e9a12f85a7567bb9a41d5230468886bd6a27b20)
1// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
2/*
3 * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
5 */
6#include <dt-bindings/pinctrl/stm32-pinfunc.h>
7
8&pinctrl {
9	eth2_rgmii_pins_a: eth2-rgmii-0 {
10		pins1 {
11			pinmux = <STM32_PINMUX('C', 7, AF10)>, /* ETH_RGMII_TXD0 */
12				 <STM32_PINMUX('C', 8, AF10)>, /* ETH_RGMII_TXD1 */
13				 <STM32_PINMUX('C', 9, AF10)>, /* ETH_RGMII_TXD2 */
14				 <STM32_PINMUX('C', 10, AF10)>, /* ETH_RGMII_TXD3 */
15				 <STM32_PINMUX('C', 4, AF10)>; /* ETH_RGMII_TX_CTL */
16			bias-disable;
17			drive-push-pull;
18			slew-rate = <3>;
19		};
20		pins2 {
21			pinmux = <STM32_PINMUX('F', 8, AF10)>, /* ETH_RGMII_CLK125 */
22				 <STM32_PINMUX('F', 7, AF10)>, /* ETH_RGMII_GTX_CLK */
23				 <STM32_PINMUX('C', 6, AF10)>; /* ETH_MDC */
24			bias-disable;
25			drive-push-pull;
26			slew-rate = <3>;
27		};
28		pins3 {
29			pinmux = <STM32_PINMUX('C', 5, AF10)>; /* ETH_MDIO */
30			bias-disable;
31			drive-push-pull;
32			slew-rate = <0>;
33		};
34		pins4 {
35			pinmux = <STM32_PINMUX('G', 0, AF10)>, /* ETH_RGMII_RXD0 */
36				 <STM32_PINMUX('C', 12, AF10)>, /* ETH_RGMII_RXD1 */
37				 <STM32_PINMUX('F', 9, AF10)>, /* ETH_RGMII_RXD2 */
38				 <STM32_PINMUX('C', 11, AF10)>, /* ETH_RGMII_RXD3 */
39				 <STM32_PINMUX('C', 3, AF10)>; /* ETH_RGMII_RX_CTL */
40			bias-disable;
41		};
42		pins5 {
43			pinmux = <STM32_PINMUX('F', 6, AF10)>; /* ETH_RGMII_RX_CLK */
44			bias-disable;
45		};
46	};
47
48	eth2_rgmii_sleep_pins_a: eth2-rgmii-sleep-0 {
49		pins {
50			pinmux = <STM32_PINMUX('C', 7, ANALOG)>, /* ETH_RGMII_TXD0 */
51				 <STM32_PINMUX('C', 8, ANALOG)>, /* ETH_RGMII_TXD1 */
52				 <STM32_PINMUX('C', 9, ANALOG)>, /* ETH_RGMII_TXD2 */
53				 <STM32_PINMUX('C', 10, ANALOG)>, /* ETH_RGMII_TXD3 */
54				 <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_TX_CTL */
55				 <STM32_PINMUX('F', 8, ANALOG)>, /* ETH_RGMII_CLK125 */
56				 <STM32_PINMUX('F', 7, ANALOG)>, /* ETH_RGMII_GTX_CLK */
57				 <STM32_PINMUX('C', 6, ANALOG)>, /* ETH_MDC */
58				 <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_MDIO */
59				 <STM32_PINMUX('G', 0, ANALOG)>, /* ETH_RGMII_RXD0 */
60				 <STM32_PINMUX('C', 12, ANALOG)>, /* ETH_RGMII_RXD1 */
61				 <STM32_PINMUX('F', 9, ANALOG)>, /* ETH_RGMII_RXD2 */
62				 <STM32_PINMUX('C', 11, ANALOG)>, /* ETH_RGMII_RXD3 */
63				 <STM32_PINMUX('C', 3, ANALOG)>, /* ETH_RGMII_RX_CTL */
64				 <STM32_PINMUX('F', 6, ANALOG)>; /* ETH_RGMII_RX_CLK */
65		};
66	};
67
68	i2c2_pins_a: i2c2-0 {
69		pins {
70			pinmux = <STM32_PINMUX('B', 5, AF9)>, /* I2C2_SCL */
71				 <STM32_PINMUX('B', 4, AF9)>; /* I2C2_SDA */
72			bias-disable;
73			drive-open-drain;
74			slew-rate = <0>;
75		};
76	};
77
78	i2c2_sleep_pins_a: i2c2-sleep-0 {
79		pins {
80			pinmux = <STM32_PINMUX('B', 5, ANALOG)>, /* I2C2_SCL */
81				 <STM32_PINMUX('B', 4, ANALOG)>; /* I2C2_SDA */
82		};
83	};
84
85	ospi_port1_clk_pins_a: ospi-port1-clk-0 {
86		pins {
87			pinmux = <STM32_PINMUX('D', 0, AF10)>; /* OSPI1_CLK */
88			bias-disable;
89			drive-push-pull;
90			slew-rate = <2>;
91		};
92	};
93
94	ospi_port1_clk_sleep_pins_a: ospi-port1-clk-sleep-0 {
95		pins {
96			pinmux = <STM32_PINMUX('D', 0, ANALOG)>; /* OSPI1_CLK */
97		};
98	};
99
100	ospi_port1_cs0_pins_a: ospi-port1-cs0-0 {
101		pins {
102			pinmux = <STM32_PINMUX('D', 3, AF10)>; /* OSPI_NCS0 */
103			bias-pull-up;
104			drive-push-pull;
105			slew-rate = <0>;
106		};
107	};
108
109	ospi_port1_cs0_sleep_pins_a: ospi-port1-cs0-sleep-0 {
110		pins {
111			pinmux = <STM32_PINMUX('D', 3, ANALOG)>; /* OSPI_NCS0 */
112		};
113	};
114
115	ospi_port1_io03_pins_a: ospi-port1-io03-0 {
116		pins {
117			pinmux = <STM32_PINMUX('D', 4, AF10)>, /* OSPI_IO0 */
118				 <STM32_PINMUX('D', 5, AF10)>, /* OSPI_IO1 */
119				 <STM32_PINMUX('D', 6, AF10)>, /* OSPI_IO2 */
120				 <STM32_PINMUX('D', 7, AF10)>; /* OSPI_IO3 */
121			bias-disable;
122			drive-push-pull;
123			slew-rate = <0>;
124		};
125	};
126
127	ospi_port1_io03_sleep_pins_a: ospi-port1-io03-sleep-0 {
128		pins {
129			pinmux = <STM32_PINMUX('D', 4, ANALOG)>, /* OSPI_IO0 */
130				 <STM32_PINMUX('D', 5, ANALOG)>, /* OSPI_IO1 */
131				 <STM32_PINMUX('D', 6, ANALOG)>, /* OSPI_IO2 */
132				 <STM32_PINMUX('D', 7, ANALOG)>; /* OSPI_IO3 */
133		};
134	};
135
136	pwm3_pins_a: pwm3-0 {
137		pins {
138			pinmux = <STM32_PINMUX('B', 15, AF7)>; /* TIM3_CH2 */
139			bias-pull-down;
140			drive-push-pull;
141			slew-rate = <0>;
142		};
143	};
144
145	pwm3_sleep_pins_a: pwm3-sleep-0 {
146		pins {
147			pinmux = <STM32_PINMUX('B', 15, ANALOG)>; /* TIM3_CH2 */
148		};
149	};
150
151	pwm8_pins_a: pwm8-0 {
152		pins {
153			pinmux = <STM32_PINMUX('J', 5, AF8)>, /* TIM8_CH1 */
154				 <STM32_PINMUX('J', 4, AF8)>; /* TIM8_CH4 */
155			bias-pull-down;
156			drive-push-pull;
157			slew-rate = <0>;
158		};
159	};
160
161	pwm8_sleep_pins_a: pwm8-sleep-0 {
162		pins {
163			pinmux = <STM32_PINMUX('J', 5, ANALOG)>, /* TIM8_CH1 */
164				 <STM32_PINMUX('J', 4, ANALOG)>; /* TIM8_CH4 */
165		};
166	};
167
168	pwm12_pins_a: pwm12-0 {
169		pins {
170			pinmux = <STM32_PINMUX('B', 11, AF9)>; /* TIM12_CH2 */
171			bias-pull-down;
172			drive-push-pull;
173			slew-rate = <0>;
174		};
175	};
176
177	pwm12_sleep_pins_a: pwm12-sleep-0 {
178		pins {
179			pinmux = <STM32_PINMUX('B', 11, ANALOG)>; /* TIM12_CH2 */
180		};
181	};
182
183	sdmmc1_b4_pins_a: sdmmc1-b4-0 {
184		pins1 {
185			pinmux = <STM32_PINMUX('E', 4, AF10)>, /* SDMMC1_D0 */
186				 <STM32_PINMUX('E', 5, AF10)>, /* SDMMC1_D1 */
187				 <STM32_PINMUX('E', 0, AF10)>, /* SDMMC1_D2 */
188				 <STM32_PINMUX('E', 1, AF10)>, /* SDMMC1_D3 */
189				 <STM32_PINMUX('E', 2, AF10)>; /* SDMMC1_CMD */
190			slew-rate = <2>;
191			drive-push-pull;
192			bias-disable;
193		};
194		pins2 {
195			pinmux = <STM32_PINMUX('E', 3, AF10)>; /* SDMMC1_CK */
196			slew-rate = <3>;
197			drive-push-pull;
198			bias-disable;
199		};
200	};
201
202	sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
203		pins1 {
204			pinmux = <STM32_PINMUX('E', 4, AF10)>, /* SDMMC1_D0 */
205				 <STM32_PINMUX('E', 5, AF10)>, /* SDMMC1_D1 */
206				 <STM32_PINMUX('E', 0, AF10)>, /* SDMMC1_D2 */
207				 <STM32_PINMUX('E', 1, AF10)>; /* SDMMC1_D3 */
208			slew-rate = <2>;
209			drive-push-pull;
210			bias-disable;
211		};
212		pins2 {
213			pinmux = <STM32_PINMUX('E', 3, AF10)>; /* SDMMC1_CK */
214			slew-rate = <3>;
215			drive-push-pull;
216			bias-disable;
217		};
218		pins3 {
219			pinmux = <STM32_PINMUX('E', 2, AF10)>; /* SDMMC1_CMD */
220			slew-rate = <2>;
221			drive-open-drain;
222			bias-disable;
223		};
224	};
225
226	sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
227		pins {
228			pinmux = <STM32_PINMUX('E', 4, ANALOG)>, /* SDMMC1_D0 */
229				 <STM32_PINMUX('E', 5, ANALOG)>, /* SDMMC1_D1 */
230				 <STM32_PINMUX('E', 0, ANALOG)>, /* SDMMC1_D2 */
231				 <STM32_PINMUX('E', 1, ANALOG)>, /* SDMMC1_D3 */
232				 <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC1_CK */
233				 <STM32_PINMUX('E', 2, ANALOG)>; /* SDMMC1_CMD */
234		};
235	};
236
237	spi3_pins_a: spi3-0 {
238		pins1 {
239			pinmux = <STM32_PINMUX('B', 7, AF1)>, /* SPI3_SCK */
240				 <STM32_PINMUX('B', 8, AF1)>; /* SPI3_MOSI */
241			drive-push-pull;
242			bias-disable;
243			slew-rate = <1>;
244		};
245		pins2 {
246			pinmux = <STM32_PINMUX('B', 10, AF1)>; /* SPI3_MISO */
247			bias-disable;
248		};
249	};
250
251	spi3_sleep_pins_a: spi3-sleep-0 {
252		pins1 {
253			pinmux = <STM32_PINMUX('B', 7, ANALOG)>, /* SPI3_SCK */
254				 <STM32_PINMUX('B', 8, ANALOG)>, /* SPI3_MOSI */
255				 <STM32_PINMUX('B', 10, ANALOG)>; /* SPI3_MISO */
256		};
257	};
258
259	tim10_counter_pins_a: tim10-counter-0 {
260		pins {
261			pinmux = <STM32_PINMUX('B', 9, AF9)>; /* TIM10_CH1 */
262			bias-disable;
263		};
264	};
265
266	tim10_counter_sleep_pins_a: tim10-counter-sleep-0 {
267		pins {
268			pinmux = <STM32_PINMUX('B', 9, ANALOG)>; /* TIM10_CH1 */
269			bias-disable;
270		};
271	};
272
273	usart2_pins_a: usart2-0 {
274		pins1 {
275			pinmux = <STM32_PINMUX('A', 4, AF6)>; /* USART2_TX */
276			bias-disable;
277			drive-push-pull;
278			slew-rate = <0>;
279		};
280		pins2 {
281			pinmux = <STM32_PINMUX('A', 8, AF8)>; /* USART2_RX */
282			bias-disable;
283		};
284	};
285
286	usart2_idle_pins_a: usart2-idle-0 {
287		pins1 {
288			pinmux = <STM32_PINMUX('A', 4, ANALOG)>; /* USART2_TX */
289		};
290		pins2 {
291			pinmux = <STM32_PINMUX('A', 8, AF8)>; /* USART2_RX */
292			bias-disable;
293		};
294	};
295
296	usart2_sleep_pins_a: usart2-sleep-0 {
297		pins {
298			pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* USART2_TX */
299				 <STM32_PINMUX('A', 8, ANALOG)>; /* USART2_RX */
300		};
301	};
302
303	usart6_pins_a: usart6-0 {
304		pins1 {
305			pinmux = <STM32_PINMUX('F', 13, AF3)>, /* USART6_TX */
306				 <STM32_PINMUX('G', 5, AF3)>;  /* USART6_RTS */
307			bias-disable;
308			drive-push-pull;
309			slew-rate = <0>;
310		};
311		pins2 {
312			pinmux = <STM32_PINMUX('F', 14, AF3)>, /* USART6_RX */
313				 <STM32_PINMUX('F', 15, AF3)>; /* USART6_CTS_NSS */
314			bias-pull-up;
315		};
316	};
317
318	usart6_idle_pins_a: usart6-idle-0 {
319		pins1 {
320			pinmux = <STM32_PINMUX('F', 13, ANALOG)>, /* USART6_TX */
321				 <STM32_PINMUX('F', 15, ANALOG)>; /* USART6_CTS_NSS */
322		};
323		pins2 {
324			pinmux = <STM32_PINMUX('G', 5, AF3)>; /* USART6_RTS */
325			bias-disable;
326			drive-push-pull;
327			slew-rate = <0>;
328		};
329		pins3 {
330			pinmux = <STM32_PINMUX('F', 14, AF3)>; /* USART6_RX */
331			bias-pull-up;
332		};
333	};
334
335	usart6_sleep_pins_a: usart6-sleep-0 {
336		pins {
337			pinmux = <STM32_PINMUX('F', 13, ANALOG)>, /* USART6_TX */
338				 <STM32_PINMUX('G', 5, ANALOG)>,  /* USART6_RTS */
339				 <STM32_PINMUX('F', 15, ANALOG)>, /* USART6_CTS_NSS */
340				 <STM32_PINMUX('F', 14, ANALOG)>; /* USART6_RX */
341		};
342	};
343};
344
345&pinctrl_z {
346	i2c8_pins_a: i2c8-0 {
347		pins {
348			pinmux = <STM32_PINMUX('Z', 4, AF8)>, /* I2C8_SCL */
349				 <STM32_PINMUX('Z', 3, AF8)>; /* I2C8_SDA */
350			bias-disable;
351			drive-open-drain;
352			slew-rate = <0>;
353		};
354	};
355
356	i2c8_sleep_pins_a: i2c8-sleep-0 {
357		pins {
358			pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C8_SCL */
359				 <STM32_PINMUX('Z', 3, ANALOG)>; /* I2C8_SDA */
360		};
361	};
362};
363
364&pinctrl_z {
365	spi8_pins_a: spi8-0 {
366		pins1 {
367			pinmux = <STM32_PINMUX('Z', 2, AF3)>, /* SPI8_SCK */
368				 <STM32_PINMUX('Z', 0, AF3)>; /* SPI8_MOSI */
369			drive-push-pull;
370			bias-disable;
371			slew-rate = <1>;
372		};
373		pins2 {
374			pinmux = <STM32_PINMUX('Z', 1, AF3)>; /* SPI8_MISO */
375			bias-disable;
376		};
377	};
378
379	spi8_sleep_pins_a: spi8-sleep-0 {
380		pins1 {
381			pinmux = <STM32_PINMUX('Z', 2, ANALOG)>, /* SPI8_SCK */
382				 <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI8_MOSI */
383				 <STM32_PINMUX('Z', 1, ANALOG)>; /* SPI8_MISO */
384		};
385	};
386};
387