1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2014 STMicroelectronics Limited.
4 * Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
5 */
6#include "st-pincfg.h"
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8/ {
9
10	aliases {
11		/* 0-5: PIO_SBC */
12		gpio0 = &pio0;
13		gpio1 = &pio1;
14		gpio2 = &pio2;
15		gpio3 = &pio3;
16		gpio4 = &pio4;
17		gpio5 = &pio5;
18		/* 10-19: PIO_FRONT0 */
19		gpio6 = &pio10;
20		gpio7 = &pio11;
21		gpio8 = &pio12;
22		gpio9 = &pio13;
23		gpio10 = &pio14;
24		gpio11 = &pio15;
25		gpio12 = &pio16;
26		gpio13 = &pio17;
27		gpio14 = &pio18;
28		gpio15 = &pio19;
29		/* 20: PIO_FRONT1 */
30		gpio16 = &pio20;
31		/* 30-35: PIO_REAR */
32		gpio17 = &pio30;
33		gpio18 = &pio31;
34		gpio19 = &pio32;
35		gpio20 = &pio33;
36		gpio21 = &pio34;
37		gpio22 = &pio35;
38		/* 40-42: PIO_FLASH */
39		gpio23 = &pio40;
40		gpio24 = &pio41;
41		gpio25 = &pio42;
42	};
43
44	soc {
45		pin-controller-sbc@961f080 {
46			#address-cells = <1>;
47			#size-cells = <1>;
48			compatible = "st,stih407-sbc-pinctrl";
49			st,syscfg = <&syscfg_sbc>;
50			reg = <0x0961f080 0x4>;
51			reg-names = "irqmux";
52			interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
53			interrupt-names = "irqmux";
54			ranges = <0 0x09610000 0x6000>;
55
56			pio0: gpio@9610000 {
57				gpio-controller;
58				#gpio-cells = <2>;
59				interrupt-controller;
60				#interrupt-cells = <2>;
61				reg = <0x0 0x100>;
62				st,bank-name = "PIO0";
63			};
64			pio1: gpio@9611000 {
65				gpio-controller;
66				#gpio-cells = <2>;
67				interrupt-controller;
68				#interrupt-cells = <2>;
69				reg = <0x1000 0x100>;
70				st,bank-name = "PIO1";
71			};
72			pio2: gpio@9612000 {
73				gpio-controller;
74				#gpio-cells = <2>;
75				interrupt-controller;
76				#interrupt-cells = <2>;
77				reg = <0x2000 0x100>;
78				st,bank-name = "PIO2";
79			};
80			pio3: gpio@9613000 {
81				gpio-controller;
82				#gpio-cells = <2>;
83				interrupt-controller;
84				#interrupt-cells = <2>;
85				reg = <0x3000 0x100>;
86				st,bank-name = "PIO3";
87			};
88			pio4: gpio@9614000 {
89				gpio-controller;
90				#gpio-cells = <2>;
91				interrupt-controller;
92				#interrupt-cells = <2>;
93				reg = <0x4000 0x100>;
94				st,bank-name = "PIO4";
95			};
96
97			pio5: gpio@9615000 {
98				gpio-controller;
99				#gpio-cells = <2>;
100				interrupt-controller;
101				#interrupt-cells = <2>;
102				reg = <0x5000 0x100>;
103				st,bank-name = "PIO5";
104				st,retime-pin-mask = <0x3f>;
105			};
106
107			cec0 {
108				pinctrl_cec0_default: cec0-default {
109					st,pins {
110						hdmi_cec = <&pio2 4 ALT1 BIDIR>;
111					};
112				};
113			};
114
115			rc {
116				pinctrl_ir: ir0 {
117					st,pins {
118						ir = <&pio4 0 ALT2 IN>;
119					};
120				};
121
122				pinctrl_uhf: uhf0 {
123					st,pins {
124						ir = <&pio4 1 ALT2 IN>;
125					};
126				};
127
128				pinctrl_tx: tx0 {
129					st,pins {
130						tx = <&pio4 2 ALT2 OUT>;
131					};
132				};
133
134				pinctrl_tx_od: tx_od0 {
135					st,pins {
136						tx_od = <&pio4 3 ALT2 OUT>;
137					};
138				};
139			};
140
141			/* SBC_ASC0 - UART10 */
142			sbc_serial0 {
143				pinctrl_sbc_serial0: sbc_serial0-0 {
144					st,pins {
145						tx = <&pio3 4 ALT1 OUT>;
146						rx = <&pio3 5 ALT1 IN>;
147					};
148				};
149			};
150			/* SBC_ASC1 - UART11 */
151			sbc_serial1 {
152				pinctrl_sbc_serial1: sbc_serial1-0 {
153					st,pins {
154						tx = <&pio2 6 ALT3 OUT>;
155						rx = <&pio2 7 ALT3 IN>;
156					};
157				};
158			};
159
160			i2c10 {
161				pinctrl_i2c10_default: i2c10-default {
162					st,pins {
163						sda = <&pio4 6 ALT1 BIDIR>;
164						scl = <&pio4 5 ALT1 BIDIR>;
165					};
166				};
167			};
168
169			i2c11 {
170				pinctrl_i2c11_default: i2c11-default {
171					st,pins {
172						sda = <&pio5 1 ALT1 BIDIR>;
173						scl = <&pio5 0 ALT1 BIDIR>;
174					};
175				};
176			};
177
178			keyscan {
179				pinctrl_keyscan: keyscan {
180					st,pins {
181						keyin0 = <&pio4 0 ALT6 IN>;
182						keyin1 = <&pio4 5 ALT4 IN>;
183						keyin2 = <&pio0 4 ALT2 IN>;
184						keyin3 = <&pio2 6 ALT2 IN>;
185
186						keyout0 = <&pio4 6 ALT4 OUT>;
187						keyout1 = <&pio1 7 ALT2 OUT>;
188						keyout2 = <&pio0 6 ALT2 OUT>;
189						keyout3 = <&pio2 7 ALT2 OUT>;
190					};
191				};
192			};
193
194			gmac1 {
195				/*
196				 * Almost all the boards based on STiH407 SoC have an embedded
197				 * switch where the mdio/mdc have been used for managing the SMI
198				 * iface via I2C. For this reason these lines can be allocated
199				 * by using dedicated configuration (in case of there will be a
200				 * standard PHY transceiver on-board).
201				 */
202				pinctrl_rgmii1: rgmii1-0 {
203					st,pins {
204
205						txd0 = <&pio0 0 ALT1 OUT DE_IO 0 CLK_A>;
206						txd1 = <&pio0 1 ALT1 OUT DE_IO 0 CLK_A>;
207						txd2 = <&pio0 2 ALT1 OUT DE_IO 0 CLK_A>;
208						txd3 = <&pio0 3 ALT1 OUT DE_IO 0 CLK_A>;
209						txen = <&pio0 5 ALT1 OUT DE_IO 0 CLK_A>;
210						txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
211						rxd0 = <&pio1 4 ALT1 IN DE_IO 0 CLK_A>;
212						rxd1 = <&pio1 5 ALT1 IN DE_IO 0 CLK_A>;
213						rxd2 = <&pio1 6 ALT1 IN DE_IO 0 CLK_A>;
214						rxd3 = <&pio1 7 ALT1 IN DE_IO 0 CLK_A>;
215						rxdv = <&pio2 0 ALT1 IN DE_IO 0 CLK_A>;
216						rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
217						clk125 = <&pio3 7 ALT4 IN NICLK 0 CLK_A>;
218						phyclk = <&pio2 3 ALT4 OUT NICLK 1250 CLK_B>;
219					};
220				};
221
222				pinctrl_rgmii1_mdio: rgmii1-mdio {
223					st,pins {
224						mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
225						mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
226						mdint = <&pio1 3 ALT1 IN BYPASS 0>;
227					};
228				};
229
230				pinctrl_rgmii1_mdio_1: rgmii1-mdio-1 {
231					st,pins {
232						mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
233						mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
234					};
235				};
236
237				pinctrl_mii1: mii1 {
238					st,pins {
239						txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
240						txd1 = <&pio0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
241						txd2 = <&pio0 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
242						txd3 = <&pio0 3 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
243						txer = <&pio0 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
244						txen = <&pio0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
245						txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
246						col = <&pio0 7 ALT1 IN BYPASS 1000>;
247
248						mdio = <&pio1 0 ALT1 OUT BYPASS 1500>;
249						mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
250						crs = <&pio1 2 ALT1 IN BYPASS 1000>;
251						mdint = <&pio1 3 ALT1 IN BYPASS 0>;
252						rxd0 = <&pio1 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
253						rxd1 = <&pio1 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
254						rxd2 = <&pio1 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
255						rxd3 = <&pio1 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
256
257						rxdv = <&pio2 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
258						rx_er = <&pio2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
259						rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
260						phyclk = <&pio2 3 ALT1 OUT NICLK 0 CLK_A>;
261					};
262				};
263
264				pinctrl_rmii1: rmii1-0 {
265					st,pins {
266						txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
267						txd1 = <&pio0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
268						txen = <&pio0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
269						mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
270						mdc = <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
271						mdint = <&pio1 3 ALT1 IN BYPASS 0>;
272						rxd0 = <&pio1 4 ALT1 IN SE_NICLK_IO 0 CLK_B>;
273						rxd1 = <&pio1 5 ALT1 IN SE_NICLK_IO 0 CLK_B>;
274						rxdv = <&pio2 0 ALT1 IN SE_NICLK_IO 0 CLK_B>;
275						rx_er = <&pio2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
276					};
277				};
278
279				pinctrl_rmii1_phyclk: rmii1_phyclk {
280					st,pins {
281						phyclk = <&pio2 3 ALT1 OUT NICLK 0 CLK_A>;
282					};
283				};
284
285				pinctrl_rmii1_phyclk_ext: rmii1_phyclk_ext {
286					st,pins {
287						phyclk = <&pio2 3 ALT2 IN NICLK 0 CLK_A>;
288					};
289				};
290			};
291
292			pwm1 {
293				pinctrl_pwm1_chan0_default: pwm1-0-default {
294					st,pins {
295						pwm-out = <&pio3 0 ALT1 OUT>;
296						pwm-capturein = <&pio3 2 ALT1 IN>;
297					};
298				};
299				pinctrl_pwm1_chan1_default: pwm1-1-default {
300					st,pins {
301						pwm-capturein = <&pio4 3 ALT1 IN>;
302						pwm-out = <&pio4 4 ALT1 OUT>;
303					};
304				};
305				pinctrl_pwm1_chan2_default: pwm1-2-default {
306					st,pins {
307						pwm-out = <&pio4 6 ALT3 OUT>;
308					};
309				};
310				pinctrl_pwm1_chan3_default: pwm1-3-default {
311					st,pins {
312						pwm-out = <&pio4 7 ALT3 OUT>;
313					};
314				};
315			};
316
317			spi10 {
318				pinctrl_spi10_default: spi10-4w-alt1-0 {
319					st,pins {
320						mtsr = <&pio4 6 ALT1 OUT>;
321						mrst = <&pio4 7 ALT1 IN>;
322						scl = <&pio4 5 ALT1 OUT>;
323					};
324				};
325
326				pinctrl_spi10_3w_alt1_0: spi10-3w-alt1-0 {
327					st,pins {
328						mtsr = <&pio4 6 ALT1 BIDIR_PU>;
329						scl = <&pio4 5 ALT1 OUT>;
330					};
331				};
332			};
333
334			spi11 {
335				pinctrl_spi11_default: spi11-4w-alt2-0 {
336					st,pins {
337						mtsr = <&pio3 1 ALT2 OUT>;
338						mrst = <&pio3 0 ALT2 IN>;
339						scl = <&pio3 2 ALT2 OUT>;
340					};
341				};
342
343				pinctrl_spi11_3w_alt2_0: spi11-3w-alt2-0 {
344					st,pins {
345						mtsr = <&pio3 1 ALT2 BIDIR_PU>;
346						scl = <&pio3 2 ALT2 OUT>;
347					};
348				};
349			};
350
351			spi12 {
352				pinctrl_spi12_default: spi12-4w-alt2-0 {
353					st,pins {
354						mtsr = <&pio3 6 ALT2 OUT>;
355						mrst = <&pio3 4 ALT2 IN>;
356						scl = <&pio3 7 ALT2 OUT>;
357					};
358				};
359
360				pinctrl_spi12_3w_alt2_0: spi12-3w-alt2-0 {
361					st,pins {
362						mtsr = <&pio3 6 ALT2 BIDIR_PU>;
363						scl = <&pio3 7 ALT2 OUT>;
364					};
365				};
366			};
367		};
368
369		pin-controller-front0@920f080 {
370			#address-cells = <1>;
371			#size-cells = <1>;
372			compatible = "st,stih407-front-pinctrl";
373			st,syscfg = <&syscfg_front>;
374			reg = <0x0920f080 0x4>;
375			reg-names = "irqmux";
376			interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
377			interrupt-names = "irqmux";
378			ranges = <0 0x09200000 0x10000>;
379
380			pio10: pio@9200000 {
381				gpio-controller;
382				#gpio-cells = <2>;
383				interrupt-controller;
384				#interrupt-cells = <2>;
385				reg = <0x0 0x100>;
386				st,bank-name = "PIO10";
387			};
388			pio11: pio@9201000 {
389				gpio-controller;
390				#gpio-cells = <2>;
391				interrupt-controller;
392				#interrupt-cells = <2>;
393				reg = <0x1000 0x100>;
394				st,bank-name = "PIO11";
395			};
396			pio12: pio@9202000 {
397				gpio-controller;
398				#gpio-cells = <2>;
399				interrupt-controller;
400				#interrupt-cells = <2>;
401				reg = <0x2000 0x100>;
402				st,bank-name = "PIO12";
403			};
404			pio13: pio@9203000 {
405				gpio-controller;
406				#gpio-cells = <2>;
407				interrupt-controller;
408				#interrupt-cells = <2>;
409				reg = <0x3000 0x100>;
410				st,bank-name = "PIO13";
411			};
412			pio14: pio@9204000 {
413				gpio-controller;
414				#gpio-cells = <2>;
415				interrupt-controller;
416				#interrupt-cells = <2>;
417				reg = <0x4000 0x100>;
418				st,bank-name = "PIO14";
419			};
420			pio15: pio@9205000 {
421				gpio-controller;
422				#gpio-cells = <2>;
423				interrupt-controller;
424				#interrupt-cells = <2>;
425				reg = <0x5000 0x100>;
426				st,bank-name = "PIO15";
427			};
428			pio16: pio@9206000 {
429				gpio-controller;
430				#gpio-cells = <2>;
431				interrupt-controller;
432				#interrupt-cells = <2>;
433				reg = <0x6000 0x100>;
434				st,bank-name = "PIO16";
435			};
436			pio17: pio@9207000 {
437				gpio-controller;
438				#gpio-cells = <2>;
439				interrupt-controller;
440				#interrupt-cells = <2>;
441				reg = <0x7000 0x100>;
442				st,bank-name = "PIO17";
443			};
444			pio18: pio@9208000 {
445				gpio-controller;
446				#gpio-cells = <2>;
447				interrupt-controller;
448				#interrupt-cells = <2>;
449				reg = <0x8000 0x100>;
450				st,bank-name = "PIO18";
451			};
452			pio19: pio@9209000 {
453				gpio-controller;
454				#gpio-cells = <2>;
455				interrupt-controller;
456				#interrupt-cells = <2>;
457				reg = <0x9000 0x100>;
458				st,bank-name = "PIO19";
459			};
460
461			/* Comms */
462			serial0 {
463				pinctrl_serial0: serial0-0 {
464					st,pins {
465						tx =  <&pio17 0 ALT1 OUT>;
466						rx =  <&pio17 1 ALT1 IN>;
467					};
468				};
469				pinctrl_serial0_hw_flowctrl: serial0-0_hw_flowctrl {
470					st,pins {
471						tx =  <&pio17 0 ALT1 OUT>;
472						rx =  <&pio17 1 ALT1 IN>;
473						cts = <&pio17 2 ALT1 IN>;
474						rts = <&pio17 3 ALT1 OUT>;
475					};
476				};
477			};
478
479			serial1 {
480				pinctrl_serial1: serial1-0 {
481					st,pins {
482						tx = <&pio16 0 ALT1 OUT>;
483						rx = <&pio16 1 ALT1 IN>;
484					};
485				};
486			};
487
488			serial2 {
489				pinctrl_serial2: serial2-0 {
490					st,pins {
491						tx = <&pio15 0 ALT1 OUT>;
492						rx = <&pio15 1 ALT1 IN>;
493					};
494				};
495			};
496
497			mmc1 {
498				pinctrl_sd1: sd1-0 {
499					st,pins {
500						sd_clk = <&pio19 3 ALT5 BIDIR NICLK 0 CLK_B>;
501						sd_cmd = <&pio19 2 ALT5 BIDIR_PU BYPASS 0>;
502						sd_dat0 = <&pio19 4 ALT5 BIDIR_PU BYPASS 0>;
503						sd_dat1 = <&pio19 5 ALT5 BIDIR_PU BYPASS 0>;
504						sd_dat2 = <&pio19 6 ALT5 BIDIR_PU BYPASS 0>;
505						sd_dat3 = <&pio19 7 ALT5 BIDIR_PU BYPASS 0>;
506						sd_led = <&pio16 6 ALT6 OUT>;
507						sd_pwren = <&pio16 7 ALT6 OUT>;
508						sd_cd = <&pio19 0 ALT6 IN>;
509						sd_wp = <&pio19 1 ALT6 IN>;
510					};
511				};
512			};
513
514
515			i2c0 {
516				pinctrl_i2c0_default: i2c0-default {
517					st,pins {
518						sda = <&pio10 6 ALT2 BIDIR>;
519						scl = <&pio10 5 ALT2 BIDIR>;
520					};
521				};
522			};
523
524			i2c1 {
525				pinctrl_i2c1_default: i2c1-default {
526					st,pins {
527						sda = <&pio11 1 ALT2 BIDIR>;
528						scl = <&pio11 0 ALT2 BIDIR>;
529					};
530				};
531			};
532
533			i2c2 {
534				pinctrl_i2c2_default: i2c2-default {
535					st,pins {
536						sda = <&pio15 6 ALT2 BIDIR>;
537						scl = <&pio15 5 ALT2 BIDIR>;
538					};
539				};
540
541				pinctrl_i2c2_alt2_1: i2c2-alt2-1 {
542					st,pins {
543						sda = <&pio12 6 ALT2 BIDIR>;
544						scl = <&pio12 5 ALT2 BIDIR>;
545					};
546				};
547			};
548
549			i2c3 {
550				pinctrl_i2c3_default: i2c3-alt1-0 {
551					st,pins {
552						sda = <&pio18 6 ALT1 BIDIR>;
553						scl = <&pio18 5 ALT1 BIDIR>;
554					};
555				};
556				pinctrl_i2c3_alt1_1: i2c3-alt1-1 {
557					st,pins {
558						sda = <&pio17 7 ALT1 BIDIR>;
559						scl = <&pio17 6 ALT1 BIDIR>;
560					};
561				};
562				pinctrl_i2c3_alt3_0: i2c3-alt3-0 {
563					st,pins {
564						sda = <&pio13 6 ALT3 BIDIR>;
565						scl = <&pio13 5 ALT3 BIDIR>;
566					};
567				};
568			};
569
570			spi0 {
571				pinctrl_spi0_default: spi0-4w-alt2-0 {
572					st,pins {
573						mtsr = <&pio10 6 ALT2 OUT>;
574						mrst = <&pio10 7 ALT2 IN>;
575						scl = <&pio10 5 ALT2 OUT>;
576					};
577				};
578
579				pinctrl_spi0_3w_alt2_0: spi0-3w-alt2-0 {
580					st,pins {
581						mtsr = <&pio10 6 ALT2 BIDIR_PU>;
582						scl = <&pio10 5 ALT2 OUT>;
583					};
584				};
585
586				pinctrl_spi0_4w_alt1_0: spi0-4w-alt1-0 {
587					st,pins {
588						mtsr = <&pio19 7 ALT1 OUT>;
589						mrst = <&pio19 5 ALT1 IN>;
590						scl = <&pio19 6 ALT1 OUT>;
591					};
592				};
593
594				pinctrl_spi0_3w_alt1_0: spi0-3w-alt1-0 {
595					st,pins {
596						mtsr = <&pio19 7 ALT1 BIDIR_PU>;
597						scl = <&pio19 6 ALT1 OUT>;
598					};
599				};
600			};
601
602			spi1 {
603				pinctrl_spi1_default: spi1-4w-alt2-0 {
604					st,pins {
605						mtsr = <&pio11 1 ALT2 OUT>;
606						mrst = <&pio11 2 ALT2 IN>;
607						scl = <&pio11 0 ALT2 OUT>;
608					};
609				};
610
611				pinctrl_spi1_3w_alt2_0: spi1-3w-alt2-0 {
612					st,pins {
613						mtsr = <&pio11 1 ALT2 BIDIR_PU>;
614						scl = <&pio11 0 ALT2 OUT>;
615					};
616				};
617
618				pinctrl_spi1_4w_alt1_0: spi1-4w-alt1-0 {
619					st,pins {
620						mtsr = <&pio14 3 ALT1 OUT>;
621						mrst = <&pio14 4 ALT1 IN>;
622						scl = <&pio14 2 ALT1 OUT>;
623					};
624				};
625
626				pinctrl_spi1_3w_alt1_0: spi1-3w-alt1-0 {
627					st,pins {
628						mtsr = <&pio14 3 ALT1 BIDIR_PU>;
629						scl = <&pio14 2 ALT1 OUT>;
630					};
631				};
632			};
633
634			spi2 {
635				pinctrl_spi2_default: spi2-4w-alt2-0 {
636					st,pins {
637						mtsr = <&pio12 6 ALT2 OUT>;
638						mrst = <&pio12 7 ALT2 IN>;
639						scl = <&pio12 5 ALT2 OUT>;
640					};
641				};
642
643				pinctrl_spi2_3w_alt2_0: spi2-3w-alt2-0 {
644					st,pins {
645						mtsr = <&pio12 6 ALT2 BIDIR_PU>;
646						scl = <&pio12 5 ALT2 OUT>;
647					};
648				};
649
650				pinctrl_spi2_4w_alt1_0: spi2-4w-alt1-0 {
651					st,pins {
652						mtsr = <&pio14 6 ALT1 OUT>;
653						mrst = <&pio14 7 ALT1 IN>;
654						scl = <&pio14 5 ALT1 OUT>;
655					};
656				};
657
658				pinctrl_spi2_3w_alt1_0: spi2-3w-alt1-0 {
659					st,pins {
660						mtsr = <&pio14 6 ALT1 BIDIR_PU>;
661						scl = <&pio14 5 ALT1 OUT>;
662					};
663				};
664
665				pinctrl_spi2_4w_alt2_1: spi2-4w-alt2-1 {
666					st,pins {
667						mtsr = <&pio15 6 ALT2 OUT>;
668						mrst = <&pio15 7 ALT2 IN>;
669						scl = <&pio15 5 ALT2 OUT>;
670					};
671				};
672
673				pinctrl_spi2_3w_alt2_1: spi2-3w-alt2-1 {
674					st,pins {
675						mtsr = <&pio15 6 ALT2 BIDIR_PU>;
676						scl = <&pio15 5 ALT2 OUT>;
677					};
678				};
679			};
680
681			spi3 {
682				pinctrl_spi3_default: spi3-4w-alt3-0 {
683					st,pins {
684						mtsr = <&pio13 6 ALT3 OUT>;
685						mrst = <&pio13 7 ALT3 IN>;
686						scl = <&pio13 5 ALT3 OUT>;
687					};
688				};
689
690				pinctrl_spi3_3w_alt3_0: spi3-3w-alt3-0 {
691					st,pins {
692						mtsr = <&pio13 6 ALT3 BIDIR_PU>;
693						scl = <&pio13 5 ALT3 OUT>;
694					};
695				};
696
697				pinctrl_spi3_4w_alt1_0: spi3-4w-alt1-0 {
698					st,pins {
699						mtsr = <&pio17 7 ALT1 OUT>;
700						mrst = <&pio17 5 ALT1 IN>;
701						scl = <&pio17 6 ALT1 OUT>;
702					};
703				};
704
705				pinctrl_spi3_3w_alt1_0: spi3-3w-alt1-0 {
706					st,pins {
707						mtsr = <&pio17 7 ALT1 BIDIR_PU>;
708						scl = <&pio17 6 ALT1 OUT>;
709					};
710				};
711
712				pinctrl_spi3_4w_alt1_1: spi3-4w-alt1-1 {
713					st,pins {
714						mtsr = <&pio18 6 ALT1 OUT>;
715						mrst = <&pio18 7 ALT1 IN>;
716						scl = <&pio18 5 ALT1 OUT>;
717					};
718				};
719
720				pinctrl_spi3_3w_alt1_1: spi3-3w-alt1-1 {
721					st,pins {
722						mtsr = <&pio18 6 ALT1 BIDIR_PU>;
723						scl = <&pio18 5 ALT1 OUT>;
724					};
725				};
726			};
727
728			tsin0 {
729				pinctrl_tsin0_parallel: tsin0_parallel {
730					st,pins {
731						DATA7 = <&pio10 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
732						DATA6 = <&pio10 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
733						DATA5 = <&pio10 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
734						DATA4 = <&pio10 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
735						DATA3 = <&pio11 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
736						DATA2 = <&pio11 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
737						DATA1 = <&pio11 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
738						DATA0 = <&pio11 3 ALT1 IN SE_NICLK_IO 0 CLK_A>;
739						CLKIN = <&pio10 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
740						VALID = <&pio10 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
741						ERROR = <&pio10 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
742						PKCLK = <&pio10 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
743					};
744				};
745				pinctrl_tsin0_serial: tsin0_serial {
746					st,pins {
747						DATA7 = <&pio10 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
748						CLKIN = <&pio10 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
749						VALID = <&pio10 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
750						ERROR = <&pio10 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
751						PKCLK = <&pio10 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
752					};
753				};
754			};
755
756			tsin1 {
757				pinctrl_tsin1_parallel: tsin1_parallel {
758					st,pins {
759						DATA7 = <&pio12 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
760						DATA6 = <&pio12 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
761						DATA5 = <&pio12 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
762						DATA4 = <&pio12 3 ALT1 IN SE_NICLK_IO 0 CLK_A>;
763						DATA3 = <&pio12 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
764						DATA2 = <&pio12 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
765						DATA1 = <&pio12 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
766						DATA0 = <&pio12 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
767						CLKIN = <&pio11 7 ALT1 IN CLKNOTDATA 0 CLK_A>;
768						VALID = <&pio11 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
769						ERROR = <&pio11 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
770						PKCLK = <&pio11 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
771					};
772				};
773				pinctrl_tsin1_serial: tsin1_serial {
774					st,pins {
775						DATA7 = <&pio12 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
776						CLKIN = <&pio11 7 ALT1 IN CLKNOTDATA 0 CLK_A>;
777						VALID = <&pio11 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
778						ERROR = <&pio11 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
779						PKCLK = <&pio11 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
780					};
781				};
782			};
783
784			tsin2 {
785				pinctrl_tsin2_parallel: tsin2_parallel {
786					st,pins {
787						DATA7 = <&pio13 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
788						DATA6 = <&pio13 5 ALT2 IN SE_NICLK_IO 0 CLK_B>;
789						DATA5 = <&pio13 6 ALT2 IN SE_NICLK_IO 0 CLK_B>;
790						DATA4 = <&pio13 7 ALT2 IN SE_NICLK_IO 0 CLK_B>;
791						DATA3 = <&pio14 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
792						DATA2 = <&pio14 1 ALT2 IN SE_NICLK_IO 0 CLK_B>;
793						DATA1 = <&pio14 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
794						DATA0 = <&pio14 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
795						CLKIN = <&pio13 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
796						VALID = <&pio13 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
797						ERROR = <&pio13 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
798						PKCLK = <&pio13 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
799					};
800				};
801				pinctrl_tsin2_serial: tsin2_serial {
802					st,pins {
803						DATA7 = <&pio13 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
804						CLKIN = <&pio13 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
805						VALID = <&pio13 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
806						ERROR = <&pio13 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
807						PKCLK = <&pio13 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
808					};
809				};
810			};
811
812			tsin3 {
813				pinctrl_tsin3_serial: tsin3_serial {
814					st,pins {
815						DATA7 = <&pio14 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
816						CLKIN = <&pio14 0 ALT1 IN CLKNOTDATA 0 CLK_A>;
817						VALID = <&pio13 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
818						ERROR = <&pio13 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
819						PKCLK = <&pio13 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
820					};
821				};
822			};
823
824			tsin4 {
825				pinctrl_tsin4_serial_alt3: tsin4_serial_alt3 {
826					st,pins {
827						DATA7 = <&pio14 6 ALT3 IN SE_NICLK_IO 0 CLK_A>;
828						CLKIN = <&pio14 5 ALT3 IN CLKNOTDATA 0 CLK_A>;
829						VALID = <&pio14 3 ALT3 IN SE_NICLK_IO 0 CLK_B>;
830						ERROR = <&pio14 2 ALT3 IN SE_NICLK_IO 0 CLK_B>;
831						PKCLK = <&pio14 4 ALT3 IN SE_NICLK_IO 0 CLK_A>;
832					};
833				};
834			};
835
836			tsin5 {
837				pinctrl_tsin5_serial_alt1: tsin5_serial_alt1 {
838					st,pins {
839						DATA7 = <&pio18 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
840						CLKIN = <&pio18 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
841						VALID = <&pio18 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
842						ERROR = <&pio18 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
843						PKCLK = <&pio18 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
844					};
845				};
846				pinctrl_tsin5_serial_alt2: tsin5_serial_alt2 {
847					st,pins {
848						DATA7 = <&pio19 4 ALT2 IN SE_NICLK_IO 0 CLK_A>;
849						CLKIN = <&pio19 3 ALT2 IN CLKNOTDATA 0 CLK_A>;
850						VALID = <&pio19 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
851						ERROR = <&pio19 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
852						PKCLK = <&pio19 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
853					};
854				};
855			};
856
857			tsout0 {
858				pinctrl_tsout0_parallel: tsout0_parallel {
859					st,pins {
860						DATA7 = <&pio12 0 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
861						DATA6 = <&pio12 1 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
862						DATA5 = <&pio12 2 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
863						DATA4 = <&pio12 3 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
864						DATA3 = <&pio12 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
865						DATA2 = <&pio12 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
866						DATA1 = <&pio12 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
867						DATA0 = <&pio12 7 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
868						CLKIN = <&pio11 7 ALT3 OUT NICLK 0 CLK_A>;
869						VALID = <&pio11 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
870						ERROR = <&pio11 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
871						PKCLK = <&pio11 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
872					};
873				};
874				pinctrl_tsout0_serial: tsout0_serial {
875					st,pins {
876						DATA7 = <&pio12 0 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
877						CLKIN = <&pio11 7 ALT3 OUT NICLK 0 CLK_A>;
878						VALID = <&pio11 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
879						ERROR = <&pio11 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
880						PKCLK = <&pio11 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
881					};
882				};
883			};
884
885			tsout1 {
886				pinctrl_tsout1_serial: tsout1_serial {
887					st,pins {
888						DATA7 = <&pio19 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
889						CLKIN = <&pio19 3 ALT1 OUT NICLK 0 CLK_A>;
890						VALID = <&pio19 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
891						ERROR = <&pio19 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
892						PKCLK = <&pio19 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
893					};
894				};
895			};
896
897			mtsin0 {
898				pinctrl_mtsin0_parallel: mtsin0_parallel {
899					st,pins {
900						DATA7 = <&pio10 4 ALT3 IN SE_NICLK_IO 0 CLK_A>;
901						DATA6 = <&pio10 5 ALT3 IN SE_NICLK_IO 0 CLK_A>;
902						DATA5 = <&pio10 6 ALT3 IN SE_NICLK_IO 0 CLK_A>;
903						DATA4 = <&pio10 7 ALT3 IN SE_NICLK_IO 0 CLK_A>;
904						DATA3 = <&pio11 0 ALT3 IN SE_NICLK_IO 0 CLK_A>;
905						DATA2 = <&pio11 1 ALT3 IN SE_NICLK_IO 0 CLK_A>;
906						DATA1 = <&pio11 2 ALT3 IN SE_NICLK_IO 0 CLK_A>;
907						DATA0 = <&pio11 3 ALT3 IN SE_NICLK_IO 0 CLK_A>;
908						CLKIN = <&pio10 3 ALT3 IN CLKNOTDATA 0 CLK_A>;
909						VALID = <&pio10 1 ALT3 IN SE_NICLK_IO 0 CLK_A>;
910						ERROR = <&pio10 0 ALT3 IN SE_NICLK_IO 0 CLK_A>;
911						PKCLK = <&pio10 2 ALT3 IN SE_NICLK_IO 0 CLK_A>;
912					};
913				};
914			};
915
916			systrace {
917				pinctrl_systrace_default: systrace-default {
918					st,pins {
919						trc_data0 = <&pio11 3 ALT5 OUT>;
920						trc_data1 = <&pio11 4 ALT5 OUT>;
921						trc_data2 = <&pio11 5 ALT5 OUT>;
922						trc_data3 = <&pio11 6 ALT5 OUT>;
923						trc_clk   = <&pio11 7 ALT5 OUT>;
924					};
925				};
926			};
927		};
928
929		pin-controller-front1@921f080 {
930			#address-cells = <1>;
931			#size-cells = <1>;
932			compatible = "st,stih407-front-pinctrl";
933			st,syscfg = <&syscfg_front>;
934			reg = <0x0921f080 0x4>;
935			reg-names = "irqmux";
936			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
937			interrupt-names = "irqmux";
938			ranges = <0 0x09210000 0x10000>;
939
940			pio20: pio@9210000 {
941				gpio-controller;
942				#gpio-cells = <2>;
943				interrupt-controller;
944				#interrupt-cells = <2>;
945				reg = <0x0 0x100>;
946				st,bank-name = "PIO20";
947			};
948
949			tsin4 {
950				pinctrl_tsin4_serial_alt1: tsin4_serial_alt1 {
951					st,pins {
952						DATA7 = <&pio20 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
953						CLKIN = <&pio20 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
954						VALID = <&pio20 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
955						ERROR = <&pio20 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
956						PKCLK = <&pio20 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
957					};
958				};
959			};
960		};
961
962		pin-controller-rear@922f080 {
963			#address-cells = <1>;
964			#size-cells = <1>;
965			compatible = "st,stih407-rear-pinctrl";
966			st,syscfg = <&syscfg_rear>;
967			reg = <0x0922f080 0x4>;
968			reg-names = "irqmux";
969			interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
970			interrupt-names = "irqmux";
971			ranges = <0 0x09220000 0x6000>;
972
973			pio30: gpio@9220000 {
974				gpio-controller;
975				#gpio-cells = <2>;
976				interrupt-controller;
977				#interrupt-cells = <2>;
978				reg = <0x0 0x100>;
979				st,bank-name = "PIO30";
980			};
981			pio31: gpio@9221000 {
982				gpio-controller;
983				#gpio-cells = <2>;
984				interrupt-controller;
985				#interrupt-cells = <2>;
986				reg = <0x1000 0x100>;
987				st,bank-name = "PIO31";
988			};
989			pio32: gpio@9222000 {
990				gpio-controller;
991				#gpio-cells = <2>;
992				interrupt-controller;
993				#interrupt-cells = <2>;
994				reg = <0x2000 0x100>;
995				st,bank-name = "PIO32";
996			};
997			pio33: gpio@9223000 {
998				gpio-controller;
999				#gpio-cells = <2>;
1000				interrupt-controller;
1001				#interrupt-cells = <2>;
1002				reg = <0x3000 0x100>;
1003				st,bank-name = "PIO33";
1004			};
1005			pio34: gpio@9224000 {
1006				gpio-controller;
1007				#gpio-cells = <2>;
1008				interrupt-controller;
1009				#interrupt-cells = <2>;
1010				reg = <0x4000 0x100>;
1011				st,bank-name = "PIO34";
1012			};
1013			pio35: gpio@9225000 {
1014				gpio-controller;
1015				#gpio-cells = <2>;
1016				interrupt-controller;
1017				#interrupt-cells = <2>;
1018				reg = <0x5000 0x100>;
1019				st,bank-name = "PIO35";
1020				st,retime-pin-mask = <0x7f>;
1021			};
1022
1023			i2c4 {
1024				pinctrl_i2c4_default: i2c4-default {
1025					st,pins {
1026						sda = <&pio30 1 ALT1 BIDIR>;
1027						scl = <&pio30 0 ALT1 BIDIR>;
1028					};
1029				};
1030			};
1031
1032			i2c5 {
1033				pinctrl_i2c5_default: i2c5-default {
1034					st,pins {
1035						sda = <&pio34 4 ALT1 BIDIR>;
1036						scl = <&pio34 3 ALT1 BIDIR>;
1037					};
1038				};
1039			};
1040
1041			usb3 {
1042				pinctrl_usb3: usb3-2 {
1043					st,pins {
1044						usb-oc-detect = <&pio35 4 ALT1 IN>;
1045						usb-pwr-enable = <&pio35 5 ALT1 OUT>;
1046						usb-vbus-valid = <&pio35 6 ALT1 IN>;
1047					};
1048				};
1049			};
1050
1051			pwm0 {
1052				pinctrl_pwm0_chan0_default: pwm0-0-default {
1053					st,pins {
1054						pwm-capturein = <&pio31 0 ALT1 IN>;
1055						pwm-out = <&pio31 1 ALT1 OUT>;
1056					};
1057				};
1058			};
1059
1060			spi4 {
1061				pinctrl_spi4_default: spi4-4w-alt1-0 {
1062					st,pins {
1063						mtsr = <&pio30 1 ALT1 OUT>;
1064						mrst = <&pio30 2 ALT1 IN>;
1065						scl = <&pio30 0 ALT1 OUT>;
1066					};
1067				};
1068
1069				pinctrl_spi4_3w_alt1_0: spi4-3w-alt1-0 {
1070					st,pins {
1071						mtsr = <&pio30 1 ALT1 BIDIR_PU>;
1072						scl = <&pio30 0 ALT1 OUT>;
1073					};
1074				};
1075
1076				pinctrl_spi4_4w_alt3_0: spi4-4w-alt3-0 {
1077					st,pins {
1078						mtsr = <&pio34 1 ALT3 OUT>;
1079						mrst = <&pio34 2 ALT3 IN>;
1080						scl = <&pio34 0 ALT3 OUT>;
1081					};
1082				};
1083
1084				pinctrl_spi4_3w_alt3_0: spi4-3w-alt3-0 {
1085					st,pins {
1086						mtsr = <&pio34 1 ALT3 BIDIR_PU>;
1087						scl = <&pio34 0 ALT3 OUT>;
1088					};
1089				};
1090			};
1091
1092			i2s_out {
1093				pinctrl_i2s_8ch_out: i2s_8ch_out{
1094					st,pins {
1095						mclk = <&pio33 5 ALT1 OUT>;
1096						lrclk = <&pio33 7 ALT1 OUT>;
1097						sclk = <&pio33 6 ALT1 OUT>;
1098						data0 = <&pio33 4 ALT1 OUT>;
1099						data1 = <&pio34 0 ALT1 OUT>;
1100						data2 = <&pio34 1 ALT1 OUT>;
1101						data3 = <&pio34 2 ALT1 OUT>;
1102					};
1103				};
1104
1105				pinctrl_i2s_2ch_out: i2s_2ch_out{
1106					st,pins {
1107						mclk = <&pio33 5 ALT1 OUT>;
1108						lrclk = <&pio33 7 ALT1 OUT>;
1109						sclk = <&pio33 6 ALT1 OUT>;
1110						data0 = <&pio33 4 ALT1 OUT>;
1111					};
1112				};
1113			};
1114
1115			i2s_in {
1116				pinctrl_i2s_8ch_in: i2s_8ch_in{
1117					st,pins {
1118						mclk = <&pio32 5 ALT1 IN>;
1119						lrclk = <&pio32 7 ALT1 IN>;
1120						sclk = <&pio32 6 ALT1 IN>;
1121						data0 = <&pio32 4 ALT1 IN>;
1122						data1 = <&pio33 0 ALT1 IN>;
1123						data2 = <&pio33 1 ALT1 IN>;
1124						data3 = <&pio33 2 ALT1 IN>;
1125						data4 = <&pio33 3 ALT1 IN>;
1126					};
1127				};
1128
1129				pinctrl_i2s_2ch_in: i2s_2ch_in{
1130					st,pins {
1131						mclk = <&pio32 5 ALT1 IN>;
1132						lrclk = <&pio32 7 ALT1 IN>;
1133						sclk = <&pio32 6 ALT1 IN>;
1134						data0 = <&pio32 4 ALT1 IN>;
1135					};
1136				};
1137			};
1138
1139			spdif_out {
1140				pinctrl_spdif_out: spdif_out{
1141					st,pins {
1142						spdif_out = <&pio34 7 ALT1 OUT>;
1143					};
1144				};
1145			};
1146
1147			serial3 {
1148				pinctrl_serial3: serial3-0 {
1149					st,pins {
1150						tx = <&pio31 3 ALT1 OUT>;
1151						rx = <&pio31 4 ALT1 IN>;
1152					};
1153				};
1154			};
1155		};
1156
1157		pin-controller-flash@923f080 {
1158			#address-cells = <1>;
1159			#size-cells = <1>;
1160			compatible = "st,stih407-flash-pinctrl";
1161			st,syscfg = <&syscfg_flash>;
1162			reg = <0x0923f080 0x4>;
1163			reg-names = "irqmux";
1164			interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
1165			interrupt-names = "irqmux";
1166			ranges = <0 0x09230000 0x3000>;
1167
1168			pio40: gpio@9230000 {
1169				gpio-controller;
1170				#gpio-cells = <2>;
1171				interrupt-controller;
1172				#interrupt-cells = <2>;
1173				reg = <0 0x100>;
1174				st,bank-name = "PIO40";
1175			};
1176			pio41: gpio@9231000 {
1177				gpio-controller;
1178				#gpio-cells = <2>;
1179				interrupt-controller;
1180				#interrupt-cells = <2>;
1181				reg = <0x1000 0x100>;
1182				st,bank-name = "PIO41";
1183			};
1184			pio42: gpio@9232000 {
1185				gpio-controller;
1186				#gpio-cells = <2>;
1187				interrupt-controller;
1188				#interrupt-cells = <2>;
1189				reg = <0x2000 0x100>;
1190				st,bank-name = "PIO42";
1191			};
1192
1193			mmc0 {
1194				pinctrl_mmc0: mmc0-0 {
1195					st,pins {
1196						emmc_clk = <&pio40 6 ALT1 BIDIR>;
1197						emmc_cmd = <&pio40 7 ALT1 BIDIR_PU>;
1198						emmc_d0 = <&pio41 0 ALT1 BIDIR_PU>;
1199						emmc_d1 = <&pio41 1 ALT1 BIDIR_PU>;
1200						emmc_d2 = <&pio41 2 ALT1 BIDIR_PU>;
1201						emmc_d3 = <&pio41 3 ALT1 BIDIR_PU>;
1202						emmc_d4 = <&pio41 4 ALT1 BIDIR_PU>;
1203						emmc_d5 = <&pio41 5 ALT1 BIDIR_PU>;
1204						emmc_d6 = <&pio41 6 ALT1 BIDIR_PU>;
1205						emmc_d7 = <&pio41 7 ALT1 BIDIR_PU>;
1206					};
1207				};
1208				pinctrl_sd0: sd0-0 {
1209					st,pins {
1210						sd_clk = <&pio40 6 ALT1 BIDIR>;
1211						sd_cmd = <&pio40 7 ALT1 BIDIR_PU>;
1212						sd_dat0 = <&pio41 0 ALT1 BIDIR_PU>;
1213						sd_dat1 = <&pio41 1 ALT1 BIDIR_PU>;
1214						sd_dat2 = <&pio41 2 ALT1 BIDIR_PU>;
1215						sd_dat3 = <&pio41 3 ALT1 BIDIR_PU>;
1216						sd_led = <&pio42 0 ALT2 OUT>;
1217						sd_pwren = <&pio42 2 ALT2 OUT>;
1218						sd_vsel = <&pio42 3 ALT2 OUT>;
1219						sd_cd = <&pio42 4 ALT2 IN>;
1220						sd_wp = <&pio42 5 ALT2 IN>;
1221					};
1222				};
1223			};
1224
1225			fsm {
1226				pinctrl_fsm: fsm {
1227					st,pins {
1228						spi-fsm-clk = <&pio40 1 ALT1 OUT>;
1229						spi-fsm-cs = <&pio40 0 ALT1 OUT>;
1230						spi-fsm-mosi = <&pio40 2 ALT1 OUT>;
1231						spi-fsm-miso = <&pio40 3 ALT1 IN>;
1232						spi-fsm-hol = <&pio40 5 ALT1 OUT>;
1233						spi-fsm-wp = <&pio40 4 ALT1 OUT>;
1234					};
1235				};
1236			};
1237
1238			nand {
1239				pinctrl_nand: nand {
1240					st,pins {
1241						nand_cs1 = <&pio40 6 ALT3 OUT>;
1242						nand_cs0 = <&pio40 7 ALT3 OUT>;
1243						nand_d0 = <&pio41 0 ALT3 BIDIR>;
1244						nand_d1 = <&pio41 1 ALT3 BIDIR>;
1245						nand_d2 = <&pio41 2 ALT3 BIDIR>;
1246						nand_d3 = <&pio41 3 ALT3 BIDIR>;
1247						nand_d4 = <&pio41 4 ALT3 BIDIR>;
1248						nand_d5 = <&pio41 5 ALT3 BIDIR>;
1249						nand_d6 = <&pio41 6 ALT3 BIDIR>;
1250						nand_d7 = <&pio41 7 ALT3 BIDIR>;
1251						nand_we = <&pio42 0 ALT3 OUT>;
1252						nand_dqs = <&pio42 1 ALT3 OUT>;
1253						nand_ale = <&pio42 2 ALT3 OUT>;
1254						nand_cle = <&pio42 3 ALT3 OUT>;
1255						nand_rnb = <&pio42 4 ALT3 IN>;
1256						nand_oe = <&pio42 5 ALT3 OUT>;
1257					};
1258				};
1259			};
1260		};
1261	};
1262};
1263