
/*
 * Copyright (C) 2013 STMicroelectronics Limited.
 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * publishhed by the Free Software Foundation.
 */
#include "st-pincfg.h"
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {

	aliases {
		gpio0	= &pio0;
		gpio1	= &pio1;
		gpio2	= &pio2;
		gpio3	= &pio3;
		gpio4	= &pio4;
		gpio5	= &pio40;
		gpio6	= &pio5;
		gpio7	= &pio6;
		gpio8	= &pio7;
		gpio9	= &pio8;
		gpio10	= &pio9;
		gpio11	= &pio10;
		gpio12	= &pio11;
		gpio13	= &pio12;
		gpio14	= &pio30;
		gpio15	= &pio31;
		gpio16	= &pio13;
		gpio17	= &pio14;
		gpio18	= &pio15;
		gpio19	= &pio16;
		gpio20	= &pio17;
		gpio21	= &pio18;
		gpio22	= &pio100;
		gpio23	= &pio101;
		gpio24	= &pio102;
		gpio25	= &pio103;
		gpio26	= &pio104;
		gpio27	= &pio105;
		gpio28	= &pio106;
		gpio29	= &pio107;
	};

	soc {
		pin-controller-sbc {
			#address-cells	= <1>;
			#size-cells	= <1>;
			compatible	= "st,stih416-sbc-pinctrl";
			st,syscfg	= <&syscfg_sbc>;
			reg 		= <0xfe61f080 0x4>;
			reg-names	= "irqmux";
			interrupts 	= <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names	= "irqmux";
			ranges		= <0 0xfe610000 0x6000>;

			pio0: gpio@fe610000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0 0x100>;
				st,bank-name	= "PIO0";
			};
			pio1: gpio@fe611000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x1000 0x100>;
				st,bank-name	= "PIO1";
			};
			pio2: gpio@fe612000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x2000 0x100>;
				st,bank-name	= "PIO2";
			};
			pio3: gpio@fe613000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x3000 0x100>;
				st,bank-name	= "PIO3";
			};
			pio4: gpio@fe614000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x4000 0x100>;
				st,bank-name	= "PIO4";
			};
			pio40: gpio@fe615000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x5000 0x100>;
				st,bank-name	= "PIO40";
				st,retime-pin-mask = <0x7f>;
			};

			rc{
				pinctrl_ir: ir0 {
					st,pins {
						ir = <&pio4 0 ALT2 IN>;
					};
				};
			};
			sbc_serial1 {
				pinctrl_sbc_serial1: sbc_serial1 {
					st,pins {
						tx	= <&pio2 6 ALT3 OUT>;
						rx	= <&pio2 7 ALT3 IN>;
					};
				};
			};

			keyscan {
				pinctrl_keyscan: keyscan {
					st,pins {
						keyin0 = <&pio0 2 ALT2 IN>;
						keyin1 = <&pio0 3 ALT2 IN>;
						keyin2 = <&pio0 4 ALT2 IN>;
						keyin3 = <&pio2 6 ALT2 IN>;

						keyout0 = <&pio1 6 ALT2 OUT>;
						keyout1 = <&pio1 7 ALT2 OUT>;
						keyout2 = <&pio0 6 ALT2 OUT>;
						keyout3 = <&pio2 7 ALT2 OUT>;
					};
				};
			};

			sbc_i2c0 {
				pinctrl_sbc_i2c0_default: sbc_i2c0-default {
					st,pins {
						sda = <&pio4 6 ALT1 BIDIR>;
						scl = <&pio4 5 ALT1 BIDIR>;
					};
				};
			};

			usb {
				pinctrl_usb3: usb3 {
					st,pins {
						oc-detect = <&pio40 0 ALT1 IN>;
						pwr-enable = <&pio40 1 ALT1 OUT>;
					};
				};
			};

			sbc_i2c1 {
				pinctrl_sbc_i2c1_default: sbc_i2c1-default {
					st,pins {
						sda = <&pio3 2 ALT2 BIDIR>;
						scl = <&pio3 1 ALT2 BIDIR>;
					};
				};
			};

			gmac1 {
				pinctrl_mii1: mii1 {
					st,pins {
						txd0 = <&pio0 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
						txd1 = <&pio0 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
						txd2 = <&pio0 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
						txd3 = <&pio0 3 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
						txer = <&pio0 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
						txen = <&pio0 5 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
						txclk = <&pio0 6 ALT1 IN NICLK 0 CLK_A>;
						col =   <&pio0 7 ALT1 IN BYPASS 1000>;

						mdio =  <&pio1 0 ALT1 OUT BYPASS 1500>;
						mdc =   <&pio1 1 ALT1 OUT NICLK 0 CLK_A>;
						crs =   <&pio1 2 ALT1 IN BYPASS 1000>;
						mdint = <&pio1 3 ALT1 IN BYPASS 0>;
						rxd0 =  <&pio1 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
						rxd1 =  <&pio1 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
						rxd2 =  <&pio1 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
						rxd3 =  <&pio1 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;

						rxdv =  <&pio2 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
						rx_er = <&pio2 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
						rxclk = <&pio2 2 ALT1 IN NICLK 0 CLK_A>;
						phyclk = <&pio2 3 ALT1 OUT NICLK 0 CLK_A>;
					};
				};
				pinctrl_rgmii1: rgmii1-0 {
					st,pins {
						txd0 =  <&pio0 0 ALT1 OUT DE_IO 500 CLK_A>;
						txd1 =  <&pio0 1 ALT1 OUT DE_IO 500 CLK_A>;
						txd2 =  <&pio0 2 ALT1 OUT DE_IO 500 CLK_A>;
						txd3 =  <&pio0 3 ALT1 OUT DE_IO 500 CLK_A>;
						txen =  <&pio0 5 ALT1 OUT DE_IO 0   CLK_A>;
						txclk = <&pio0 6 ALT1 IN  NICLK 0   CLK_A>;

						mdio = <&pio1 0 ALT1 OUT BYPASS 0>;
						mdc  = <&pio1 1 ALT1 OUT NICLK  0 CLK_A>;
						rxd0 = <&pio1 4 ALT1 IN DE_IO 500 CLK_A>;
						rxd1 = <&pio1 5 ALT1 IN DE_IO 500 CLK_A>;
						rxd2 = <&pio1 6 ALT1 IN DE_IO 500 CLK_A>;
						rxd3 = <&pio1 7 ALT1 IN DE_IO 500 CLK_A>;

						rxdv   = <&pio2 0 ALT1 IN  DE_IO 500 CLK_A>;
						rxclk  = <&pio2 2 ALT1 IN  NICLK 0   CLK_A>;
						phyclk = <&pio2 3 ALT4 OUT NICLK 0   CLK_B>;

						clk125= <&pio3 7 ALT4 IN NICLK 0 CLK_A>;
					};
				};
			};

			pwm1 {
				pinctrl_pwm1_chan0_default: pwm1-0-default {
					st,pins {
						pwm-out    = <&pio3 0 ALT1 OUT>;
						pwm-capturein = <&pio3 2 ALT1 IN>;

					};
				};
				pinctrl_pwm1_chan1_default: pwm1-1-default {
					st,pins {
						pwm-out    = <&pio4 4 ALT1 OUT>;
						pwm-capturein = <&pio4 3 ALT1 IN>;
					};
				};
				pinctrl_pwm1_chan2_default: pwm1-2-default {
					st,pins {
						pwm-out    = <&pio4 6 ALT3 OUT>;
					};
				};
				pinctrl_pwm1_chan3_default: pwm1-3-default {
					st,pins {
						pwm-out    = <&pio4 7 ALT3 OUT>;
					};
				};
			};
		};

		pin-controller-front {
			#address-cells	= <1>;
			#size-cells	= <1>;
			compatible	= "st,stih416-front-pinctrl";
			st,syscfg	= <&syscfg_front>;
			reg 		= <0xfee0f080 0x4>;
			reg-names	= "irqmux";
			interrupts 	= <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names	= "irqmux";
			ranges		= <0 0xfee00000 0x10000>;

			pio5: gpio@fee00000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0 0x100>;
				st,bank-name	= "PIO5";
			};
			pio6: gpio@fee01000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x1000 0x100>;
				st,bank-name	= "PIO6";
			};
			pio7: gpio@fee02000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x2000 0x100>;
				st,bank-name	= "PIO7";
			};
			pio8: gpio@fee03000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x3000 0x100>;
				st,bank-name	= "PIO8";
			};
			pio9: gpio@fee04000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x4000 0x100>;
				st,bank-name	= "PIO9";
			};
			pio10: gpio@fee05000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x5000 0x100>;
				st,bank-name	= "PIO10";
			};
			pio11: gpio@fee06000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x6000 0x100>;
				st,bank-name	= "PIO11";
			};
			pio12: gpio@fee07000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x7000 0x100>;
				st,bank-name	= "PIO12";
			};
			pio30: gpio@fee08000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x8000 0x100>;
				st,bank-name	= "PIO30";
			};
			pio31: gpio@fee09000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x9000 0x100>;
				st,bank-name	= "PIO31";
			};

			pwm0 {
				pinctrl_pwm0_chan0_default: pwm0-0-default {
					st,pins {
						pwm-out    = <&pio9 7 ALT2 OUT>;
						pwm-capturein = <&pio9 6 ALT2 IN>;
					};
				};
			};

			serial2-oe {
				pinctrl_serial2_oe: serial2-1 {
					st,pins {
						output-enable	= <&pio11 3 ALT2 OUT>;
					};
				};
			};

			i2c0 {
				pinctrl_i2c0_default: i2c0-default {
					st,pins {
						sda = <&pio9 3 ALT1 BIDIR>;
						scl = <&pio9 2 ALT1 BIDIR>;
					};
				};
			};

			usb {
				pinctrl_usb0: usb0 {
					st,pins {
						oc-detect = <&pio9 4 ALT1 IN>;
						pwr-enable = <&pio9 5 ALT1 OUT>;
					};
				};
			};


			i2c1 {
				pinctrl_i2c1_default: i2c1-default {
					st,pins {
						sda = <&pio12 1 ALT1 BIDIR>;
						scl = <&pio12 0 ALT1 BIDIR>;
					};
				};
			};

			fsm {
				pinctrl_fsm: fsm {
					st,pins {
						spi-fsm-clk  = <&pio12 2 ALT1 OUT>;
						spi-fsm-cs   = <&pio12 3 ALT1 OUT>;
						spi-fsm-mosi = <&pio12 4 ALT1 OUT>;
						spi-fsm-miso = <&pio12 5 ALT1 IN>;
						spi-fsm-hol  = <&pio12 6 ALT1 OUT>;
						spi-fsm-wp   = <&pio12 7 ALT1 OUT>;
					};
				};
			};
		};

		pin-controller-rear {
			#address-cells	= <1>;
			#size-cells	= <1>;
			compatible	= "st,stih416-rear-pinctrl";
			st,syscfg	= <&syscfg_rear>;
			reg 		= <0xfe82f080 0x4>;
			reg-names	= "irqmux";
			interrupts 	= <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names	= "irqmux";
			ranges 		= <0 0xfe820000 0x6000>;

			pio13: gpio@fe820000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0 0x100>;
				st,bank-name	= "PIO13";
			};
			pio14: gpio@fe821000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x1000 0x100>;
				st,bank-name	= "PIO14";
			};
			pio15: gpio@fe822000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x2000 0x100>;
				st,bank-name	= "PIO15";
			};
			pio16: gpio@fe823000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x3000 0x100>;
				st,bank-name	= "PIO16";
			};
			pio17: gpio@fe824000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x4000 0x100>;
				st,bank-name	= "PIO17";
			};
			pio18: gpio@fe825000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x5000 0x100>;
				st,bank-name	= "PIO18";
				st,retime-pin-mask = <0xf>;
			};

			serial2 {
				pinctrl_serial2: serial2-0 {
					st,pins {
						tx	= <&pio17 4 ALT2 OUT>;
						rx	= <&pio17 5 ALT2 IN>;
					};
				};
			};

			gmac0 {
				pinctrl_mii0: mii0 {
					st,pins {
						mdint = <&pio13 6 ALT2 IN  BYPASS      0>;
						txen =  <&pio13 7 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
						txd0 =  <&pio14 0 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
						txd1 =  <&pio14 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
						txd2 =  <&pio14 2 ALT2 OUT SE_NICLK_IO 0 CLK_B>;
						txd3 =  <&pio14 3 ALT2 OUT SE_NICLK_IO 0 CLK_B>;

						txclk = <&pio15 0 ALT2 IN  NICLK       0 CLK_A>;
						txer =  <&pio15 1 ALT2 OUT SE_NICLK_IO 0 CLK_A>;
						crs = <&pio15 2 ALT2 IN  BYPASS 1000>;
						col = <&pio15 3 ALT2 IN  BYPASS 1000>;
						mdio= <&pio15 4 ALT2 OUT BYPASS 1500>;
						mdc = <&pio15 5 ALT2 OUT NICLK  0    CLK_B>;

						rxd0 =  <&pio16 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
						rxd1 =  <&pio16 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
						rxd2 =  <&pio16 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
						rxd3 =  <&pio16 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
						rxdv =  <&pio15 6 ALT2 IN SE_NICLK_IO 0 CLK_A>;
						rx_er = <&pio15 7 ALT2 IN SE_NICLK_IO 0 CLK_A>;
						rxclk = <&pio17 0 ALT2 IN NICLK 0 CLK_A>;
						phyclk = <&pio13 5 ALT2 OUT NICLK 0 CLK_B>;
					};
				};

				pinctrl_gmii0: gmii0 {
					st,pins {
						};
				};
				pinctrl_rgmii0: rgmii0 {
					st,pins {
						 phyclk = <&pio13  5 ALT4 OUT NICLK 0 CLK_B>;
						 txen = <&pio13 7 ALT2 OUT DE_IO 0 CLK_A>;
						 txd0  = <&pio14 0 ALT2 OUT DE_IO 500 CLK_A>;
						 txd1  = <&pio14 1 ALT2 OUT DE_IO 500 CLK_A>;
						 txd2  = <&pio14 2 ALT2 OUT DE_IO 500 CLK_B>;
						 txd3  = <&pio14 3 ALT2 OUT DE_IO 500 CLK_B>;
						 txclk = <&pio15 0 ALT2 IN NICLK 0 CLK_A>;

						 mdio = <&pio15 4 ALT2 OUT BYPASS 0>;
						 mdc = <&pio15 5 ALT2 OUT NICLK 0 CLK_B>;

						 rxdv = <&pio15 6 ALT2 IN DE_IO 500 CLK_A>;
						 rxd0 =<&pio16 0 ALT2 IN DE_IO	500 CLK_A>;
						 rxd1 =<&pio16 1 ALT2 IN DE_IO	500 CLK_A>;
						 rxd2 =<&pio16 2 ALT2 IN DE_IO	500 CLK_A>;
						 rxd3  =<&pio16 3 ALT2 IN DE_IO 500 CLK_A>;
						 rxclk =<&pio17 0 ALT2 IN NICLK 0 CLK_A>;

						 clk125=<&pio17 6 ALT1 IN NICLK 0 CLK_A>;
					};
				};
			};

			mmc0 {
				pinctrl_mmc0: mmc0 {
					st,pins {
						mmcclk  = <&pio13 4 ALT4 BIDIR_PU NICLK 0 CLK_B>;
						data0   = <&pio14 4 ALT4 BIDIR_PU BYPASS 0>;
						data1   = <&pio14 5 ALT4 BIDIR_PU BYPASS 0>;
						data2   = <&pio14 6 ALT4 BIDIR_PU BYPASS 0>;
						data3   = <&pio14 7 ALT4 BIDIR_PU BYPASS 0>;
						cmd     = <&pio15 1 ALT4 BIDIR_PU BYPASS 0>;
						wp      = <&pio15 3 ALT4 IN>;
						data4   = <&pio16 4 ALT4 BIDIR_PU BYPASS 0>;
						data5   = <&pio16 5 ALT4 BIDIR_PU BYPASS 0>;
						data6   = <&pio16 6 ALT4 BIDIR_PU BYPASS 0>;
						data7   = <&pio16 7 ALT4 BIDIR_PU BYPASS 0>;
						pwr     = <&pio17 1 ALT4 OUT>;
						cd      = <&pio17 2 ALT4 IN>;
						led     = <&pio17 3 ALT4 OUT>;
					};
				};
			};
			mmc1 {
				pinctrl_mmc1: mmc1 {
					st,pins {
						mmcclk  = <&pio15 0 ALT3 BIDIR_PU NICLK 0 CLK_B>;
						data0   = <&pio13 7 ALT3 BIDIR_PU BYPASS 0>;
						data1   = <&pio14 1 ALT3 BIDIR_PU BYPASS 0>;
						data2   = <&pio14 2 ALT3 BIDIR_PU BYPASS 0>;
						data3   = <&pio14 3 ALT3 BIDIR_PU BYPASS 0>;
						cmd     = <&pio15 4 ALT3 BIDIR_PU BYPASS 0>;
						data4   = <&pio15 6 ALT3 BIDIR_PU BYPASS 0>;
						data5   = <&pio15 7 ALT3 BIDIR_PU BYPASS 0>;
						data6   = <&pio16 0 ALT3 BIDIR_PU BYPASS 0>;
						data7   = <&pio16 1 ALT3 BIDIR_PU BYPASS 0>;
						pwr     = <&pio16 2 ALT3 OUT>;
						nreset  = <&pio13 6 ALT3 OUT>;
					};
				};
			};

			usb {
				pinctrl_usb1: usb1 {
					st,pins {
						oc-detect = <&pio18 0 ALT1 IN>;
						pwr-enable = <&pio18 1 ALT1 OUT>;
					};
				};
				pinctrl_usb2: usb2 {
					st,pins {
						oc-detect = <&pio18 2 ALT1 IN>;
						pwr-enable = <&pio18 3 ALT1 OUT>;
					};
				};
			};

			pwm0 {
				pinctrl_pwm0_chan1_default: pwm0-1-default {
					st,pins {
						pwm-out    = <&pio13 2 ALT2 OUT>;
						pwm-capturein = <&pio13 1 ALT2 IN>;
					};
				};
				pinctrl_pwm0_chan2_default: pwm0-2-default {
					st,pins {
						pwm-out    = <&pio15 2 ALT4 OUT>;
					};
				};
				pinctrl_pwm0_chan3_default: pwm0-3-default {
					st,pins {
						pwm-out    = <&pio17 4 ALT1 OUT>;
					};
				};
			};

		};

		pin-controller-fvdp-fe {
			#address-cells	= <1>;
			#size-cells	= <1>;
			compatible	= "st,stih416-fvdp-fe-pinctrl";
			st,syscfg	= <&syscfg_fvdp_fe>;
			reg 		= <0xfd6bf080 0x4>;
			reg-names	= "irqmux";
			interrupts 	= <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names	= "irqmux";
			ranges		= <0 0xfd6b0000 0x3000>;

			pio100: gpio@fd6b0000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0 0x100>;
				st,bank-name	= "PIO100";
			};
			pio101: gpio@fd6b1000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x1000 0x100>;
				st,bank-name	= "PIO101";
			};
			pio102: gpio@fd6b2000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x2000 0x100>;
				st,bank-name	= "PIO102";
			};
		};

		pin-controller-fvdp-lite {
			#address-cells	= <1>;
			#size-cells	= <1>;
			compatible	= "st,stih416-fvdp-lite-pinctrl";
			st,syscfg		= <&syscfg_fvdp_lite>;
			reg 		= <0xfd33f080 0x4>;
			reg-names	= "irqmux";
			interrupts 	= <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names	= "irqmux";
			ranges			= <0 0xfd330000 0x5000>;

			pio103: gpio@fd330000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0 0x100>;
				st,bank-name	= "PIO103";
			};
			pio104: gpio@fd331000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x1000 0x100>;
				st,bank-name	= "PIO104";
			};
			pio105: gpio@fd332000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x2000 0x100>;
				st,bank-name	= "PIO105";
			};
			pio106: gpio@fd333000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x3000 0x100>;
				st,bank-name	= "PIO106";
			};

			pio107: gpio@fd334000 {
				gpio-controller;
				#gpio-cells	= <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				reg		= <0x4000 0x100>;
				st,bank-name	= "PIO107";
				st,retime-pin-mask = <0xf>;
			};
		};
	};
};
