blob: c4851271e8105ebe4f92196cd808d64ccea626d9 [file] [log] [blame]
Ludovic Barre8471a202018-02-26 16:35:40 +01001// 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 {
Alexandre Torgue20ab2d82018-05-02 09:40:26 +020010 pinctrl: pin-controller@50002000 {
Ludovic Barre8471a202018-02-26 16:35:40 +010011 #address-cells = <1>;
12 #size-cells = <1>;
13 compatible = "st,stm32mp157-pinctrl";
14 ranges = <0 0x50002000 0xa400>;
Ludovic Barre6a88c222018-04-26 18:18:34 +020015 interrupt-parent = <&exti>;
16 st,syscfg = <&exti 0x60 0xff>;
Ludovic Barre8471a202018-02-26 16:35:40 +010017 pins-are-numbered;
18
19 gpioa: gpio@50002000 {
20 gpio-controller;
21 #gpio-cells = <2>;
22 interrupt-controller;
23 #interrupt-cells = <2>;
24 reg = <0x0 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +010025 clocks = <&rcc GPIOA>;
Ludovic Barre8471a202018-02-26 16:35:40 +010026 st,bank-name = "GPIOA";
27 ngpios = <16>;
28 gpio-ranges = <&pinctrl 0 0 16>;
29 };
30
31 gpiob: gpio@50003000 {
32 gpio-controller;
33 #gpio-cells = <2>;
34 interrupt-controller;
35 #interrupt-cells = <2>;
36 reg = <0x1000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +010037 clocks = <&rcc GPIOB>;
Ludovic Barre8471a202018-02-26 16:35:40 +010038 st,bank-name = "GPIOB";
39 ngpios = <16>;
40 gpio-ranges = <&pinctrl 0 16 16>;
41 };
42
43 gpioc: gpio@50004000 {
44 gpio-controller;
45 #gpio-cells = <2>;
46 interrupt-controller;
47 #interrupt-cells = <2>;
48 reg = <0x2000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +010049 clocks = <&rcc GPIOC>;
Ludovic Barre8471a202018-02-26 16:35:40 +010050 st,bank-name = "GPIOC";
51 ngpios = <16>;
52 gpio-ranges = <&pinctrl 0 32 16>;
53 };
54
55 gpiod: gpio@50005000 {
56 gpio-controller;
57 #gpio-cells = <2>;
58 interrupt-controller;
59 #interrupt-cells = <2>;
60 reg = <0x3000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +010061 clocks = <&rcc GPIOD>;
Ludovic Barre8471a202018-02-26 16:35:40 +010062 st,bank-name = "GPIOD";
63 ngpios = <16>;
64 gpio-ranges = <&pinctrl 0 48 16>;
65 };
66
67 gpioe: gpio@50006000 {
68 gpio-controller;
69 #gpio-cells = <2>;
70 interrupt-controller;
71 #interrupt-cells = <2>;
72 reg = <0x4000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +010073 clocks = <&rcc GPIOE>;
Ludovic Barre8471a202018-02-26 16:35:40 +010074 st,bank-name = "GPIOE";
75 ngpios = <16>;
76 gpio-ranges = <&pinctrl 0 64 16>;
77 };
78
79 gpiof: gpio@50007000 {
80 gpio-controller;
81 #gpio-cells = <2>;
82 interrupt-controller;
83 #interrupt-cells = <2>;
84 reg = <0x5000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +010085 clocks = <&rcc GPIOF>;
Ludovic Barre8471a202018-02-26 16:35:40 +010086 st,bank-name = "GPIOF";
87 ngpios = <16>;
88 gpio-ranges = <&pinctrl 0 80 16>;
89 };
90
91 gpiog: gpio@50008000 {
92 gpio-controller;
93 #gpio-cells = <2>;
94 interrupt-controller;
95 #interrupt-cells = <2>;
96 reg = <0x6000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +010097 clocks = <&rcc GPIOG>;
Ludovic Barre8471a202018-02-26 16:35:40 +010098 st,bank-name = "GPIOG";
99 ngpios = <16>;
100 gpio-ranges = <&pinctrl 0 96 16>;
101 };
102
103 gpioh: gpio@50009000 {
104 gpio-controller;
105 #gpio-cells = <2>;
106 interrupt-controller;
107 #interrupt-cells = <2>;
108 reg = <0x7000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100109 clocks = <&rcc GPIOH>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100110 st,bank-name = "GPIOH";
111 ngpios = <16>;
112 gpio-ranges = <&pinctrl 0 112 16>;
113 };
114
115 gpioi: gpio@5000a000 {
116 gpio-controller;
117 #gpio-cells = <2>;
118 interrupt-controller;
119 #interrupt-cells = <2>;
120 reg = <0x8000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100121 clocks = <&rcc GPIOI>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100122 st,bank-name = "GPIOI";
123 ngpios = <16>;
124 gpio-ranges = <&pinctrl 0 128 16>;
125 };
126
127 gpioj: gpio@5000b000 {
128 gpio-controller;
129 #gpio-cells = <2>;
130 interrupt-controller;
131 #interrupt-cells = <2>;
132 reg = <0x9000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100133 clocks = <&rcc GPIOJ>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100134 st,bank-name = "GPIOJ";
135 ngpios = <16>;
136 gpio-ranges = <&pinctrl 0 144 16>;
137 };
138
139 gpiok: gpio@5000c000 {
140 gpio-controller;
141 #gpio-cells = <2>;
142 interrupt-controller;
143 #interrupt-cells = <2>;
144 reg = <0xa000 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100145 clocks = <&rcc GPIOK>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100146 st,bank-name = "GPIOK";
147 ngpios = <8>;
148 gpio-ranges = <&pinctrl 0 160 8>;
149 };
Ludovic Barrebcc4f4e2018-02-26 16:49:18 +0100150
yannick fertre7123be32018-04-24 09:54:00 +0200151 cec_pins_a: cec-0 {
152 pins {
153 pinmux = <STM32_PINMUX('A', 15, AF4)>;
154 bias-disable;
155 drive-open-drain;
156 slew-rate = <0>;
157 };
158 };
159
Christophe Roulliera7419ff2018-06-26 15:12:23 +0200160 ethernet0_rgmii_pins_a: rgmii-0 {
161 pins1 {
162 pinmux = <STM32_PINMUX('G', 5, AF11)>, /* ETH_RGMII_CLK125 */
163 <STM32_PINMUX('G', 4, AF11)>, /* ETH_RGMII_GTX_CLK */
164 <STM32_PINMUX('G', 13, AF11)>, /* ETH_RGMII_TXD0 */
165 <STM32_PINMUX('G', 14, AF11)>, /* ETH_RGMII_TXD1 */
166 <STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
167 <STM32_PINMUX('E', 2, AF11)>, /* ETH_RGMII_TXD3 */
168 <STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */
169 <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
170 <STM32_PINMUX('C', 1, AF11)>; /* ETH_MDC */
171 bias-disable;
172 drive-push-pull;
173 slew-rate = <3>;
174 };
175 pins2 {
176 pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */
177 <STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */
178 <STM32_PINMUX('B', 0, AF11)>, /* ETH_RGMII_RXD2 */
179 <STM32_PINMUX('B', 1, AF11)>, /* ETH_RGMII_RXD3 */
180 <STM32_PINMUX('A', 1, AF11)>, /* ETH_RGMII_RX_CLK */
181 <STM32_PINMUX('A', 7, AF11)>; /* ETH_RGMII_RX_CTL */
182 bias-disable;
183 };
184 };
185
186 ethernet0_rgmii_pins_sleep_a: rgmii-sleep-0 {
187 pins1 {
188 pinmux = <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_RGMII_CLK125 */
189 <STM32_PINMUX('G', 4, ANALOG)>, /* ETH_RGMII_GTX_CLK */
190 <STM32_PINMUX('G', 13, ANALOG)>, /* ETH_RGMII_TXD0 */
191 <STM32_PINMUX('G', 14, ANALOG)>, /* ETH_RGMII_TXD1 */
192 <STM32_PINMUX('C', 2, ANALOG)>, /* ETH_RGMII_TXD2 */
193 <STM32_PINMUX('E', 2, ANALOG)>, /* ETH_RGMII_TXD3 */
194 <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RGMII_TX_CTL */
195 <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
196 <STM32_PINMUX('C', 1, ANALOG)>, /* ETH_MDC */
197 <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_RXD0 */
198 <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RGMII_RXD1 */
199 <STM32_PINMUX('B', 0, ANALOG)>, /* ETH_RGMII_RXD2 */
200 <STM32_PINMUX('B', 1, ANALOG)>, /* ETH_RGMII_RXD3 */
201 <STM32_PINMUX('A', 1, ANALOG)>, /* ETH_RGMII_RX_CLK */
202 <STM32_PINMUX('A', 7, ANALOG)>; /* ETH_RGMII_RX_CTL */
203 };
204 };
205
Pierre-Yves MORDRET4d58a472018-04-23 11:48:00 +0200206 i2c1_pins_a: i2c1-0 {
207 pins {
208 pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
209 <STM32_PINMUX('F', 15, AF5)>; /* I2C1_SDA */
210 bias-disable;
211 drive-open-drain;
212 slew-rate = <0>;
213 };
214 };
215
216 i2c2_pins_a: i2c2-0 {
217 pins {
218 pinmux = <STM32_PINMUX('H', 4, AF4)>, /* I2C2_SCL */
219 <STM32_PINMUX('H', 5, AF4)>; /* I2C2_SDA */
220 bias-disable;
221 drive-open-drain;
222 slew-rate = <0>;
223 };
224 };
225
226 i2c5_pins_a: i2c5-0 {
227 pins {
228 pinmux = <STM32_PINMUX('A', 11, AF4)>, /* I2C5_SCL */
229 <STM32_PINMUX('A', 12, AF4)>; /* I2C5_SDA */
230 bias-disable;
231 drive-open-drain;
232 slew-rate = <0>;
233 };
234 };
235
Erwan Le Ray41cc73c2018-06-25 15:44:24 +0200236 m_can1_pins_a: m-can1-0 {
237 pins1 {
238 pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
239 slew-rate = <1>;
240 drive-push-pull;
241 bias-disable;
242 };
243 pins2 {
244 pinmux = <STM32_PINMUX('I', 9, AF9)>; /* CAN1_RX */
245 bias-disable;
246 };
247 };
248
Fabrice Gasnier52545822018-05-02 09:54:41 +0200249 pwm2_pins_a: pwm2-0 {
250 pins {
251 pinmux = <STM32_PINMUX('A', 3, AF1)>; /* TIM2_CH4 */
252 bias-pull-down;
253 drive-push-pull;
254 slew-rate = <0>;
255 };
256 };
257
258 pwm8_pins_a: pwm8-0 {
259 pins {
260 pinmux = <STM32_PINMUX('I', 2, AF3)>; /* TIM8_CH4 */
261 bias-pull-down;
262 drive-push-pull;
263 slew-rate = <0>;
264 };
265 };
266
267 pwm12_pins_a: pwm12-0 {
268 pins {
269 pinmux = <STM32_PINMUX('H', 6, AF2)>; /* TIM12_CH1 */
270 bias-pull-down;
271 drive-push-pull;
272 slew-rate = <0>;
273 };
274 };
275
Ludovic Barre84403002018-04-30 09:11:00 +0200276 qspi_clk_pins_a: qspi-clk-0 {
277 pins {
278 pinmux = <STM32_PINMUX('F', 10, AF9)>; /* QSPI_CLK */
279 bias-disable;
280 drive-push-pull;
281 slew-rate = <3>;
282 };
283 };
284
285 qspi_bk1_pins_a: qspi-bk1-0 {
286 pins1 {
287 pinmux = <STM32_PINMUX('F', 8, AF10)>, /* QSPI_BK1_IO0 */
288 <STM32_PINMUX('F', 9, AF10)>, /* QSPI_BK1_IO1 */
289 <STM32_PINMUX('F', 7, AF9)>, /* QSPI_BK1_IO2 */
290 <STM32_PINMUX('F', 6, AF9)>; /* QSPI_BK1_IO3 */
291 bias-disable;
292 drive-push-pull;
293 slew-rate = <3>;
294 };
295 pins2 {
296 pinmux = <STM32_PINMUX('B', 6, AF10)>; /* QSPI_BK1_NCS */
297 bias-pull-up;
298 drive-push-pull;
299 slew-rate = <3>;
300 };
301 };
302
303 qspi_bk2_pins_a: qspi-bk2-0 {
304 pins1 {
305 pinmux = <STM32_PINMUX('H', 2, AF9)>, /* QSPI_BK2_IO0 */
306 <STM32_PINMUX('H', 3, AF9)>, /* QSPI_BK2_IO1 */
307 <STM32_PINMUX('G', 10, AF11)>, /* QSPI_BK2_IO2 */
308 <STM32_PINMUX('G', 7, AF11)>; /* QSPI_BK2_IO3 */
309 bias-disable;
310 drive-push-pull;
311 slew-rate = <3>;
312 };
313 pins2 {
314 pinmux = <STM32_PINMUX('C', 0, AF10)>; /* QSPI_BK2_NCS */
315 bias-pull-up;
316 drive-push-pull;
317 slew-rate = <3>;
318 };
319 };
320
Alexandre Torgue20ab2d82018-05-02 09:40:26 +0200321 uart4_pins_a: uart4-0 {
Ludovic Barrebcc4f4e2018-02-26 16:49:18 +0100322 pins1 {
323 pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
324 bias-disable;
325 drive-push-pull;
326 slew-rate = <0>;
327 };
328 pins2 {
329 pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
330 bias-disable;
331 };
332 };
Ludovic Barre8471a202018-02-26 16:35:40 +0100333 };
334
Alexandre Torgue20ab2d82018-05-02 09:40:26 +0200335 pinctrl_z: pin-controller-z@54004000 {
Ludovic Barre8471a202018-02-26 16:35:40 +0100336 #address-cells = <1>;
337 #size-cells = <1>;
338 compatible = "st,stm32mp157-z-pinctrl";
339 ranges = <0 0x54004000 0x400>;
340 pins-are-numbered;
Ludovic Barre6a88c222018-04-26 18:18:34 +0200341 interrupt-parent = <&exti>;
342 st,syscfg = <&exti 0x60 0xff>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100343
344 gpioz: gpio@54004000 {
345 gpio-controller;
346 #gpio-cells = <2>;
347 interrupt-controller;
348 #interrupt-cells = <2>;
349 reg = <0 0x400>;
Gabriel Fernandez3599a8a2018-03-15 08:18:00 +0100350 clocks = <&rcc GPIOZ>;
Ludovic Barre8471a202018-02-26 16:35:40 +0100351 st,bank-name = "GPIOZ";
352 st,bank-ioport = <11>;
353 ngpios = <8>;
354 gpio-ranges = <&pinctrl_z 0 400 8>;
355 };
Pierre-Yves MORDRET4d58a472018-04-23 11:48:00 +0200356
357 i2c4_pins_a: i2c4-0 {
358 pins {
359 pinmux = <STM32_PINMUX('Z', 4, AF6)>, /* I2C4_SCL */
360 <STM32_PINMUX('Z', 5, AF6)>; /* I2C4_SDA */
361 bias-disable;
362 drive-open-drain;
363 slew-rate = <0>;
364 };
365 };
Amelie Delaunay7e29ed42018-05-17 16:21:00 +0200366
367 spi1_pins_a: spi1-0 {
368 pins1 {
369 pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* SPI1_SCK */
370 <STM32_PINMUX('Z', 2, AF5)>; /* SPI1_MOSI */
371 bias-disable;
372 drive-push-pull;
373 slew-rate = <1>;
374 };
375
376 pins2 {
377 pinmux = <STM32_PINMUX('Z', 1, AF5)>; /* SPI1_MISO */
378 bias-disable;
379 };
380 };
Ludovic Barre8471a202018-02-26 16:35:40 +0100381 };
382 };
383};