ralink: add pinctrl driver
authorJohn Crispin <john@openwrt.org>
Tue, 17 Sep 2013 21:45:44 +0000 (21:45 +0000)
committerJohn Crispin <john@openwrt.org>
Tue, 17 Sep 2013 21:45:44 +0000 (21:45 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 38026

96 files changed:
target/linux/ramips/dts/3G-6200N.dts
target/linux/ramips/dts/3G-6200NL.dts
target/linux/ramips/dts/3G300M.dts
target/linux/ramips/dts/AIR3GII.dts
target/linux/ramips/dts/ALL0239-3G.dts
target/linux/ramips/dts/ALL0256N-4M.dts
target/linux/ramips/dts/ALL0256N-8M.dts
target/linux/ramips/dts/ALL5002.dts
target/linux/ramips/dts/ALL5003.dts
target/linux/ramips/dts/ARGUS_ATP52B.dts
target/linux/ramips/dts/ASL26555-16M.dts
target/linux/ramips/dts/ASL26555-8M.dts
target/linux/ramips/dts/AWM002-4M.dtsi
target/linux/ramips/dts/AWM002-8M.dtsi
target/linux/ramips/dts/AWM002.dtsi
target/linux/ramips/dts/BC2.dts
target/linux/ramips/dts/BR-6425.dts
target/linux/ramips/dts/BROADWAY.dts
target/linux/ramips/dts/CARAMBOLA.dts
target/linux/ramips/dts/D105.dts
target/linux/ramips/dts/DAP-1350.dts
target/linux/ramips/dts/DIR-300-B1.dts
target/linux/ramips/dts/DIR-600-B1.dts
target/linux/ramips/dts/DIR-600-B2.dts
target/linux/ramips/dts/DIR-610-A1.dts
target/linux/ramips/dts/DIR-615-D.dts
target/linux/ramips/dts/DIR-615-H1.dts
target/linux/ramips/dts/DIR-620-A1.dts
target/linux/ramips/dts/DIR-620-D1.dts
target/linux/ramips/dts/DIR-645.dts
target/linux/ramips/dts/DIR-810L.dts
target/linux/ramips/dts/ESR-9753.dts
target/linux/ramips/dts/F5D8235_V1.dts
target/linux/ramips/dts/F5D8235_V2.dts
target/linux/ramips/dts/F7C027.dts
target/linux/ramips/dts/FONERA20N.dts
target/linux/ramips/dts/FREESTATION5.dts
target/linux/ramips/dts/HG255D.dts
target/linux/ramips/dts/HW550-3G.dts
target/linux/ramips/dts/IP2202.dts
target/linux/ramips/dts/M3.dts
target/linux/ramips/dts/M4-4M.dts
target/linux/ramips/dts/M4-8M.dts
target/linux/ramips/dts/MOFI3500-3GN.dts
target/linux/ramips/dts/MPRA1.dts
target/linux/ramips/dts/MPRA2.dts
target/linux/ramips/dts/MT7620a.dts
target/linux/ramips/dts/MT7620a_MT7610e.dts
target/linux/ramips/dts/MZK-W300NH2.dts
target/linux/ramips/dts/NBG-419N.dts
target/linux/ramips/dts/NW718.dts
target/linux/ramips/dts/OMNI-EMB-HPM.dts
target/linux/ramips/dts/OMNI-EMB.dts
target/linux/ramips/dts/PSR-680W.dts
target/linux/ramips/dts/PWH2004.dts
target/linux/ramips/dts/RP-N53.dts
target/linux/ramips/dts/RT-G32-B1.dts
target/linux/ramips/dts/RT-N10-PLUS.dts
target/linux/ramips/dts/RT-N13U.dts
target/linux/ramips/dts/RT-N15.dts
target/linux/ramips/dts/RTN56U.dts
target/linux/ramips/dts/SL-R7205.dts
target/linux/ramips/dts/TEW-691GR.dts
target/linux/ramips/dts/TEW-692GR.dts
target/linux/ramips/dts/UR-326N4G.dts
target/linux/ramips/dts/UR-336UN.dts
target/linux/ramips/dts/V11STFE.dts
target/linux/ramips/dts/V22RW-2X2.dts
target/linux/ramips/dts/W150M.dts
target/linux/ramips/dts/W306R_V20.dts
target/linux/ramips/dts/W502U.dts
target/linux/ramips/dts/WCR150GN.dts
target/linux/ramips/dts/WHR-G300N.dts
target/linux/ramips/dts/WL-351.dts
target/linux/ramips/dts/WL341V3.dts
target/linux/ramips/dts/WLI-TX4-AG300N.dts
target/linux/ramips/dts/WL_330N.dts
target/linux/ramips/dts/WL_330N3G.dts
target/linux/ramips/dts/WNCE2001.dts
target/linux/ramips/dts/WR512-3GN-4M.dts
target/linux/ramips/dts/WR512-3GN-8M.dts
target/linux/ramips/dts/WR6202.dts
target/linux/ramips/dts/X5.dts
target/linux/ramips/dts/X8.dts
target/linux/ramips/dts/XDXRN502J.dts
target/linux/ramips/dts/mt7620a.dtsi
target/linux/ramips/dts/rt3050.dtsi
target/linux/ramips/dts/rt3352.dtsi
target/linux/ramips/dts/rt3883.dtsi
target/linux/ramips/dts/rt5350.dtsi
target/linux/ramips/mt7620a/config-3.10
target/linux/ramips/patches-3.10/0006-GPIO-MIPS-ralink-add-gpio-driver-for-ralink-SoC.patch
target/linux/ramips/patches-3.10/0101-MIPS-ralink-add-pinmux-driver.patch [deleted file]
target/linux/ramips/patches-3.10/0122-pinmux.patch [new file with mode: 0644]
target/linux/ramips/rt305x/config-3.10
target/linux/ramips/rt3883/config-3.10

index 9f600276e6a3cab0ed886407741a20f0f33ea9e4..dc342439cea2b36ee54c09885321ec978cb994ea 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "3G-6200N", "ralink,rt3050-soc";
        model = "Edimax 3g-6200n";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 0dca09874db0ed05b7983b25c888244c7655084b..265806154a81082b0caf76d7a01d7434b43a9787 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "3G-6200N", "ralink,rt3050-soc";
        model = "Edimax 3g-6200n";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index c4d6a5d7d0f56a20292448ac742101556cf2bd3e..62683cc16d971bbe0cd0e8392aef179891883a74 100644 (file)
@@ -7,17 +7,6 @@
        model = "Tenda 3G300M";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
+       };
+
        gpio-leds {
                compatible = "gpio-leds";
                3grouter {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index f375a7450bf3334968837a0713bbf832b1ce3aa2..f9fcf075e34e001c91740910267a40d58f501784 100644 (file)
@@ -7,12 +7,6 @@
        model = "AirLive Air3GII";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
@@ -85,8 +83,4 @@
                        linux,code = <0x211>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 023ccd2fa16bbc4c45aa2447c3f3760c5cd6715b..335aea85b38c4ca617fa52469ffe1a2c80fe51e5 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "ALL0239-3G", "ralink,rt3052-soc";
        model = "Allnet ALL0239-3G";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
                status = "okay";
                ralink,portmap = <0x3e>;
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 58248833cd99eb78a1f077422db0b77baf4c0823..7351675b6520e3120da0ec0315a1d6135bf77831 100644 (file)
@@ -7,12 +7,6 @@
        model = "Allnet ALL0256N";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
        };
 
@@ -89,8 +87,4 @@
                        linux,code = <0x198>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 974a4bd4657b7da7f7e76709a21418462e71bf41..8c825a9154f28c8716ec64691df7747c66e6f244 100644 (file)
@@ -7,12 +7,6 @@
        model = "Allnet ALL0256N";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
        };
 
@@ -89,8 +87,4 @@
                        linux,code = <0x198>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 636b74c746a905e4112162913a2cf3977ae64aa4..60c9c1fc44a8d948dd4a3345c7cf6053406eb8a3 100644 (file)
@@ -7,13 +7,6 @@
        model = "Allnet ALL5002";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index b1f28ce61ba80b5a5cfa256dab04fb0ba8c3427a..d599e71efc1a6a0b1f826e96688302d8988e056a 100644 (file)
@@ -7,13 +7,6 @@
        model = "Allnet ALL5003";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index b5c94a5f341e049b51dcb18676a8b9704a1e037d..b8e246bb03bda6b00ab96c60e0b88dc9c6b1ee1a 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "ARGUS_ATP52B", "ralink,rt3052-soc";
        model = "Argus ATP-52B";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index e9477b47d07b85982e35b1e36e9bbe4a2291ac12..8bc98df160612599dc28b7dc064a41ced1beb96a 100644 (file)
@@ -7,13 +7,6 @@
        model = "Alpha ASL26555";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "mdio", "uartlite", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x1e>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 0a403c195c9d78301cffb4c3b08fe340c504ac94..f1501ebf11097441e6999ba6d3894761bcb6a5f3 100644 (file)
@@ -7,13 +7,6 @@
        model = "Alpha ASL26555";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "mdio", "uartlite", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x1e>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 614b9984d8a005e630367df1dfcfa2f315895c4c..2f6a01728fff2cc88dd0c33234a662c40c33685e 100644 (file)
@@ -5,7 +5,6 @@
        model = "AsiaRF AWM002";
 
        palmbus@10000000 {
-
                spi@b00 {
                        m25p80@0 {
                                compatible = "mx25l3205d";
index a72ca95d072bf27d26468fd7ea92c3bc03f2f57f..d8e4c286901fee04fb2465f3d38a7d26da10689a 100644 (file)
@@ -5,7 +5,6 @@
        model = "AsiaRF AWM002";
 
        palmbus@10000000 {
-
                spi@b00 {
                        m25p80@0 {
                                compatible = "mx25l6405d";
index 671dcff05ab7b1a21bbb6f90c16113371910c3ae..e1579b540a7e9b5635bb97d8884726f73913e463 100644 (file)
@@ -5,17 +5,6 @@
        model = "AsiaRF AWM002";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index 8b97169acec8343910e790fd572b357b690e69bd..8877743d98f850ddeb73f5bc5b069e66621d1543 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "BC2", "ralink,rt3052-soc";
        model = "NexAira BC2";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 7529b6b6e5dcbe719a973aa2915050c36603be21..913df051af39ef3909d96fec53a925760c8d5098 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "BR-6425", "ralink,rt3052-soc";
        model = "Edimax BR-6425";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                #size-cells = <1>;
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
@@ -66,8 +57,4 @@
                        linux,code = <0xf7>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index a24d829a70babd0c46ad9f0059780e992210d553..3f00ad75be630907b824b79877d32ad24ed9c6b9 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "BROADWAY", "ralink,rt3052-soc";
        model = "Hauppauge Broadway";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 68048edcf214718b7254ea4ca1530826c7643a8e..5c63e0315a29d089e383da47ddc1d6bc9141aa97 100644 (file)
                bootargs = "console=ttyS0,115200";
        };
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c", "spi", "jtag", "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 9b1df68a1be67fe28a7ad707c9c4a62bf26f42d8..c4171c003d481334894d7c4d560b414c90e69090 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "D105", "ralink,rt3050-soc";
        model = "Huawei D105";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 4eab53abe53bab37015b5c101b99261421baa173..1fd9e9a7e525566fd401246e727bf8b457f9dadf 100644 (file)
                bootargs = "console=ttyS0,115200";
        };
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 0297b8cf929680a61e5ce7d6af78ced036a3b1ca..8efef3c0d9ff35b1f8242570574f7fe4f14125fe 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "DIR-300-B1", "ralink,rt3050-soc";
        model = "D-Link DIR-300 B1";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        gpio-leds {
                compatible = "gpio-leds";
                status {
index 5d78538b0565ab98dc5d6ea7727255bcf9f76bd8..2c75465440f21ac1ccf12a4e49990351d206ab9f 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "DIR-600-B1", "ralink,rt3050-soc";
        model = "D-Link DIR-600 B1";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        gpio-leds {
                compatible = "gpio-leds";
                status {
index ff15ac843991e2081313c901c577619d8e6a8a76..f982ae0db70f7855bfd3090b7549c965ccd3f839 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "DIR-600-B2", "ralink,rt3050-soc";
        model = "D-Link DIR-600 B2";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        gpio-leds {
                compatible = "gpio-leds";
                status {
index ed5606af89a0931ecb0c6ed9cfe793e2775eb39b..26caf5f67fadcaf56ed362a5b0190439475a2063 100644 (file)
@@ -7,16 +7,6 @@
        model = "D-Link DIR-610 A1";
        
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "jtag", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x1f>;
                ralink,led-polarity = <0>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&phy_led_pins>;
        };
 
        gpio-leds {
@@ -93,8 +90,4 @@
                        };
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 21de0e8cc8f59415e9322ff6d75d09be2e7b66a5..b27bca061bc851e32d10f0559b7b2f18e7242be9 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "DIR-615-D", "ralink,rt3050-soc";
        model = "D-Link DIR-615 D";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        gpio-leds {
                compatible = "gpio-leds";
                status {
index 15adcfe72f334bec3c696813f0f46d4b8f587053..5cb2beb3e8779f8bf518e99e44bd5a0b619c37e1 100644 (file)
@@ -7,16 +7,6 @@
        model = "D-Link DIR-615 H1";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+                       rgmii {
+                               ralink,group = "rgmii";
+                               ralink,function = "rgmii";
+                       };
+                       mdio {
+                               ralink,group = "mdio";
+                               ralink,function = "mdio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                        linux,code = <0x211>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 87292246e79b2a5d69b9fd09736f96939bbe346a..649b3abcc16bf4c72936688a565a77162c88bb39 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "DIR-620-A1", "ralink,rt3050-soc";
        model = "D-Link DIR-620 A1";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        gpio-leds {
                compatible = "gpio-leds";
                status {
index c1df99d54990de769db8f7dfcbf4b77d8d4f7449..71d3ec2bfdbf7a185ec27e5a669ef2d73ce603d9 100644 (file)
@@ -7,17 +7,6 @@
        model = "D-Link DIR-620 D1";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+                       rgmii {
+                               ralink,group = "rgmii";
+                               ralink,function = "rgmii";
+                       };
+                       mdio {
+                               ralink,group = "mdio";
+                               ralink,function = "mdio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index e5ccb40ec6bd4ae65a452d1fa00e77b8f4697b15..938055c8c99cc66e65c2008d7f23e25b53358ce3 100644 (file)
@@ -7,21 +7,6 @@
        model = "D-Link DIR-645";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite", "spi";
-                       ralink,gpiomux = "i2c", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               timer@100 {
-                       status = "okay";
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                gpio1: gpio@638 {
                        status = "okay";
                };
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
+       };
 
+       ethernet@10100000 {
                mtd-mac-address = <&factory 0x28>;
                port@0 {
                        ralink,fixed-link = <1000 1 1 0>;
                };
-
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,5ghz = <0>;
        };
 
index 193771b5a6807464c88ee53895dae198ef764513..6da0976c2b723c5d2bd52731fb23528d85008f33 100644 (file)
@@ -7,17 +7,6 @@
        model = "D-Link DIR-810L";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "ephy";
-                       ralink,gpiomux = "jtag", "mdio", "rgmii1", "rgmii1", "i2c", "wled";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "jtag", "mdio", "rgmii1", "rgmii1", "i2c", "wled", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        gsw@10110000 {
-               status = "okay";
                ralink,port4 = "ephy";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ephy_pins>;
        };
 
        pcie@10140000 {
index 5c5f0bbbe810d6f6a9399bf94414c92307c2fff9..755196b55bc5dcc78381937bca7a22a5deb04816 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "ESR-9753", "ralink,rt3052-soc";
        model = "Senao / EnGenius ESR-9753";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 52b789b76c520347914506640e1b9a4898732268..36026c2326f5c669e150d2a33cad42b713bfb5a5 100644 (file)
@@ -9,18 +9,20 @@
        model = "Belkin F5D8235 v1";
 
        palmbus@300000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite";
-                       ralink,gpiomux = "i2c";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
                gpio0: gpio@600 {
                        status = "okay";
                };
        };
 
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
+       };
+
        cfi@1f000000 {
                compatible = "cfi-flash";
                reg = <0x1f000000 0x800000>;
index 10b8037810590b59b844bf9b14b1d4a6e857648b..237709f5e4882e05ad04a77b99b05edfa412c588 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "F5D8235_V2", "ralink,rt3052-soc";
        model = "Belkin F5D8235 v2";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c", "spi", "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 91d43838125be781f251f6aef3c59bc42726b35f..ea716257efd0c6fbdf6c3689e4aae56ea7e37efc 100644 (file)
@@ -7,16 +7,6 @@
        model = "Belkin F7C027";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "jtag", "sdram";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-
-       wmac@10180000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        gpio-leds {
index 38007a7bc907c043e0afb71f7f636f24afa0c9e7..31e087b5fc34d84c148feba4b58fabe2a058b192 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "FONERA20N", "ralink,rt3052-soc";
        model = "La Fonera 2.0N";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "spi", "jtag", "mdio", "rgmii", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
 
                port@0 {
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index a3cc8fc97dac72cf2a40fa9ff37aa4d8d9a0bc9c..0ec390c4c8dcafe7089d7890e67fcd63ee9aca43 100644 (file)
                bootargs = "console=ttyS0,115200";
        };
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x01>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 7ecb4f36df2c59272085da5b22718502a2b8b9f3..09d7a45105ff9cda1ed27678a39933b127a96e2b 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "HG255D", "ralink,rt3052-soc";
        model = "HuaWei HG255D";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 80adb0af39b099a4398cf51182f73aa09f8a7d16..d107b55396f058364c634ea45edc5fc47b7c865f 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "HW550-3G", "ralink,rt3052-soc";
        model = "Aztech HW550-3G";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index ea9f1702e6be6be24b39c7d07ae129b9200874fb..ea5dc780a37738b5031551fcba1ad814eab975a1 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "IP2202", "ralink,rt3052-soc";
        model = "Poray IP2202";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-               ralink,led-polarity = <0>;
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 3e391b3d628470cf4b62bef9abd691f959684f6e..bae84ce4bfdd77af8cb0899be0526a1987bde9d0 100644 (file)
@@ -7,17 +7,6 @@
        model = "Poray M3";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
                ralink,led_polarity = <1>;
        };
@@ -91,7 +84,6 @@
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,mtd-eeprom = <&factory 0>;
                ralink,led-polarity = <1>;
        };
index 86bd8327c1fb71e4fa0eaf4b433cb2a5ab48dd24..4522fb8019dab62d84b9345e94721eac442fb6ad 100644 (file)
@@ -7,16 +7,6 @@
        model = "Poray M4";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
                ralink,led_polarity = <1>;
        };
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-               ralink,mtd-eeprom = <&factory 0>;
-               ralink,led-polarity = <1>;
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index d07eb4978a46722349ae04be5ea3a895a88c5fcf..c8e7ff51ff2966e21181af3958fac2b6c1a977ef 100644 (file)
@@ -7,16 +7,6 @@
        model = "Poray M4";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
                ralink,led_polarity = <1>;
        };
@@ -84,7 +78,6 @@
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,mtd-eeprom = <&factory 0>;
                ralink,led-polarity = <1>;
        };
index 80cd727463b0324278d1df0d9900a85000aac0a1..058b7a27a3c6916fac1eba6a068c913bd8b4b605 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "MOFI3500-3GN", "ralink,rt3052-soc";
        model = "MoFi Network MOFI3500-3GN";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
index 44363ef616e8c278e30a8fd4b6af9baec2327037..f363a573f5da4b6d459a9f2a48f3c501356d5b67 100644 (file)
@@ -7,17 +7,6 @@
        model = "HAME MPR-A1";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "sdram";
-                       ralink,gpiomux = "jtag", "i2c", "mdio", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index b9bfdc8d4d703f5871724ed658bdac00eacb4955..00c5d112e3529f1222b8a7e6be08d2e1574857f8 100644 (file)
@@ -7,17 +7,6 @@
        model = "HAME MPR-A2";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index 417370080d003ed2ac4a81d354a3610b719a4ef3..a14d6829127b03728d547fccb059792e5a15fc0e 100644 (file)
@@ -7,17 +7,6 @@
        model = "Ralink MT7620a + MT7610e evaluation board";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "mdio", "wled", "ephy", "rgmii1", "rgmii2";
-                       ralink,gpiomux = "i2c", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                
                };
        };
 
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "jtag", "mdio", "rgmii1", "rgmii1", "i2c", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
+       };
+
        ethernet@10100000 {
                status = "okay";
                
        };
 
        gsw@10110000 {
-               status = "okay";
                ralink,port4 = "gmac";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ephy_pins>;
        };
 
        sdhci@10130000 {
index 03b8043dd17030faa6cf0a2b80cd703c8e29d78b..4ff874756213a5e1771a22714e76f958c5654854 100644 (file)
@@ -6,10 +6,8 @@
        compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc";
        model = "Ralink MT7620A evaluation board";
 
-
        palmbus@10000000 {
                sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "mdio", "wled", "ephy", "rgmii1", "rgmii2";
                        ralink,gpiomux = "i2c", "jtag";
                        ralink,uartmux = "gpio";
                        ralink,wdtmux = <1>;
@@ -28,7 +26,7 @@
                                compatible = "en25q64";
                                reg = <0 0>;
                                linux,modalias = "m25p80", "en25q64";
-                               spi-max-frequency = <10000000>;
+                               spi-max-frequency = <1000000>;
 
                                partition@0 {
                                        label = "u-boot";
@@ -58,6 +56,9 @@
 
        ethernet@10100000 {
                status = "okay";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ephy_pins>;
        };
 
        gsw@10110000 {
index 29032b450f99ead98aab886936fc74791e12fafb..78c120a5bf6e64e67021fb9565ebb022e66d75bb 100644 (file)
@@ -6,16 +6,12 @@
        compatible = "MZK-W300NH2", "ralink,rt3052-soc";
        model = "Planex MZK-W300NH2";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c", "spi", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                        linux,code = <0x100>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 6948120058954e0aa5363ea171fdbc6841045665..c7d66c410ef4d537bfed8d46060347153a743a16 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "NBG-419N", "ralink,rt3052-soc";
        model = "ZyXEL NBG-419N";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
@@ -88,8 +80,4 @@
                        linux,code = <0x211>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 78ad1d63a83c8c1025ae04c6b8407590186ce58e..d55f226785dd3a81051873aafb272f1c1dd19245 100644 (file)
@@ -7,17 +7,6 @@
        model = "Netcore NW718";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 8148294893bdacc3553edfc26384ecb4a25fd53b..9bceb001284b2217c4320b0eba79941340fed6ba 100644 (file)
        };
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite", "spi";
-                       ralink,gpiomux = "i2c", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               timer@100 {
-                       status = "okay";
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
+       };
 
+       ethernet@10100000 {
                phy-handle = <&phy0>;
                phy-mode = "rgmii";
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        ehci@101c0000 {
                status = "okay";
        };
index 704a5a1665ba523fa1198829d4e203f4677bc669..146e79b2452e84be1fe71712e33d813af879c741 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "OMNI-EMB", "ralink,rt3052-soc";
        model = "Omnima MiniEMBWiFi";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index f91eb2fe7f725e08f1e49fad778b552a13d8edb4..ec06feee0c71d8792f67744ecae45e504f640328 100644 (file)
                bootargs = "console=ttyS0,115200";
        };
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "uartlite", "sdram";
-                       ralink,gpiomux = "spi", "jtag", "mdio", "rgmii";
-                       ralink,uartmux = "i2s uartf";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index d526e836db441ddce0770086a4b443665b1f70dc..bee5e0f266c55fa328bd5886541d928653b01159 100644 (file)
@@ -6,17 +6,13 @@
        compatible = "PWH2004", "ralink,rt3052-soc";
        model = "Prolink PWH2004";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index c1de10542332453884c87a5bef7dcf2f6bc3c70b..e13c3af194a9301f410de488d5e09cca8634387b 100644 (file)
@@ -7,17 +7,6 @@
        model = "Asus RP-N53";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "wled", "ephy", "i2c";
-                       ralink,gpiomux = "jtag", "mdio", "rgmii1", "rgmii1";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                gpio1: gpio@638 {
                        status = "okay";
                };
                };
        };
 
-       codec {
-               compatible = "ralink,mt7620-audio";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "jtag", "mdio", "rgmii1", "rgmii1", "i2c", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       codec {
+               compatible = "ralink,mt7620-audio";
        };
 
        gsw@10110000 {
-               status = "okay";
                ralink,port4 = "ephy";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ephy_pins>;
        };
 
        pcie@10140000 {
index c03a7ba5b7e760a54eda36888dc5b43dabeadb27..86abc9ca6688b57bfb878fae90de2fd26f10a351 100644 (file)
@@ -7,16 +7,6 @@
        model = "Asus RT-G32 B1";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
@@ -78,8 +72,4 @@
                        linux,code = <0x211>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 2f070b74190868fe0b676971ad32e1d1983857cf..0606ccb2453dfe9ae840bb6d2e14de6d9e641587 100644 (file)
@@ -6,18 +6,6 @@
        compatible = "RT-N10-PLUS", "ralink,rt3050-soc";
        model = "Asus RT-N10+";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-       };
-
        cfi@1f000000 {
                compatible = "cfi-flash";
                reg = <0x1f000000 0x800000>;
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
@@ -84,8 +67,4 @@
                        linux,code = <0x211>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 2e1a62cdc2e17e094ca5ceaad4300fb52b562844..b6a649ccdb6e0fa6a1db193b6b4685d327023c70 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "RT-N13U", "ralink,rt3052-soc";
        model = "Asus RT-N13U";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 8351449ea1051e287b4a7c2175dc1f5e295f1611..0b9d0d9f543aadc966221af427e3ab899317c455 100644 (file)
                };
        };
 
-       wmac@480000 {
-               status = "okay";
-       };
-
        rtl8366s {
                compatible = "realtek,rtl8366s";
                gpio-sda = <&gpio0 1 0>;
index 9c36af5721a26104cacfa30b52fcd0845a5bd79e..6dfe3f480d47cf6fef5156271786c1b3010bc968 100644 (file)
@@ -7,30 +7,21 @@
        model = "Asus RT-N56U";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite";
-                       ralink,gpiomux = "i2c", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,pcimux = "pci-fnc";
-                       ralink,wdtmux = <0>;
-               };
-
-               timer@100 {
-                       status = "okay";
-               };
-
-               gpio0: gpio@600 {
+               gpio1: gpio@638 {
                        status = "okay";
                };
+       };
 
-               gpio1: gpio@638 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
        ethernet@10100000 {
-               status = "okay";
-
                 port@0 {
                        ralink,fixed-link = <1000 1 1 1>;
                };
        pci@10140000 {
                status = "okay";
 
+               pinctrl-names = "default";
+               pinctrl-0 = <&pci_pins>;
+               pci_pins: pci {
+                       pci {
+                               ralink,group = "pci";
+                               ralink,function = "pci-fnc";
+                       };
+               };
+
                host-bridge {
                        pci-bridge@1 {
                                status = "okay";
@@ -47,7 +47,6 @@
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,2ghz = <0>;
        };
 
index 8f1fe851f2a84b15d416dc36b2171d17b7cc6b2d..589fd10fa2d3fef5fa5719cc79d42b174dfe379c 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "SL-R7205", "ralink,rt3052-soc";
        model = "Skyline SL-R7205 Wireless 3G Router";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 002719583b13ad426d9ed455173e6687a6513c96..98d45fc530358e4d9bca7110e00be1f7d1f99182 100644 (file)
@@ -7,29 +7,21 @@
        model = "TRENDnet TEW-691GR";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite";
-                       ralink,gpiomux = "i2c", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,pcimux = "pci-fnc";
-                       ralink,wdtmux = <1>;
-               };
-
-               timer@100 {
-                       status = "okay";
-               };
-
-               gpio0: gpio@600 {
+               gpio1: gpio@638 {
                        status = "okay";
                };
+       };
 
-               gpio1: gpio@638 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
        ethernet@10100000 {
-               status = "okay";
                port@0 {
                        phy-handle = <&phy0>;
                        phy-mode = "rgmii";
@@ -44,7 +36,6 @@
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,5ghz = <0>;
        };
 
index eee4b2af2d715920dce58bd00cf96d4d8d71f4b1..6c07c7760fbfca37f2d1e91914dd645334f734cd 100644 (file)
@@ -7,24 +7,17 @@
        model = "TRENDnet TEW-692GR";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite";
-                       ralink,gpiomux = "i2c", "jtag", "spi";
-                       ralink,uartmux = "gpio";
-                       ralink,pcimux = "pci-fnc";
-                       ralink,wdtmux = <1>;
-               };
-
-               timer@100 {
-                       status = "okay";
-               };
-
-               gpio0: gpio@600 {
+               gpio1: gpio@638 {
                        status = "okay";
                };
+       };
 
-               gpio1: gpio@638 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
        pci@10140000 {
                status = "okay";
 
+               pinctrl-names = "default";
+               pinctrl-0 = <&pci_pins>;
+               pci_pins: pci {
+                       pci {
+                               ralink,group = "pci";
+                               ralink,function = "pci-fnc";
+                       };
+               };
+
                host-bridge {
                        pci-bridge@1 {
                                status = "okay";
@@ -54,7 +56,6 @@
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,5ghz = <0>;
        };
 
index 6bb360d9d7525f32e3544cb5f796218cfac3e076..d97ca05ef9eb2ccb62102ebf322974a5d5bb1166 100644 (file)
@@ -6,16 +6,12 @@
        compatible = "UR-326N4G", "ralink,rt3052-soc";
        model = "UR-326N4G Wireless N router";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index a5c28412147e72d558017b54439bc67cf6c8863e..b1377036cced182bf6e7917fb6c0ed121847656b 100644 (file)
@@ -6,16 +6,12 @@
        compatible = "UR-336UN", "ralink,rt3052-soc";
        model = "UR-336UN Wireless N router";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                #size-cells = <1>;
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 20cbaea49ca81f12ea500558635e505de496357b..54ead081ddbe4afed770dff26e24c70598fea181 100644 (file)
                status = "okay";
        };
 
-       wmac@480000 {
-               status = "okay";
-       };
-
        pci@10140000 {
                status = "okay";
 
index a4f8c3c77f421e0f85fa952fc0b21538edad9797..99e748e78daafb31ad2fb37016deca0b633a4ee5 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "V22RW-2X2", "ralink,rt3052-soc";
        model = "Ralink AP-RT3052-V22RW-2X2";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 94f1960641df4820c2f252b374d88824f9678cde..76ad658437711ac7b8bc2d6906b5f4c0f2246675 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "3G300M", "ralink,rt3050-soc";
        model = "Tenda 3G300M";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii", "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index f5b3414442cd74ccc962e533826e3bac4414eb4f..16d9ad4c3a03a6058ac8bf8203228d47268e0cab 100644 (file)
                };
        };
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-       };
-
-       ethernet@10100000 {
-               status = "okay";
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
@@ -83,8 +75,4 @@
                        linux,code = <0x198>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 89ddc7940736f2181c7519a0b4588934a63f3320..54e8d58ed28a0a879569906259ac823539629742 100644 (file)
                bootargs = "console=ttyS0,115200";
        };
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 380af7d558989fb016be58d114887c26ff52489e..601883d24daa99791459404bee840dfbfc2c2f55 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "WCR150GN", "ralink,rt3052-soc";
        model = "Sparklan WCR-150GN";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index bd18f4cdfb610ee96b83b2b855a69cf5e5a09938..8cec31e03399955ed2f6bf7adb8105c73c876c61 100644 (file)
@@ -6,15 +6,12 @@
        compatible = "WHR-G300N", "ralink,rt3052-soc";
        model = "Buffalo WHR-G300N";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                #size-cells = <1>;
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
@@ -79,8 +71,4 @@
                        linux,code = <0x103>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index f9e0595f11f149aac4c9a905b1b9efbb75614da5..bc122943d4ce271762e98091c9dcc1886e15fd67 100644 (file)
@@ -6,18 +6,13 @@
        compatible = "WL-351", "ralink,rt3052-soc";
        model = "Sitecom WL-351 v1 002";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "i2c", "spi", "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        cfi@1f000000 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3f>;
                ralink,fct2 = <0x0002500c>;
                /*
                ralink,fpa2 = <0x1f003fff>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 09ef84495796fa2a6f77eb92564cbe952074e611..70317c7eeed5130cc8a6ff9419ef85d33bacc725 100644 (file)
@@ -6,18 +6,6 @@
        compatible = "WL341V3", "ralink,rt3052-soc";
        model = "Sitecom WL-341 v3";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-       };
-
        cfi@1f000000 {
                compatible = "cfi-flash";
                reg = <0x1f000000 0x800000>;
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 2296c3fc07bfb458052cf7687af6101ac148e245..62c2a799a63af9592f3c2bb7ecb6e1c429f65ba5 100644 (file)
                };
        };
 
-       wmac@480000 {
-               status = "okay";
-       };
-
        gpio-keys-polled {
                compatible = "gpio-keys-polled";
                #address-cells = <1>;
index 1063c1eaf8ff6c9c8e3df7a66cbec7f3f2599ab1..4fc4368c3fca57c4fafbecaca0ed3108fb572247 100644 (file)
@@ -7,16 +7,6 @@
        model = "Asus WL-330N";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
@@ -90,8 +84,4 @@
                        linux,code = <0x198>;
                };
        };
-
-       wmac@10180000 {
-               status = "okay";
-       };
 };
index 83e83fa2148bcb3caea5ffddd326250750b7fcc7..1c88ed31aa9c2664102a5a174412c14a8155d930 100644 (file)
@@ -7,16 +7,6 @@
        model = "Asus WL-330N3G";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 3e467a7b043c3ac9d8a0508e7746a4e973e9dca3..bbf6625bf6f5f12cca28f284bfc5a6dba756d617 100644 (file)
        };
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "spi", "uartlite", "jtag", "sdram";
-                       ralink,gpiomux = "i2c", "mdio", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
-       esw@10110000 {
-               status = "okay";
-       };
-
-       wmac@10180000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        gpio-leds {
index cef7464d459d118d77290b45e5c516cdd1b441c3..fccd04aed9c7ebee18672c196ecc46acaa13fb49 100644 (file)
@@ -6,16 +6,12 @@
        compatible = "WR512-3GN", "ralink,rt3052-soc";
        model = "WR512-3GN-like router";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 9325dbb877a960a419b8f048bf249c038726eae1..01da52340e492a3960c132f8e65426c4e62a6c0f 100644 (file)
@@ -6,16 +6,12 @@
        compatible = "WR512-3GN", "ralink,rt3052-soc";
        model = "WR512-3GN-like router";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index a970849e313821cece01eb96859db9278078c765..ed3e70851d9c4708b0b9b9a2ab5b00f298d18784 100644 (file)
                bootargs = "console=ttyS0,115200";
        };
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
        };
 
        gpio-leds {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index d9e963239fb99438fcf1ea8c5054383d0f31ad44..0a4f1b3684d4829ca9b1c51127a96439c49de9eb 100644 (file)
@@ -7,17 +7,6 @@
        model = "Poray X5";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
                ralink,led_polarity = <1>;
        };
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,mtd-eeprom = <&factory 0>;
                ralink,led-polarity = <1>;
        };
index e7b13ca63d9a4bf949013e64fb86c79e5903f9c3..b7591dec2017b9104ba2c58d8513bf08f6543c81 100644 (file)
@@ -7,17 +7,6 @@
        model = "Poray X8";
 
        palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "mdio", "sdram", "rgmii";
-                       ralink,gpiomux = "jtag";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
-               };
-
                spi@b00 {
                        status = "okay";
                        m25p80@0 {
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "i2c", "jtag", "uartf";
+                               ralink,function = "gpio";
+                       };
+               };
        };
 
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x2f>;
                ralink,led_polarity = <1>;
        };
@@ -85,7 +78,6 @@
        };
 
        wmac@10180000 {
-               status = "okay";
                ralink,mtd-eeprom = <&factory 0>;
                ralink,led-polarity = <1>;
        };
index 3df097cde71023362e2c7ab8a1057c1da859f11c..28670055fd380e120398bb46ff21738038c0a152 100644 (file)
@@ -6,16 +6,12 @@
        compatible = "XDXRN502J", "ralink,rt3052-soc";
        model = "XDX RN502J";
 
-       palmbus@10000000 {
-               sysc@0 {
-                       ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "sdram", "rgmii";
-                       ralink,gpiomux = "mdio";
-                       ralink,uartmux = "gpio";
-                       ralink,wdtmux = <1>;
-               };
-
-               gpio0: gpio@600 {
-                       status = "okay";
+       pinctrl {
+               state_default: pinctrl0 {
+                       gpio {
+                               ralink,group = "spi", "i2c", "jtag", "rgmii", "mdio", "uartf";
+                               ralink,function = "gpio";
+                       };
                };
        };
 
                };
        };
 
-       ethernet@10100000 {
-               status = "okay";
-       };
-
        esw@10110000 {
-               status = "okay";
                ralink,portmap = <0x3e>;
        };
 
                };
        };
 
-       wmac@10180000 {
-               status = "okay";
-       };
-
        otg@101c0000 {
                status = "okay";
        };
index 506155bd6f26816bb33f55abbbf86669883c4b19..418258254b136d258bcf0350b2afc9512d5d6097 100644 (file)
                        ralink,register-map = [ 00 04 08 0c
                                                20 24 28 2c
                                                30 34 ];
-
-                       status = "disabled";
                };
 
                gpio1: gpio@638 {
                        #size-cells = <0>;
 
                        status = "disabled";
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c_pins>;
                };
 
                i2s@a00 {
                        #size-cells = <1>;
 
                        status = "disabled";
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi_pins>;
                };
 
                uartlite@c00 {
                        interrupts = <12>;
 
                        reg-shift = <2>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uartlite_pins>;
                };
 
                systick@d00 {
                };
        };
 
+       pinctrl {
+               compatible = "ralink,rt2880-pinmux";
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+               state_default: pinctrl0 {
+               };
+               spi_pins: spi {
+                       spi {
+                               ralink,group = "spi";
+                               ralink,function = "spi";
+                       };
+               };
+               i2c_pins: i2c {
+                       i2c {
+                               lantiq,group = "i2c";
+                               lantiq,function = "i2c";
+                       };
+               };
+               uartlite_pins: uartlite {
+                       uart {
+                               ralink,group = "uartlite";
+                               ralink,function = "uartlite";
+                       };
+               };
+               mdio_pins: mdio {
+                       mdio {
+                               ralink,group = "mdio";
+                               ralink,function = "mdio";
+                       };
+               };
+               ephy_pins: ephy {
+                       ephy {
+                               ralink,group = "ephy";
+                               ralink,function = "ephy";
+                       };
+               };
+               wled_pins: wled {
+                       wled {
+                               ralink,group = "wled";
+                               ralink,function = "wled";
+                       };
+               };
+               rgmii1_pins: rgmii1 {
+                       mdio {
+                               ralink,group = "rgmii1";
+                               ralink,function = "rgmii1";
+                       };
+               };
+               rgmii2_pins: rgmii2 {
+                       mdio {
+                               ralink,group = "rgmii2";
+                               ralink,function = "rgmii2";
+                       };
+               };
+       };
+
        rstctrl: rstctrl {
                compatible = "ralink,mt7620a-reset", "ralink,rt2880-reset";
                #reset-cells = <1>;
                interrupt-parent = <&cpuintc>;
                interrupts = <5>;
 
-               status = "disabled";
-       
                mdio-bus {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
                        status = "disabled";
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mdio_pins>;
                };
        };
 
 
                interrupt-parent = <&intc>;
                interrupts = <17>;
-
-               status = "disabled";
        };
 
        sdhci@10130000 {
index 1130005e78f20dddaf6f670feca8b1ac0c374edc..86a4d15476f9b159a60141f1cc7a043118dec844 100644 (file)
 
                        interrupt-parent = <&intc>;
                        interrupts = <6>;
-
-                       status = "disabled";
                };
 
                gpio1: gpio@638 {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi_pins>;
+
                        status = "disabled";
                };
 
                        interrupts = <12>;
 
                        reg-shift = <2>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uartlite_pins>;
+               };
+
+       };
+
+       pinctrl {
+               compatible = "ralink,rt2880-pinmux";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinctrl0 {
+                       sdram {
+                               ralink,group = "sdram";
+                               ralink,function = "sdram";
+                       };
                };
 
+               spi_pins: spi {
+                       spi {
+                               ralink,group = "spi";
+                               ralink,function = "spi";
+                       };
+               };
+               uartlite_pins: uartlite {
+                       uart {
+                               ralink,group = "uartlite";
+                               ralink,function = "uartlite";
+                       };
+               };
        };
 
        rstctrl: rstctrl {
 
                interrupt-parent = <&cpuintc>;
                interrupts = <5>;
-
-               status = "disabled";
        };
 
        esw@10110000 {
 
                interrupt-parent = <&intc>;
                interrupts = <17>;
-
-               status = "disabled";
        };
 
        wmac@10180000 {
                interrupts = <6>;
 
                ralink,eeprom = "soc_wmac.eeprom";
-
-               status = "disabled";
        };
 
        otg@101c0000 {
index e4d35d87c23fa566db37223b1a74b01c8ea9547e..db38b00e6353a2f255e34dbedb6bb4a272a8bc80 100644 (file)
 
                        interrupt-parent = <&intc>;
                        interrupts = <6>;
-
-                       status = "disabled";
                };
 
                gpio1: gpio@638 {
                        resets = <&rstctrl 18>;
                        reset-names = "spi";
        
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi_pins>;
+
                        status = "disabled";
                };
 
                        interrupts = <12>;
 
                        reg-shift = <2>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uartlite_pins>;
+               };
+       };
+
+       pinctrl {
+               compatible = "ralink,rt2880-pinmux";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinctrl0 {
+               };
+
+               spi_pins: spi {
+                       spi {
+                               ralink,group = "spi";
+                               ralink,function = "spi";
+                       };
+               };
+               uartlite_pins: uartlite {
+                       uart {
+                               ralink,group = "uartlite";
+                               ralink,function = "uartlite";
+                       };
                };
        };
 
 
                interrupt-parent = <&cpuintc>;
                interrupts = <5>;
-
-               status = "disabled";
        };
 
        esw@10110000 {
 
                interrupt-parent = <&intc>;
                interrupts = <17>;
-
-               status = "disabled";
        };
 
        wmac@10180000 {
                interrupts = <6>;
 
                ralink,eeprom = "soc_wmac.eeprom";
-
-               status = "disabled";
        };
 
        ehci@101c0000 {
index d4387a92d0e12151f62b3307e73b58354cf5e279..15c35612d5bc06d4f19dab043ad04909e0ef5a24 100644 (file)
                        ralink,register-map = [ 00 04 08 0c
                                                20 24 28 2c
                                                30 34 ];
-
-                       status = "disabled";
                };
 
                gpio1: gpio@638 {
                        resets = <&rstctrl 18>;
                        reset-names = "spi";
 
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi_pins>;
+
                        status = "disabled";
                };
 
                        interrupts = <12>;
 
                        reg-shift = <2>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uartlite_pins>;
+               };
+       };
+
+       pinctrl {
+               compatible = "ralink,rt2880-pinmux";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+               state_default: pinctrl0 {
+               };
+
+               spi_pins: spi {
+                       spi {
+                               ralink,group = "spi";
+                               ralink,function = "spi";
+                       };
+               };
+
+               uartlite_pins: uartlite {
+                       uart {
+                               ralink,group = "uartlite";
+                               ralink,function = "uartlite";
+                       };
                };
        };
 
                interrupt-parent = <&cpuintc>;
                interrupts = <5>;
 
-               status = "disabled";
-
                port@0 {
                        compatible = "ralink,rt3883-port", "ralink,eth-port";
                        reg = <0>;
                interrupts = <6>;
 
                ralink,eeprom = "soc_wmac.eeprom";
-
-               status = "disabled";
        };
 
        ehci@101c0000 {
index e132699da3a7e1a9a6f0cb71ebe29cff027ac157..cb9077f7b4a1f01f11e807096b79ad904bae23c9 100644 (file)
                        ralink,register-map = [ 00 04 08 0c
                                                20 24 28 2c
                                                30 34 ];
-
-                       status = "disabled";
                };
 
                gpio1: gpio@638 {
                        #address-cells = <1>;
                        #size-cells = <0>;
 
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&i2c_pins>;
+
                        status = "disabled";
                };
 
                        #address-cells = <1>;
                        #size-cells = <1>;
 
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&spi_pins>;
+
                        status = "disabled";
                };
 
                        interrupt-parent = <&intc>;
                        interrupts = <12>;
 
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uartlite_pins>;
+
                        reg-shift = <2>;
                };
 
                };
        };
 
+       pinctrl {
+               compatible = "ralink,rt2880-pinmux";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&state_default>;
+
+               state_default: pinctrl0 {
+               };
+
+               spi_pins: spi {
+                       spi {
+                               ralink,group = "spi";
+                               ralink,function = "spi";
+                       };
+               };
+               i2c_pins: i2c {
+                       i2c {
+                               ralink,group = "i2c";
+                               ralink,function = "i2c";
+                       };
+               };
+               phy_led_pins: phy_led {
+                       phy_led {
+                               ralink,group = "led";
+                               ralink,function = "led";
+                       };
+               };
+               uartlite_pins: uartlite {
+                       uart {
+                               ralink,group = "uartlite";
+                               ralink,function = "uartlite";
+                       };
+               };
+       };
+
        rstctrl: rstctrl {
                compatible = "ralink,rt5350-reset", "ralink,rt2880-reset";
                #reset-cells = <1>;
 
                interrupt-parent = <&cpuintc>;
                interrupts = <5>;
-
-               status = "disabled";
        };
 
        esw@10110000 {
 
                interrupt-parent = <&intc>;
                interrupts = <17>;
-
-               status = "disabled";
        };
 
        wmac@10180000 {
                interrupts = <6>;
 
                ralink,eeprom = "soc_wmac.eeprom";
-
-               status = "disabled";
        };
 
        ehci@101c0000 {
index 618c27a901e788bb2f3f4259b6bf3442cceebf14..47ed648fd28e6f365018ba3e64234f9aaf8307bd 100644 (file)
@@ -1,7 +1,6 @@
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
 CONFIG_ARCH_DISCARD_MEMBLOCK=y
 CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_ARCH_HAS_RESET_CONTROLLER=y
 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_REQUIRE_GPIOLIB=y
@@ -30,6 +29,7 @@ CONFIG_CPU_R4K_FPU=y
 CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
 CONFIG_CPU_SUPPORTS_HIGHMEM=y
 CONFIG_CSRC_R4K=y
+CONFIG_DEBUG_PINCTRL=y
 CONFIG_DMA_NONCOHERENT=y
 # CONFIG_DTB_MT7620A_EVAL is not set
 CONFIG_DTB_RT_NONE=y
@@ -135,6 +135,11 @@ CONFIG_PCI=y
 CONFIG_PCI_DOMAINS=y
 CONFIG_PERF_USE_VMALLOC=y
 CONFIG_PHYLIB=y
+# CONFIG_PINCONF is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_RT2880=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PINMUX=y
 # CONFIG_PREEMPT_RCU is not set
 CONFIG_RALINK=y
 CONFIG_RALINK_USBPHY=y
index cd4f38f925531752321bfc50719b086e279101cd..19d592bde237b70b2aed0c5ba4c7079b04e40aac 100644 (file)
@@ -19,9 +19,11 @@ Cc: linux-gpio@vger.kernel.org
  create mode 100644 arch/mips/include/asm/mach-ralink/gpio.h
  create mode 100644 drivers/gpio/gpio-ralink.c
 
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -444,6 +444,7 @@ config RALINK
+Index: linux-3.10.9/arch/mips/Kconfig
+===================================================================
+--- linux-3.10.9.orig/arch/mips/Kconfig        2013-08-26 17:48:27.481164281 +0200
++++ linux-3.10.9/arch/mips/Kconfig     2013-08-27 23:15:40.751965869 +0200
+@@ -444,6 +444,7 @@
        select SYS_HAS_EARLY_PRINTK
        select HAVE_MACH_CLKDEV
        select CLKDEV_LOOKUP
@@ -29,8 +31,10 @@ Cc: linux-gpio@vger.kernel.org
  
  config SGI_IP22
        bool "SGI IP22 (Indy/Indigo2)"
---- /dev/null
-+++ b/arch/mips/include/asm/mach-ralink/gpio.h
+Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/gpio.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.10.9/arch/mips/include/asm/mach-ralink/gpio.h      2013-08-26 17:48:30.941164428 +0200
 @@ -0,0 +1,24 @@
 +/*
 + *  Ralink SoC GPIO API support
@@ -56,9 +60,11 @@ Cc: linux-gpio@vger.kernel.org
 +#define gpio_to_irq   __gpio_to_irq
 +
 +#endif /* __ASM_MACH_RALINK_GPIO_H */
---- a/drivers/gpio/Kconfig
-+++ b/drivers/gpio/Kconfig
-@@ -209,6 +209,12 @@ config GPIO_RCAR
+Index: linux-3.10.9/drivers/gpio/Kconfig
+===================================================================
+--- linux-3.10.9.orig/drivers/gpio/Kconfig     2013-08-21 00:40:47.000000000 +0200
++++ linux-3.10.9/drivers/gpio/Kconfig  2013-08-26 17:48:30.941164428 +0200
+@@ -209,6 +209,12 @@
        help
          Say yes here to support GPIO on Renesas R-Car SoCs.
  
@@ -71,9 +77,11 @@ Cc: linux-gpio@vger.kernel.org
  config GPIO_SPEAR_SPICS
        bool "ST SPEAr13xx SPI Chip Select as GPIO support"
        depends on PLAT_SPEAR
---- a/drivers/gpio/Makefile
-+++ b/drivers/gpio/Makefile
-@@ -56,6 +56,7 @@ obj-$(CONFIG_GPIO_PCF857X)   += gpio-pcf85
+Index: linux-3.10.9/drivers/gpio/Makefile
+===================================================================
+--- linux-3.10.9.orig/drivers/gpio/Makefile    2013-08-21 00:40:47.000000000 +0200
++++ linux-3.10.9/drivers/gpio/Makefile 2013-08-26 17:48:30.941164428 +0200
+@@ -56,6 +56,7 @@
  obj-$(CONFIG_GPIO_PCH)                += gpio-pch.o
  obj-$(CONFIG_GPIO_PL061)      += gpio-pl061.o
  obj-$(CONFIG_GPIO_PXA)                += gpio-pxa.o
@@ -81,9 +89,11 @@ Cc: linux-gpio@vger.kernel.org
  obj-$(CONFIG_GPIO_RC5T583)    += gpio-rc5t583.o
  obj-$(CONFIG_GPIO_RDC321X)    += gpio-rdc321x.o
  obj-$(CONFIG_GPIO_RCAR)               += gpio-rcar.o
---- /dev/null
-+++ b/drivers/gpio/gpio-ralink.c
-@@ -0,0 +1,337 @@
+Index: linux-3.10.9/drivers/gpio/gpio-ralink.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.10.9/drivers/gpio/gpio-ralink.c    2013-08-27 22:37:34.999868257 +0200
+@@ -0,0 +1,345 @@
 +/*
 + * 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 published
@@ -337,6 +347,13 @@ Cc: linux-gpio@vger.kernel.org
 +      dev_info(rg->chip.dev, "registering %d irq handlers\n", rg->chip.ngpio);
 +}
 +
++static int ralink_gpio_request(struct gpio_chip *chip, unsigned offset)
++{
++      int gpio = chip->base + offset;
++
++      return pinctrl_request_gpio(gpio);
++}
++
 +static int ralink_gpio_probe(struct platform_device *pdev)
 +{
 +      struct device_node *np = pdev->dev.of_node;
@@ -388,6 +405,7 @@ Cc: linux-gpio@vger.kernel.org
 +      rg->chip.direction_output = ralink_gpio_direction_output;
 +      rg->chip.get = ralink_gpio_get;
 +      rg->chip.set = ralink_gpio_set;
++      rg->chip.request = ralink_gpio_request;
 +      rg->chip.to_irq = ralink_gpio_to_irq;
 +
 +      /* set polarity to low for all lines */
diff --git a/target/linux/ramips/patches-3.10/0101-MIPS-ralink-add-pinmux-driver.patch b/target/linux/ramips/patches-3.10/0101-MIPS-ralink-add-pinmux-driver.patch
deleted file mode 100644 (file)
index 3fd0ddf..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-From 9a3055dad80db43aeb22b247512e18e8f06bf54c Mon Sep 17 00:00:00 2001
-From: John Crispin <blogic@openwrt.org>
-Date: Mon, 22 Apr 2013 23:11:42 +0200
-Subject: [PATCH 02/33] MIPS: ralink: add pinmux driver
-
-Add code to setup the pinmux on ralonk SoC. The SoC has a single 32 bit register
-for this functionality with simple on/off bits. Building a full featured pinctrl
-driver would be overkill.
-
-Signed-off-by: John Crispin <blogic@openwrt.org>
----
- arch/mips/ralink/Makefile |    2 +-
- arch/mips/ralink/common.h |    2 ++
- arch/mips/ralink/of.c     |    2 ++
- arch/mips/ralink/pinmux.c |   77 +++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 82 insertions(+), 1 deletion(-)
- create mode 100644 arch/mips/ralink/pinmux.c
-
---- a/arch/mips/ralink/Makefile
-+++ b/arch/mips/ralink/Makefile
-@@ -6,7 +6,7 @@
- # Copyright (C) 2009-2011 Gabor Juhos <juhosg@openwrt.org>
- # Copyright (C) 2013 John Crispin <blogic@openwrt.org>
--obj-y := prom.o of.o reset.o clk.o irq.o timer.o
-+obj-y := prom.o of.o reset.o clk.o irq.o timer.o pinmux.o
- obj-$(CONFIG_CLKEVT_RT3352) += cevt-rt3352.o
---- a/arch/mips/ralink/common.h
-+++ b/arch/mips/ralink/common.h
-@@ -52,4 +52,6 @@ extern void prom_soc_init(struct ralink_
- __iomem void *plat_of_remap_node(const char *node);
-+void ralink_pinmux(void);
-+
- #endif /* _RALINK_COMMON_H__ */
---- a/arch/mips/ralink/of.c
-+++ b/arch/mips/ralink/of.c
-@@ -113,6 +113,8 @@ static int __init plat_of_setup(void)
-       /* make sure ithat the reset controller is setup early */
-       ralink_rst_init();
-+      ralink_pinmux();
-+
-       return 0;
- }
---- /dev/null
-+++ b/arch/mips/ralink/pinmux.c
-@@ -0,0 +1,92 @@
-+/*
-+ *  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 published
-+ *  by the Free Software Foundation.
-+ *
-+ *  Copyright (C) 2013 John Crispin <blogic@openwrt.org>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/of.h>
-+
-+#include <asm/mach-ralink/ralink_regs.h>
-+
-+#include "common.h"
-+
-+#define SYSC_REG_GPIO_MODE    0x60
-+
-+static int ralink_mux_mask(const char *name, struct ralink_pinmux_grp *grps, u32* mask)
-+{
-+      for (; grps && grps->name; grps++)
-+              if (!strcmp(grps->name, name)) {
-+                      *mask = grps->mask;
-+                      return 0;
-+              }
-+
-+      return -1;
-+}
-+
-+void ralink_pinmux(void)
-+{
-+      const __be32 *wdt;
-+      struct device_node *np;
-+      struct property *prop;
-+      const char *uart, *pci, *pin;
-+      u32 mode = 0;
-+      int m;
-+
-+      np = of_find_compatible_node(NULL, NULL, "ralink,rt3050-sysc");
-+      if (!np)
-+              return;
-+
-+      of_property_for_each_string(np, "ralink,gpiomux", prop, pin) {
-+              if (!ralink_mux_mask(pin, rt_gpio_pinmux.mode, &m)) {
-+                      mode |= m;
-+                      pr_debug("pinmux: registered gpiomux \"%s\"\n", pin);
-+              } else {
-+                      pr_err("pinmux: failed to load \"%s\"\n", pin);
-+              }
-+      }
-+
-+      of_property_for_each_string(np, "ralink,pinmux", prop, pin) {
-+              if (!ralink_mux_mask(pin, rt_gpio_pinmux.mode, &m)) {
-+                      mode &= ~m;
-+                      pr_debug("pinmux: registered pinmux \"%s\"\n", pin);
-+              } else {
-+                      pr_err("pinmux: failed to load group \"%s\"\n", pin);
-+              }
-+      }
-+
-+      of_property_read_string(np, "ralink,uartmux", &uart);
-+      if (uart) {
-+              mode &= ~(rt_gpio_pinmux.uart_mask << rt_gpio_pinmux.uart_shift);
-+              if (ralink_mux_mask(uart, rt_gpio_pinmux.uart, &m)) {
-+                      pr_err("pinmux: failed to load uartmux \"%s\"\n", uart);
-+                      mode |= rt_gpio_pinmux.uart_mask << rt_gpio_pinmux.uart_shift;
-+              } else {
-+                      mode |= m << rt_gpio_pinmux.uart_shift;
-+                      pr_debug("pinmux: registered uartmux \"%s\"\n", uart);
-+              }
-+      }
-+
-+      wdt = of_get_property(np, "ralink,wdtmux", NULL);
-+      if (wdt && *wdt && rt_gpio_pinmux.wdt_reset)
-+              rt_gpio_pinmux.wdt_reset();
-+
-+      pci = NULL;
-+      if (rt_gpio_pinmux.pci)
-+              of_property_read_string(np, "ralink,pcimux", &pci);
-+
-+      if (pci) {
-+              mode &= ~(rt_gpio_pinmux.pci_mask << rt_gpio_pinmux.pci_shift);
-+              if (ralink_mux_mask(pci, rt_gpio_pinmux.pci, &m)) {
-+                      mode |= rt_gpio_pinmux.pci_mask << rt_gpio_pinmux.pci_shift;
-+                      pr_debug("pinmux: failed to load pcimux \"%s\"\n", pci);
-+              } else {
-+                      mode |= m << rt_gpio_pinmux.pci_shift;
-+                      pr_debug("pinmux: registered pcimux \"%s\"\n", pci);
-+              }
-+      }
-+
-+      rt_sysc_w32(mode, SYSC_REG_GPIO_MODE);
-+}
diff --git a/target/linux/ramips/patches-3.10/0122-pinmux.patch b/target/linux/ramips/patches-3.10/0122-pinmux.patch
new file mode 100644 (file)
index 0000000..fa0dd05
--- /dev/null
@@ -0,0 +1,1276 @@
+From d59fe652e3674e98caa688b4ddc9308007267adc Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Mon, 19 Aug 2013 13:49:52 +0200
+Subject: [PATCH] pinctrl: ralink; add pinctrl driver
+
+Signed-off-by: John Crispin <blogic@openwrt.org>
+---
+ arch/mips/Kconfig                 |    2 +
+ arch/mips/ralink/common.h         |   21 +--
+ arch/mips/ralink/dts/mt7620a.dtsi |    7 +
+ drivers/pinctrl/Kconfig           |    5 +
+ drivers/pinctrl/Makefile          |    1 +
+ drivers/pinctrl/pinctrl-rt2880.c  |  368 +++++++++++++++++++++++++++++++++++++
+ 6 files changed, 385 insertions(+), 19 deletions(-)
+ create mode 100644 drivers/pinctrl/pinctrl-rt2880.c
+
+Index: linux-3.10.9/arch/mips/Kconfig
+===================================================================
+--- linux-3.10.9.orig/arch/mips/Kconfig        2013-08-28 16:34:42.449951676 +0200
++++ linux-3.10.9/arch/mips/Kconfig     2013-08-28 16:34:43.361951711 +0200
+@@ -446,6 +446,8 @@
+       select HAVE_MACH_CLKDEV
+       select CLKDEV_LOOKUP
+       select ARCH_REQUIRE_GPIOLIB
++      select PINCTRL
++      select PINCTRL_RT2880
+ config SGI_IP22
+       bool "SGI IP22 (Indy/Indigo2)"
+Index: linux-3.10.9/drivers/pinctrl/Kconfig
+===================================================================
+--- linux-3.10.9.orig/drivers/pinctrl/Kconfig  2013-08-21 00:40:47.000000000 +0200
++++ linux-3.10.9/drivers/pinctrl/Kconfig       2013-08-28 16:34:43.361951711 +0200
+@@ -114,6 +114,11 @@
+       select PINMUX
+       select PINCONF
++config PINCTRL_RT2880
++      bool
++      depends on RALINK
++      select PINMUX
++
+ config PINCTRL_FALCON
+       bool
+       depends on SOC_FALCON
+Index: linux-3.10.9/drivers/pinctrl/Makefile
+===================================================================
+--- linux-3.10.9.orig/drivers/pinctrl/Makefile 2013-08-21 00:40:47.000000000 +0200
++++ linux-3.10.9/drivers/pinctrl/Makefile      2013-08-28 16:34:43.361951711 +0200
+@@ -45,6 +45,7 @@
+ obj-$(CONFIG_PINCTRL_S3C64XX) += pinctrl-s3c64xx.o
+ obj-$(CONFIG_PINCTRL_XWAY)    += pinctrl-xway.o
+ obj-$(CONFIG_PINCTRL_LANTIQ)  += pinctrl-lantiq.o
++obj-$(CONFIG_PINCTRL_RT2880)  += pinctrl-rt2880.o
+ obj-$(CONFIG_PLAT_ORION)        += mvebu/
+ obj-$(CONFIG_ARCH_SHMOBILE)   += sh-pfc/
+Index: linux-3.10.9/drivers/pinctrl/pinctrl-rt2880.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.10.9/drivers/pinctrl/pinctrl-rt2880.c      2013-08-28 16:34:43.361951711 +0200
+@@ -0,0 +1,456 @@
++/*
++ *  linux/drivers/pinctrl/pinctrl-rt2880.c
++ *
++ *  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.
++ *
++ *  Copyright (C) 2013 John Crispin <blogic@openwrt.org>
++ */
++
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/io.h>
++#include <linux/platform_device.h>
++#include <linux/slab.h>
++#include <linux/of.h>
++#include <linux/pinctrl/pinctrl.h>
++#include <linux/pinctrl/pinconf.h>
++#include <linux/pinctrl/pinmux.h>
++#include <linux/pinctrl/consumer.h>
++#include <linux/pinctrl/machine.h>
++
++#include <asm/mach-ralink/ralink_regs.h>
++#include <asm/mach-ralink/pinmux.h>
++#include <asm/mach-ralink/mt7620.h>
++
++#include "core.h"
++
++#define SYSC_REG_GPIO_MODE    0x60
++
++struct rt2880_priv {
++      struct device *dev;
++
++      struct pinctrl_pin_desc *pads;
++      struct pinctrl_desc *desc;
++
++      struct rt2880_pmx_func **func;
++      int func_count;
++
++      struct rt2880_pmx_group *groups;
++      const char **group_names;
++      int group_count;
++
++      uint8_t *gpio;
++      int max_pins;
++};
++
++struct rt2880_pmx_group *rt2880_pinmux_data = NULL;
++
++static int rt2880_get_group_count(struct pinctrl_dev *pctrldev)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++
++      return p->group_count;
++}
++
++static const char *rt2880_get_group_name(struct pinctrl_dev *pctrldev,
++                                       unsigned group)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++
++      if (group >= p->group_count)
++              return NULL;
++
++      return p->group_names[group];
++}
++
++static int rt2880_get_group_pins(struct pinctrl_dev *pctrldev,
++                               unsigned group,
++                               const unsigned **pins,
++                               unsigned *num_pins)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++
++      if (group >= p->group_count)
++              return -EINVAL;
++
++      *pins = p->groups[group].func[0].pins;
++      *num_pins = p->groups[group].func[0].pin_count;
++
++      return 0;
++}
++
++static void rt2880_pinctrl_dt_free_map(struct pinctrl_dev *pctrldev,
++                                  struct pinctrl_map *map, unsigned num_maps)
++{
++      int i;
++
++      for (i = 0; i < num_maps; i++)
++              if (map[i].type == PIN_MAP_TYPE_CONFIGS_PIN ||
++                  map[i].type == PIN_MAP_TYPE_CONFIGS_GROUP)
++                      kfree(map[i].data.configs.configs);
++      kfree(map);
++}
++
++static void rt2880_pinctrl_pin_dbg_show(struct pinctrl_dev *pctrldev,
++                                      struct seq_file *s,
++                                      unsigned offset)
++{
++      seq_printf(s, "ralink pio");
++}
++
++static void rt2880_pinctrl_dt_subnode_to_map(struct pinctrl_dev *pctrldev,
++                              struct device_node *np,
++                              struct pinctrl_map **map)
++{
++        const char *function;
++      int func = of_property_read_string(np, "ralink,function", &function);
++      int grps = of_property_count_strings(np, "ralink,group");
++      int i;
++
++      if (func || !grps)
++              return;
++
++      for (i = 0; i < grps; i++) {
++              const char *group;
++
++              of_property_read_string_index(np, "ralink,group", i, &group);
++
++              (*map)->type = PIN_MAP_TYPE_MUX_GROUP;
++              (*map)->name = function;
++              (*map)->data.mux.group = group;
++              (*map)->data.mux.function = function;
++              (*map)++;
++      }
++}
++
++static int rt2880_pinctrl_dt_node_to_map(struct pinctrl_dev *pctrldev,
++                              struct device_node *np_config,
++                              struct pinctrl_map **map,
++                              unsigned *num_maps)
++{
++      int max_maps = 0;
++      struct pinctrl_map *tmp;
++      struct device_node *np;
++
++      for_each_child_of_node(np_config, np) {
++              int ret = of_property_count_strings(np, "ralink,group");
++
++              if (ret >= 0)
++                      max_maps += ret;
++      }
++
++      if (!max_maps)
++              return max_maps;
++
++      *map = kzalloc(max_maps * sizeof(struct pinctrl_map), GFP_KERNEL);
++      if (!*map)
++              return -ENOMEM;
++
++      tmp = *map;
++
++      for_each_child_of_node(np_config, np)
++              rt2880_pinctrl_dt_subnode_to_map(pctrldev, np, &tmp);
++      *num_maps = max_maps;
++
++      return 0;
++}
++
++static const struct pinctrl_ops rt2880_pctrl_ops = {
++      .get_groups_count       = rt2880_get_group_count,
++      .get_group_name         = rt2880_get_group_name,
++      .get_group_pins         = rt2880_get_group_pins,
++      .pin_dbg_show           = rt2880_pinctrl_pin_dbg_show,
++      .dt_node_to_map         = rt2880_pinctrl_dt_node_to_map,
++      .dt_free_map            = rt2880_pinctrl_dt_free_map,
++};
++
++static int rt2880_pmx_func_count(struct pinctrl_dev *pctrldev)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++
++      return p->func_count;
++}
++
++static const char *rt2880_pmx_func_name(struct pinctrl_dev *pctrldev,
++                                       unsigned func)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++
++      return p->func[func]->name;
++}
++
++static int rt2880_pmx_group_get_groups(struct pinctrl_dev *pctrldev,
++                              unsigned func,
++                              const char * const **groups,
++                              unsigned * const num_groups)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++
++      if (p->func[func]->group_count == 1)
++              *groups = &p->group_names[p->func[func]->groups[0]];
++      else
++              *groups = p->group_names;
++
++      *num_groups = p->func[func]->group_count;
++
++      return 0;
++}
++
++static int rt2880_pmx_group_enable(struct pinctrl_dev *pctrldev,
++                              unsigned func,
++                              unsigned group)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++        u32 mode = 0;
++
++      /* dont allow double use */
++      if (p->groups[group].enabled) {
++              dev_err(p->dev, "%s is already enabled\n", p->groups[group].name);
++              return -EBUSY;
++      }
++
++      p->groups[group].enabled = 1;
++      p->func[func]->enabled = 1;
++
++      mode = rt_sysc_r32(SYSC_REG_GPIO_MODE);
++      mode &= ~(p->groups[group].mask << p->groups[group].shift);
++
++      /* function 0 is gpio and needs special handling */
++      if (func == 0) {
++              int i;
++
++              mode |= p->groups[group].mask << p->groups[group].shift;
++              /* mark the pins as gpio */
++              for (i = 0; i < p->groups[group].func[0].pin_count; i++)
++                      p->gpio[p->groups[group].func[0].pins[i]] = 1;
++      } else {
++              mode |= p->func[func]->value << p->groups[group].shift;
++      }
++      rt_sysc_w32(mode, SYSC_REG_GPIO_MODE);
++
++      return 0;
++}
++
++static int rt2880_pmx_group_gpio_request_enable(struct pinctrl_dev *pctrldev,
++                              struct pinctrl_gpio_range *range,
++                              unsigned pin)
++{
++      struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
++
++      if (!p->gpio[pin]) {
++              dev_err(p->dev, "pin %d is not set to gpio mux\n", pin);
++              return -EINVAL;
++      }
++
++      return 0;
++}
++
++static const struct pinmux_ops rt2880_pmx_group_ops = {
++      .get_functions_count    = rt2880_pmx_func_count,
++      .get_function_name      = rt2880_pmx_func_name,
++      .get_function_groups    = rt2880_pmx_group_get_groups,
++      .enable                 = rt2880_pmx_group_enable,
++      .gpio_request_enable    = rt2880_pmx_group_gpio_request_enable,
++};
++
++static struct pinctrl_desc rt2880_pctrl_desc = {
++      .owner          = THIS_MODULE,
++      .name           = "rt2880-pinmux",
++      .pctlops        = &rt2880_pctrl_ops,
++      .pmxops         = &rt2880_pmx_group_ops,
++};
++
++static struct rt2880_pmx_func gpio_func = {
++      .name = "gpio",
++};
++
++static int rt2880_pinmux_index(struct rt2880_priv *p)
++{
++      struct rt2880_pmx_func **f;
++      struct rt2880_pmx_group *mux = p->groups;
++      int i, j, c = 0;
++
++      /* count the mux functions */
++      while (mux->name) {
++              p->group_count++;
++              mux++;
++      }
++
++      /* allocate the group names array needed by the gpio function */
++      p->group_names = devm_kzalloc(p->dev, sizeof(char *) * p->group_count, GFP_KERNEL);
++      if (!p->group_names)
++              return -1;
++
++      for (i = 0; i < p->group_count; i++) {
++              p->group_names[i] = p->groups[i].name;
++              p->func_count += p->groups[i].func_count;
++      }
++
++      /* we have a dummy function[0] for gpio */
++      p->func_count++;
++
++      /* allocate our function and group mapping index buffers */
++      f = p->func = devm_kzalloc(p->dev, sizeof(struct rt2880_pmx_func) * p->func_count, GFP_KERNEL);
++      gpio_func.groups = devm_kzalloc(p->dev, sizeof(int) * p->group_count, GFP_KERNEL);
++      if (!f || !gpio_func.groups)
++              return -1;
++
++      /* add a backpointer to the function so it knows its group */
++      gpio_func.group_count = p->group_count;
++      for (i = 0; i < gpio_func.group_count; i++)
++              gpio_func.groups[i] = i;
++
++      f[c] = &gpio_func;
++      c++;
++
++      /* add remaining functions */
++      for (i = 0; i < p->group_count; i++) {
++              for (j = 0; j < p->groups[i].func_count; j++) {
++                      int k;
++
++                      f[c] = &p->groups[i].func[j];
++                      f[c]->groups = devm_kzalloc(p->dev, sizeof(int), GFP_KERNEL);
++                      f[c]->groups[0] = i;
++                      f[c]->group_count = 1;
++                      c++;
++              }
++      }
++      return 0;
++}
++
++static int rt2880_pinmux_pins(struct rt2880_priv *p)
++{
++      int i, j;
++
++      /* loop over the functions and initialize the pins array. also work out the highest pin used */
++      for (i = 0; i < p->func_count; i++) {
++              int pin;
++
++              if (!p->func[i]->pin_count)
++                      continue;
++
++              p->func[i]->pins = devm_kzalloc(p->dev, sizeof(int) * p->func[i]->pin_count, GFP_KERNEL);
++              for (j = 0; j < p->func[i]->pin_count; j++)
++                      p->func[i]->pins[j] = p->func[i]->pin_first + j;
++
++              pin = p->func[i]->pin_first + p->func[i]->pin_count;
++              if (pin > p->max_pins)
++                      p->max_pins = pin;
++      }
++
++      /* the buffer that tells us which pins are gpio */
++      p->gpio = devm_kzalloc(p->dev,sizeof(uint8_t) * p->max_pins,
++              GFP_KERNEL);
++      /* the pads needed to tell pinctrl about our pins */
++      p->pads = devm_kzalloc(p->dev,
++              sizeof(struct pinctrl_pin_desc) * p->max_pins,
++              GFP_KERNEL);
++      if (!p->pads || !p->gpio ) {
++              dev_err(p->dev, "Failed to allocate gpio data\n");
++              return -ENOMEM;
++      }
++
++      /* pin 0 is always a gpio */
++      p->gpio[0] = 1;
++
++      /* set the pads */
++      for (i = 0; i < p->max_pins; i++) {
++              /* strlen("ioXY") + 1 = 5 */
++              char *name = devm_kzalloc(p->dev, 5, GFP_KERNEL);
++
++              if (!name) {
++                      dev_err(p->dev, "Failed to allocate pad name\n");
++                      return -ENOMEM;
++              }
++              snprintf(name, 5, "io%d", i);
++              p->pads[i].number = i;
++              p->pads[i].name = name;
++      }
++      p->desc->pins = p->pads;
++      p->desc->npins = p->max_pins;
++
++      return 0;
++}
++
++static int rt2880_pinmux_probe(struct platform_device *pdev)
++{
++      struct rt2880_priv *p;
++      struct pinctrl_dev *dev;
++      struct device_node *np;
++
++      if (!rt2880_pinmux_data)
++              return -ENOSYS;
++
++      /* setup the private data */
++      p = devm_kzalloc(&pdev->dev, sizeof(struct rt2880_priv), GFP_KERNEL);
++      if (!p)
++              return -ENOMEM;
++
++      p->dev = &pdev->dev;
++      p->desc = &rt2880_pctrl_desc;
++      p->groups = rt2880_pinmux_data;
++      platform_set_drvdata(pdev, p);
++
++      /* init the device */
++      if (rt2880_pinmux_index(p)) {
++              dev_err(&pdev->dev, "failed to load index\n");
++              return -EINVAL;
++      }
++      if (rt2880_pinmux_pins(p)) {
++              dev_err(&pdev->dev, "failed to load pins\n");
++              return -EINVAL;
++      }
++      dev = pinctrl_register(p->desc, &pdev->dev, p);
++      if (IS_ERR(dev))
++              return PTR_ERR(dev);
++
++      /* finalize by adding gpio ranges for enables gpio controllers */
++      for_each_compatible_node(np, NULL, "ralink,rt2880-gpio") {
++              const __be32 *ngpio, *gpiobase;
++              struct pinctrl_gpio_range *range;
++              char *name;
++
++              if (!of_device_is_available(np))
++                      continue;
++
++              ngpio = of_get_property(np, "ralink,num-gpios", NULL);
++              gpiobase = of_get_property(np, "ralink,gpio-base", NULL);
++              if (!ngpio || !gpiobase) {
++                      dev_err(&pdev->dev, "failed to load chip info\n");
++                      return -EINVAL;
++              }
++
++              range = devm_kzalloc(p->dev, sizeof(struct pinctrl_gpio_range) + 4, GFP_KERNEL);
++              range->name = name = (char *) &range[1];
++              sprintf(name, "pio");
++              range->npins = __be32_to_cpu(*ngpio);
++              range->base = __be32_to_cpu(*gpiobase);
++              pinctrl_add_gpio_range(dev, range);
++      }
++
++      return 0;
++}
++
++static const struct of_device_id rt2880_pinmux_match[] = {
++      { .compatible = "ralink,rt2880-pinmux" },
++      {},
++};
++MODULE_DEVICE_TABLE(of, rt2880_pinmux_match);
++
++static struct platform_driver rt2880_pinmux_driver = {
++      .probe = rt2880_pinmux_probe,
++      .driver = {
++              .name = "rt2880-pinmux",
++              .owner = THIS_MODULE,
++              .of_match_table = rt2880_pinmux_match,
++      },
++};
++
++int __init rt2880_pinmux_init(void)
++{
++      return platform_driver_register(&rt2880_pinmux_driver);
++}
++
++core_initcall_sync(rt2880_pinmux_init);
+Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/pinmux.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ linux-3.10.9/arch/mips/include/asm/mach-ralink/pinmux.h    2013-08-28 16:34:43.361951711 +0200
+@@ -0,0 +1,47 @@
++/*
++ *  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.
++ *
++ *  Copyright (C) 2012 John Crispin <blogic@openwrt.org>
++ */
++
++#ifndef _RT288X_PINMUX_H__
++#define _RT288X_PINMUX_H__
++
++#define FUNC(name, value, pin_first, pin_count) { name, value, pin_first, pin_count }
++#define GRP(_name, _func, _mask, _shift) \
++      { .name = _name, .mask = _mask, .shift = _shift, \
++        .func = _func, \
++        .func_count = ARRAY_SIZE(_func) }
++
++struct rt2880_pmx_group;
++
++struct rt2880_pmx_func {
++      const char *name;
++      const char value;
++
++      int pin_first;
++      int pin_count;
++      int *pins;
++
++      int *groups;
++      int group_count;
++
++      int enabled;
++};
++
++struct rt2880_pmx_group {
++      const char *name;
++      int enabled;
++
++      const u32 shift;
++      const char mask;
++
++      struct rt2880_pmx_func *func;
++      int func_count;
++};
++
++extern struct rt2880_pmx_group *rt2880_pinmux_data;
++
++#endif
+Index: linux-3.10.9/arch/mips/ralink/mt7620.c
+===================================================================
+--- linux-3.10.9.orig/arch/mips/ralink/mt7620.c        2013-08-28 16:34:42.829951688 +0200
++++ linux-3.10.9/arch/mips/ralink/mt7620.c     2013-08-28 16:34:43.361951711 +0200
+@@ -17,6 +17,7 @@
+ #include <asm/mipsregs.h>
+ #include <asm/mach-ralink/ralink_regs.h>
+ #include <asm/mach-ralink/mt7620.h>
++#include <asm/mach-ralink/pinmux.h>
+ #include "common.h"
+@@ -48,118 +49,40 @@
+ /* the pll dividers */
+ static u32 mt7620_clk_divider[] = { 2, 3, 4, 8 };
+-static struct ralink_pinmux_grp mode_mux[] = {
+-      {
+-              .name = "i2c",
+-              .mask = MT7620_GPIO_MODE_I2C,
+-              .gpio_first = 1,
+-              .gpio_last = 2,
+-      }, {
+-              .name = "spi",
+-              .mask = MT7620_GPIO_MODE_SPI,
+-              .gpio_first = 3,
+-              .gpio_last = 6,
+-      }, {
+-              .name = "uartlite",
+-              .mask = MT7620_GPIO_MODE_UART1,
+-              .gpio_first = 15,
+-              .gpio_last = 16,
+-      }, {
+-              .name = "wdt",
+-              .mask = MT7620_GPIO_MODE_WDT,
+-              .gpio_first = 17,
+-              .gpio_last = 17,
+-      }, {
+-              .name = "mdio",
+-              .mask = MT7620_GPIO_MODE_MDIO,
+-              .gpio_first = 22,
+-              .gpio_last = 23,
+-      }, {
+-              .name = "rgmii1",
+-              .mask = MT7620_GPIO_MODE_RGMII1,
+-              .gpio_first = 24,
+-              .gpio_last = 35,
+-      }, {
+-              .name = "spi refclk",
+-              .mask = MT7620_GPIO_MODE_SPI_REF_CLK,
+-              .gpio_first = 37,
+-              .gpio_last = 39,
+-      }, {
+-              .name = "jtag",
+-              .mask = MT7620_GPIO_MODE_JTAG,
+-              .gpio_first = 40,
+-              .gpio_last = 44,
+-      }, {
+-              /* shared lines with jtag */
+-              .name = "ephy",
+-              .mask = MT7620_GPIO_MODE_EPHY,
+-              .gpio_first = 40,
+-              .gpio_last = 44,
+-      }, {
+-              .name = "nand",
+-              .mask = MT7620_GPIO_MODE_JTAG,
+-              .gpio_first = 45,
+-              .gpio_last = 59,
+-      }, {
+-              .name = "rgmii2",
+-              .mask = MT7620_GPIO_MODE_RGMII2,
+-              .gpio_first = 60,
+-              .gpio_last = 71,
+-      }, {
+-              .name = "wled",
+-              .mask = MT7620_GPIO_MODE_WLED,
+-              .gpio_first = 72,
+-              .gpio_last = 72,
+-      }, {0}
++static struct rt2880_pmx_func i2c_grp[] =  { FUNC("i2c", 1, 1, 2) };
++static struct rt2880_pmx_func spi_grp[] = { FUNC("spi", 1, 3, 4) };
++static struct rt2880_pmx_func uartf_grp[] = {
++      FUNC("uartf", MT7620_GPIO_MODE_UARTF, 7, 8),
++      FUNC("pcm uartf", MT7620_GPIO_MODE_PCM_UARTF, 7, 8),
++      FUNC("pcm i2s", MT7620_GPIO_MODE_PCM_I2S, 7, 8),
++      FUNC("i2s uartf", MT7620_GPIO_MODE_I2S_UARTF, 7, 8),
++      FUNC("pcm gpio", MT7620_GPIO_MODE_PCM_GPIO, 11, 4),
++      FUNC("gpio uartf", MT7620_GPIO_MODE_GPIO_UARTF, 7, 4),
++      FUNC("gpio i2s", MT7620_GPIO_MODE_GPIO_I2S, 7, 4),
+ };
+-
+-static struct ralink_pinmux_grp uart_mux[] = {
+-      {
+-              .name = "uartf",
+-              .mask = MT7620_GPIO_MODE_UARTF,
+-              .gpio_first = 7,
+-              .gpio_last = 14,
+-      }, {
+-              .name = "pcm uartf",
+-              .mask = MT7620_GPIO_MODE_PCM_UARTF,
+-              .gpio_first = 7,
+-              .gpio_last = 14,
+-      }, {
+-              .name = "pcm i2s",
+-              .mask = MT7620_GPIO_MODE_PCM_I2S,
+-              .gpio_first = 7,
+-              .gpio_last = 14,
+-      }, {
+-              .name = "i2s uartf",
+-              .mask = MT7620_GPIO_MODE_I2S_UARTF,
+-              .gpio_first = 7,
+-              .gpio_last = 14,
+-      }, {
+-              .name = "pcm gpio",
+-              .mask = MT7620_GPIO_MODE_PCM_GPIO,
+-              .gpio_first = 11,
+-              .gpio_last = 14,
+-      }, {
+-              .name = "gpio uartf",
+-              .mask = MT7620_GPIO_MODE_GPIO_UARTF,
+-              .gpio_first = 7,
+-              .gpio_last = 10,
+-      }, {
+-              .name = "gpio i2s",
+-              .mask = MT7620_GPIO_MODE_GPIO_I2S,
+-              .gpio_first = 7,
+-              .gpio_last = 10,
+-      }, {
+-              .name = "gpio",
+-              .mask = MT7620_GPIO_MODE_GPIO,
+-      }, {0}
+-};
+-
+-struct ralink_pinmux rt_gpio_pinmux = {
+-      .mode = mode_mux,
+-      .uart = uart_mux,
+-      .uart_shift = MT7620_GPIO_MODE_UART0_SHIFT,
+-      .uart_mask = MT7620_GPIO_MODE_UART0_MASK,
++static struct rt2880_pmx_func uartlite_grp[] = { FUNC("uartlite", 1, 15, 2) };
++static struct rt2880_pmx_func wdt_grp[] = { FUNC("wdt", 1, 17, 1) };
++static struct rt2880_pmx_func mdio_grp[] = { FUNC("mdio", 1, 22, 2) };
++static struct rt2880_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 1, 24, 12) };
++static struct rt2880_pmx_func refclk_grp[] = { FUNC("spi refclk", 1, 37, 3) };
++static struct rt2880_pmx_func ephy_grp[] = { FUNC("ephy", 1, 40, 5) };
++static struct rt2880_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 1, 60, 12) };
++static struct rt2880_pmx_func wled_grp[] = { FUNC("wled", 1, 72, 1) };
++
++static struct rt2880_pmx_group mt7620a_pinmux_data[] = {
++      GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C),
++      GRP("spi", spi_grp, 1, MT7620_GPIO_MODE_SPI),
++      GRP("uartlite", uartlite_grp, 1, MT7620_GPIO_MODE_UART1),
++      GRP("wdt", wdt_grp, 1, MT7620_GPIO_MODE_WDT),
++      GRP("mdio", mdio_grp, 1, MT7620_GPIO_MODE_MDIO),
++      GRP("rgmii1", rgmii1_grp, 1, MT7620_GPIO_MODE_RGMII1),
++      GRP("spi refclk", refclk_grp, 1, MT7620_GPIO_MODE_SPI_REF_CLK),
++      GRP("rgmii2", rgmii2_grp, 1, MT7620_GPIO_MODE_RGMII2),
++      GRP("ephy", ephy_grp, 1, MT7620_GPIO_MODE_EPHY),
++      GRP("wled", wled_grp, 1, MT7620_GPIO_MODE_WLED),
++      GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK,
++              MT7620_GPIO_MODE_UART0_SHIFT),
++      { 0 }
+ };
+ void __init ralink_clk_init(void)
+@@ -281,4 +204,6 @@
+               (pmu0 & PMU_SW_SET) ? ("sw") : ("hw"));
+       pr_info("Digital PMU set to %s control\n",
+               (pmu1 & DIG_SW_SEL) ? ("sw") : ("hw"));
++
++      rt2880_pinmux_data = mt7620a_pinmux_data;
+ }
+Index: linux-3.10.9/arch/mips/ralink/rt305x.c
+===================================================================
+--- linux-3.10.9.orig/arch/mips/ralink/rt305x.c        2013-08-28 16:34:43.061951698 +0200
++++ linux-3.10.9/arch/mips/ralink/rt305x.c     2013-08-28 16:34:43.365951713 +0200
+@@ -17,90 +17,71 @@
+ #include <asm/mipsregs.h>
+ #include <asm/mach-ralink/ralink_regs.h>
+ #include <asm/mach-ralink/rt305x.h>
++#include <asm/mach-ralink/pinmux.h>
+ #include "common.h"
+ enum rt305x_soc_type rt305x_soc;
+-static struct ralink_pinmux_grp mode_mux[] = {
+-      {
+-              .name = "i2c",
+-              .mask = RT305X_GPIO_MODE_I2C,
+-              .gpio_first = RT305X_GPIO_I2C_SD,
+-              .gpio_last = RT305X_GPIO_I2C_SCLK,
+-      }, {
+-              .name = "spi",
+-              .mask = RT305X_GPIO_MODE_SPI,
+-              .gpio_first = RT305X_GPIO_SPI_EN,
+-              .gpio_last = RT305X_GPIO_SPI_CLK,
+-      }, {
+-              .name = "uartlite",
+-              .mask = RT305X_GPIO_MODE_UART1,
+-              .gpio_first = RT305X_GPIO_UART1_TXD,
+-              .gpio_last = RT305X_GPIO_UART1_RXD,
+-      }, {
+-              .name = "jtag",
+-              .mask = RT305X_GPIO_MODE_JTAG,
+-              .gpio_first = RT305X_GPIO_JTAG_TDO,
+-              .gpio_last = RT305X_GPIO_JTAG_TDI,
+-      }, {
+-              .name = "mdio",
+-              .mask = RT305X_GPIO_MODE_MDIO,
+-              .gpio_first = RT305X_GPIO_MDIO_MDC,
+-              .gpio_last = RT305X_GPIO_MDIO_MDIO,
+-      }, {
+-              .name = "sdram",
+-              .mask = RT305X_GPIO_MODE_SDRAM,
+-              .gpio_first = RT305X_GPIO_SDRAM_MD16,
+-              .gpio_last = RT305X_GPIO_SDRAM_MD31,
+-      }, {
+-              .name = "rgmii",
+-              .mask = RT305X_GPIO_MODE_RGMII,
+-              .gpio_first = RT305X_GPIO_GE0_TXD0,
+-              .gpio_last = RT305X_GPIO_GE0_RXCLK,
+-      }, {0}
++static struct rt2880_pmx_func i2c_func[] =  { FUNC("i2c", 0, 1, 2) };
++static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) };
++static struct rt2880_pmx_func uartf_func[] = {
++      FUNC("uartf", RT305X_GPIO_MODE_UARTF, 7, 8),
++      FUNC("pcm uartf", RT305X_GPIO_MODE_PCM_UARTF, 7, 8),
++      FUNC("pcm i2s", RT305X_GPIO_MODE_PCM_I2S, 7, 8),
++      FUNC("i2s uartf", RT305X_GPIO_MODE_I2S_UARTF, 7, 8),
++      FUNC("pcm gpio", RT305X_GPIO_MODE_PCM_GPIO, 11, 4),
++      FUNC("gpio uartf", RT305X_GPIO_MODE_GPIO_UARTF, 7, 4),
++      FUNC("gpio i2s", RT305X_GPIO_MODE_GPIO_I2S, 7, 4),
++};
++static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 15, 2) };
++static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 25) };
++static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) };
++static struct rt2880_pmx_func rt5350_led_func[] = { FUNC("led", 0, 22, 5) };
++static struct rt2880_pmx_func sdram_func[] = { FUNC("sdram", 0, 24, 16) };
++static struct rt2880_pmx_func rt3352_rgmii_func[] = { FUNC("rgmii", 0, 24, 12) };
++static struct rt2880_pmx_func rgmii_func[] = { FUNC("rgmii", 0, 40, 12) };
++static struct rt2880_pmx_func rt3352_lna_func[] = { FUNC("lna", 0, 36, 2) };
++static struct rt2880_pmx_func rt3352_pa_func[] = { FUNC("pa", 0, 38, 2) };
++static struct rt2880_pmx_func rt3352_led_func[] = { FUNC("led", 0, 40, 5) };
++
++static struct rt2880_pmx_group rt3050_pinmux_data[] = {
++      GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C),
++      GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI),
++      GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK,
++              RT305X_GPIO_MODE_UART0_SHIFT),
++      GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1),
++      GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG),
++      GRP("mdio", mdio_func, 1, RT305X_GPIO_MODE_MDIO),
++      GRP("rgmii", rgmii_func, 1, RT305X_GPIO_MODE_RGMII),
++      GRP("sdram", sdram_func, 1, RT305X_GPIO_MODE_SDRAM),
++      { 0 }
++};
++
++static struct rt2880_pmx_group rt3352_pinmux_data[] = {
++      GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C),
++      GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI),
++      GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK,
++              RT305X_GPIO_MODE_UART0_SHIFT),
++      GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1),
++      GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG),
++      GRP("mdio", mdio_func, 1, RT305X_GPIO_MODE_MDIO),
++      GRP("rgmii", rt3352_rgmii_func, 1, RT305X_GPIO_MODE_RGMII),
++      GRP("lna", rt3352_lna_func, 1, RT3352_GPIO_MODE_LNA),
++      GRP("pa", rt3352_pa_func, 1, RT3352_GPIO_MODE_PA),
++      GRP("led", rt3352_led_func, 1, RT5350_GPIO_MODE_PHY_LED),
++      { 0 }
+ };
+-static struct ralink_pinmux_grp uart_mux[] = {
+-      {
+-              .name = "uartf",
+-              .mask = RT305X_GPIO_MODE_UARTF,
+-              .gpio_first = RT305X_GPIO_7,
+-              .gpio_last = RT305X_GPIO_14,
+-      }, {
+-              .name = "pcm uartf",
+-              .mask = RT305X_GPIO_MODE_PCM_UARTF,
+-              .gpio_first = RT305X_GPIO_7,
+-              .gpio_last = RT305X_GPIO_14,
+-      }, {
+-              .name = "pcm i2s",
+-              .mask = RT305X_GPIO_MODE_PCM_I2S,
+-              .gpio_first = RT305X_GPIO_7,
+-              .gpio_last = RT305X_GPIO_14,
+-      }, {
+-              .name = "i2s uartf",
+-              .mask = RT305X_GPIO_MODE_I2S_UARTF,
+-              .gpio_first = RT305X_GPIO_7,
+-              .gpio_last = RT305X_GPIO_14,
+-      }, {
+-              .name = "pcm gpio",
+-              .mask = RT305X_GPIO_MODE_PCM_GPIO,
+-              .gpio_first = RT305X_GPIO_10,
+-              .gpio_last = RT305X_GPIO_14,
+-      }, {
+-              .name = "gpio uartf",
+-              .mask = RT305X_GPIO_MODE_GPIO_UARTF,
+-              .gpio_first = RT305X_GPIO_7,
+-              .gpio_last = RT305X_GPIO_10,
+-      }, {
+-              .name = "gpio i2s",
+-              .mask = RT305X_GPIO_MODE_GPIO_I2S,
+-              .gpio_first = RT305X_GPIO_7,
+-              .gpio_last = RT305X_GPIO_10,
+-      }, {
+-              .name = "gpio",
+-              .mask = RT305X_GPIO_MODE_GPIO,
+-      }, {0}
++static struct rt2880_pmx_group rt5350_pinmux_data[] = {
++      GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C),
++      GRP("spi", spi_func, 1, RT305X_GPIO_MODE_SPI),
++      GRP("uartf", uartf_func, RT305X_GPIO_MODE_UART0_MASK,
++              RT305X_GPIO_MODE_UART0_SHIFT),
++      GRP("uartlite", uartlite_func, 1, RT305X_GPIO_MODE_UART1),
++      GRP("jtag", jtag_func, 1, RT305X_GPIO_MODE_JTAG),
++      GRP("led", rt5350_led_func, 1, RT5350_GPIO_MODE_PHY_LED),
++      { 0 }
+ };
+ static void rt305x_wdt_reset(void)
+@@ -114,14 +95,6 @@
+       rt_sysc_w32(t, SYSC_REG_SYSTEM_CONFIG);
+ }
+-struct ralink_pinmux rt_gpio_pinmux = {
+-      .mode = mode_mux,
+-      .uart = uart_mux,
+-      .uart_shift = RT305X_GPIO_MODE_UART0_SHIFT,
+-      .uart_mask = RT305X_GPIO_MODE_UART0_MASK,
+-      .wdt_reset = rt305x_wdt_reset,
+-};
+-
+ static unsigned long rt5350_get_mem_size(void)
+ {
+       void __iomem *sysc = (void __iomem *) KSEG1ADDR(RT305X_SYSC_BASE);
+@@ -291,11 +264,14 @@
+       soc_info->mem_base = RT305X_SDRAM_BASE;
+       if (soc_is_rt5350()) {
+               soc_info->mem_size = rt5350_get_mem_size();
++              rt2880_pinmux_data = rt5350_pinmux_data;
+       } else if (soc_is_rt305x() || soc_is_rt3350()) {
+               soc_info->mem_size_min = RT305X_MEM_SIZE_MIN;
+               soc_info->mem_size_max = RT305X_MEM_SIZE_MAX;
++              rt2880_pinmux_data = rt3050_pinmux_data;
+       } else if (soc_is_rt3352()) {
+               soc_info->mem_size_min = RT3352_MEM_SIZE_MIN;
+               soc_info->mem_size_max = RT3352_MEM_SIZE_MAX;
++              rt2880_pinmux_data = rt3352_pinmux_data;
+       }
+ }
+Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt305x.h
+===================================================================
+--- linux-3.10.9.orig/arch/mips/include/asm/mach-ralink/rt305x.h       2013-08-21 00:40:47.000000000 +0200
++++ linux-3.10.9/arch/mips/include/asm/mach-ralink/rt305x.h    2013-08-28 16:34:43.365951713 +0200
+@@ -125,24 +125,28 @@
+ #define RT305X_GPIO_GE0_TXD0          40
+ #define RT305X_GPIO_GE0_RXCLK         51
+-#define RT305X_GPIO_MODE_I2C          BIT(0)
+-#define RT305X_GPIO_MODE_SPI          BIT(1)
+ #define RT305X_GPIO_MODE_UART0_SHIFT  2
+ #define RT305X_GPIO_MODE_UART0_MASK   0x7
+ #define RT305X_GPIO_MODE_UART0(x)     ((x) << RT305X_GPIO_MODE_UART0_SHIFT)
+-#define RT305X_GPIO_MODE_UARTF                0x0
+-#define RT305X_GPIO_MODE_PCM_UARTF    0x1
+-#define RT305X_GPIO_MODE_PCM_I2S      0x2
+-#define RT305X_GPIO_MODE_I2S_UARTF    0x3
+-#define RT305X_GPIO_MODE_PCM_GPIO     0x4
+-#define RT305X_GPIO_MODE_GPIO_UARTF   0x5
+-#define RT305X_GPIO_MODE_GPIO_I2S     0x6
+-#define RT305X_GPIO_MODE_GPIO         0x7
+-#define RT305X_GPIO_MODE_UART1                BIT(5)
+-#define RT305X_GPIO_MODE_JTAG         BIT(6)
+-#define RT305X_GPIO_MODE_MDIO         BIT(7)
+-#define RT305X_GPIO_MODE_SDRAM                BIT(8)
+-#define RT305X_GPIO_MODE_RGMII                BIT(9)
++#define RT305X_GPIO_MODE_UARTF                0
++#define RT305X_GPIO_MODE_PCM_UARTF    1
++#define RT305X_GPIO_MODE_PCM_I2S      2
++#define RT305X_GPIO_MODE_I2S_UARTF    3
++#define RT305X_GPIO_MODE_PCM_GPIO     4
++#define RT305X_GPIO_MODE_GPIO_UARTF   5
++#define RT305X_GPIO_MODE_GPIO_I2S     6
++#define RT305X_GPIO_MODE_GPIO         7
++
++#define RT305X_GPIO_MODE_I2C          0
++#define RT305X_GPIO_MODE_SPI          1
++#define RT305X_GPIO_MODE_UART1                5
++#define RT305X_GPIO_MODE_JTAG         6
++#define RT305X_GPIO_MODE_MDIO         7
++#define RT305X_GPIO_MODE_SDRAM                8
++#define RT305X_GPIO_MODE_RGMII                9
++#define RT5350_GPIO_MODE_PHY_LED      14
++#define RT3352_GPIO_MODE_LNA          18
++#define RT3352_GPIO_MODE_PA           20
+ #define RT3352_SYSC_REG_SYSCFG0               0x010
+ #define RT3352_SYSC_REG_SYSCFG1         0x014
+Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/mt7620.h
+===================================================================
+--- linux-3.10.9.orig/arch/mips/include/asm/mach-ralink/mt7620.h       2013-08-28 16:34:42.625951682 +0200
++++ linux-3.10.9/arch/mips/include/asm/mach-ralink/mt7620.h    2013-08-28 18:32:38.370254386 +0200
+@@ -59,7 +59,6 @@
+ #define MT7620_DDR2_SIZE_MIN          32
+ #define MT7620_DDR2_SIZE_MAX          256
+-#define MT7620_GPIO_MODE_I2C          BIT(0)
+ #define MT7620_GPIO_MODE_UART0_SHIFT  2
+ #define MT7620_GPIO_MODE_UART0_MASK   0x7
+ #define MT7620_GPIO_MODE_UART0(x)     ((x) << MT7620_GPIO_MODE_UART0_SHIFT)
+@@ -71,15 +70,17 @@
+ #define MT7620_GPIO_MODE_GPIO_UARTF   0x5
+ #define MT7620_GPIO_MODE_GPIO_I2S     0x6
+ #define MT7620_GPIO_MODE_GPIO         0x7
+-#define MT7620_GPIO_MODE_UART1                BIT(5)
+-#define MT7620_GPIO_MODE_MDIO         BIT(8)
+-#define MT7620_GPIO_MODE_RGMII1               BIT(9)
+-#define MT7620_GPIO_MODE_RGMII2               BIT(10)
+-#define MT7620_GPIO_MODE_SPI          BIT(11)
+-#define MT7620_GPIO_MODE_SPI_REF_CLK  BIT(12)
+-#define MT7620_GPIO_MODE_WLED         BIT(13)
+-#define MT7620_GPIO_MODE_JTAG         BIT(15)
+-#define MT7620_GPIO_MODE_EPHY         BIT(15)
+-#define MT7620_GPIO_MODE_WDT          BIT(22)
++
++#define MT7620_GPIO_MODE_I2C          0
++#define MT7620_GPIO_MODE_UART1                5
++#define MT7620_GPIO_MODE_MDIO         8
++#define MT7620_GPIO_MODE_RGMII1               9
++#define MT7620_GPIO_MODE_RGMII2               10
++#define MT7620_GPIO_MODE_SPI          11
++#define MT7620_GPIO_MODE_SPI_REF_CLK  12
++#define MT7620_GPIO_MODE_WLED         13
++#define MT7620_GPIO_MODE_JTAG         15
++#define MT7620_GPIO_MODE_EPHY         15
++#define MT7620_GPIO_MODE_WDT          22
+ #endif
+Index: linux-3.10.9/arch/mips/include/asm/mach-ralink/rt3883.h
+===================================================================
+--- linux-3.10.9.orig/arch/mips/include/asm/mach-ralink/rt3883.h       2013-08-21 00:40:47.000000000 +0200
++++ linux-3.10.9/arch/mips/include/asm/mach-ralink/rt3883.h    2013-08-28 18:33:57.554258201 +0200
+@@ -112,8 +112,6 @@
+ #define RT3883_CLKCFG1_PCI_CLK_EN     BIT(19)
+ #define RT3883_CLKCFG1_UPHY0_CLK_EN   BIT(18)
+-#define RT3883_GPIO_MODE_I2C          BIT(0)
+-#define RT3883_GPIO_MODE_SPI          BIT(1)
+ #define RT3883_GPIO_MODE_UART0_SHIFT  2
+ #define RT3883_GPIO_MODE_UART0_MASK   0x7
+ #define RT3883_GPIO_MODE_UART0(x)     ((x) << RT3883_GPIO_MODE_UART0_SHIFT)
+@@ -125,11 +123,15 @@
+ #define RT3883_GPIO_MODE_GPIO_UARTF   0x5
+ #define RT3883_GPIO_MODE_GPIO_I2S     0x6
+ #define RT3883_GPIO_MODE_GPIO         0x7
+-#define RT3883_GPIO_MODE_UART1                BIT(5)
+-#define RT3883_GPIO_MODE_JTAG         BIT(6)
+-#define RT3883_GPIO_MODE_MDIO         BIT(7)
+-#define RT3883_GPIO_MODE_GE1          BIT(9)
+-#define RT3883_GPIO_MODE_GE2          BIT(10)
++
++#define RT3883_GPIO_MODE_I2C          0
++#define RT3883_GPIO_MODE_SPI          1
++#define RT3883_GPIO_MODE_UART1                5
++#define RT3883_GPIO_MODE_JTAG         6
++#define RT3883_GPIO_MODE_MDIO         7
++#define RT3883_GPIO_MODE_GE1          9
++#define RT3883_GPIO_MODE_GE2          10
++
+ #define RT3883_GPIO_MODE_PCI_SHIFT    11
+ #define RT3883_GPIO_MODE_PCI_MASK     0x7
+ #define RT3883_GPIO_MODE_PCI          (RT3883_GPIO_MODE_PCI_MASK << RT3883_GPIO_MODE_PCI_SHIFT)
+Index: linux-3.10.9/arch/mips/ralink/common.h
+===================================================================
+--- linux-3.10.9.orig/arch/mips/ralink/common.h        2013-08-28 16:34:42.453951675 +0200
++++ linux-3.10.9/arch/mips/ralink/common.h     2013-08-28 18:10:55.014197854 +0200
+@@ -11,25 +11,6 @@
+ #define RAMIPS_SYS_TYPE_LEN   32
+-struct ralink_pinmux_grp {
+-      const char *name;
+-      u32 mask;
+-      int gpio_first;
+-      int gpio_last;
+-};
+-
+-struct ralink_pinmux {
+-      struct ralink_pinmux_grp *mode;
+-      struct ralink_pinmux_grp *uart;
+-      int uart_shift;
+-      u32 uart_mask;
+-      void (*wdt_reset)(void);
+-      struct ralink_pinmux_grp *pci;
+-      int pci_shift;
+-      u32 pci_mask;
+-};
+-extern struct ralink_pinmux rt_gpio_pinmux;
+-
+ struct ralink_soc_info {
+       unsigned char sys_type[RAMIPS_SYS_TYPE_LEN];
+       unsigned char *compatible;
+Index: linux-3.10.9/arch/mips/ralink/rt3883.c
+===================================================================
+--- linux-3.10.9.orig/arch/mips/ralink/rt3883.c        2013-08-21 00:40:47.000000000 +0200
++++ linux-3.10.9/arch/mips/ralink/rt3883.c     2013-08-28 18:47:07.442290690 +0200
+@@ -17,132 +17,50 @@
+ #include <asm/mipsregs.h>
+ #include <asm/mach-ralink/ralink_regs.h>
+ #include <asm/mach-ralink/rt3883.h>
++#include <asm/mach-ralink/pinmux.h>
+ #include "common.h"
+-static struct ralink_pinmux_grp mode_mux[] = {
+-      {
+-              .name = "i2c",
+-              .mask = RT3883_GPIO_MODE_I2C,
+-              .gpio_first = RT3883_GPIO_I2C_SD,
+-              .gpio_last = RT3883_GPIO_I2C_SCLK,
+-      }, {
+-              .name = "spi",
+-              .mask = RT3883_GPIO_MODE_SPI,
+-              .gpio_first = RT3883_GPIO_SPI_CS0,
+-              .gpio_last = RT3883_GPIO_SPI_MISO,
+-      }, {
+-              .name = "uartlite",
+-              .mask = RT3883_GPIO_MODE_UART1,
+-              .gpio_first = RT3883_GPIO_UART1_TXD,
+-              .gpio_last = RT3883_GPIO_UART1_RXD,
+-      }, {
+-              .name = "jtag",
+-              .mask = RT3883_GPIO_MODE_JTAG,
+-              .gpio_first = RT3883_GPIO_JTAG_TDO,
+-              .gpio_last = RT3883_GPIO_JTAG_TCLK,
+-      }, {
+-              .name = "mdio",
+-              .mask = RT3883_GPIO_MODE_MDIO,
+-              .gpio_first = RT3883_GPIO_MDIO_MDC,
+-              .gpio_last = RT3883_GPIO_MDIO_MDIO,
+-      }, {
+-              .name = "ge1",
+-              .mask = RT3883_GPIO_MODE_GE1,
+-              .gpio_first = RT3883_GPIO_GE1_TXD0,
+-              .gpio_last = RT3883_GPIO_GE1_RXCLK,
+-      }, {
+-              .name = "ge2",
+-              .mask = RT3883_GPIO_MODE_GE2,
+-              .gpio_first = RT3883_GPIO_GE2_TXD0,
+-              .gpio_last = RT3883_GPIO_GE2_RXCLK,
+-      }, {
+-              .name = "pci",
+-              .mask = RT3883_GPIO_MODE_PCI,
+-              .gpio_first = RT3883_GPIO_PCI_AD0,
+-              .gpio_last = RT3883_GPIO_PCI_AD31,
+-      }, {
+-              .name = "lna a",
+-              .mask = RT3883_GPIO_MODE_LNA_A,
+-              .gpio_first = RT3883_GPIO_LNA_PE_A0,
+-              .gpio_last = RT3883_GPIO_LNA_PE_A2,
+-      }, {
+-              .name = "lna g",
+-              .mask = RT3883_GPIO_MODE_LNA_G,
+-              .gpio_first = RT3883_GPIO_LNA_PE_G0,
+-              .gpio_last = RT3883_GPIO_LNA_PE_G2,
+-      }, {0}
++static struct rt2880_pmx_func i2c_func[] =  { FUNC("i2c", 0, 1, 2) };
++static struct rt2880_pmx_func spi_func[] = { FUNC("spi", 0, 3, 4) };
++static struct rt2880_pmx_func uartf_func[] = {
++      FUNC("uartf", RT3883_GPIO_MODE_UARTF, 7, 8),
++      FUNC("pcm uartf", RT3883_GPIO_MODE_PCM_UARTF, 7, 8),
++      FUNC("pcm i2s", RT3883_GPIO_MODE_PCM_I2S, 7, 8),
++      FUNC("i2s uartf", RT3883_GPIO_MODE_I2S_UARTF, 7, 8),
++      FUNC("pcm gpio", RT3883_GPIO_MODE_PCM_GPIO, 11, 4),
++      FUNC("gpio uartf", RT3883_GPIO_MODE_GPIO_UARTF, 7, 4),
++      FUNC("gpio i2s", RT3883_GPIO_MODE_GPIO_I2S, 7, 4),
+ };
+-
+-static struct ralink_pinmux_grp uart_mux[] = {
+-      {
+-              .name = "uartf",
+-              .mask = RT3883_GPIO_MODE_UARTF,
+-              .gpio_first = RT3883_GPIO_7,
+-              .gpio_last = RT3883_GPIO_14,
+-      }, {
+-              .name = "pcm uartf",
+-              .mask = RT3883_GPIO_MODE_PCM_UARTF,
+-              .gpio_first = RT3883_GPIO_7,
+-              .gpio_last = RT3883_GPIO_14,
+-      }, {
+-              .name = "pcm i2s",
+-              .mask = RT3883_GPIO_MODE_PCM_I2S,
+-              .gpio_first = RT3883_GPIO_7,
+-              .gpio_last = RT3883_GPIO_14,
+-      }, {
+-              .name = "i2s uartf",
+-              .mask = RT3883_GPIO_MODE_I2S_UARTF,
+-              .gpio_first = RT3883_GPIO_7,
+-              .gpio_last = RT3883_GPIO_14,
+-      }, {
+-              .name = "pcm gpio",
+-              .mask = RT3883_GPIO_MODE_PCM_GPIO,
+-              .gpio_first = RT3883_GPIO_11,
+-              .gpio_last = RT3883_GPIO_14,
+-      }, {
+-              .name = "gpio uartf",
+-              .mask = RT3883_GPIO_MODE_GPIO_UARTF,
+-              .gpio_first = RT3883_GPIO_7,
+-              .gpio_last = RT3883_GPIO_10,
+-      }, {
+-              .name = "gpio i2s",
+-              .mask = RT3883_GPIO_MODE_GPIO_I2S,
+-              .gpio_first = RT3883_GPIO_7,
+-              .gpio_last = RT3883_GPIO_10,
+-      }, {
+-              .name = "gpio",
+-              .mask = RT3883_GPIO_MODE_GPIO,
+-      }, {0}
++static struct rt2880_pmx_func uartlite_func[] = { FUNC("uartlite", 0, 15, 2) };
++static struct rt2880_pmx_func jtag_func[] = { FUNC("jtag", 0, 17, 25) };
++static struct rt2880_pmx_func mdio_func[] = { FUNC("mdio", 0, 22, 2) };
++static struct rt2880_pmx_func lna_a_func[] = { FUNC("lna a", 0, 32, 3) };
++static struct rt2880_pmx_func lna_g_func[] = { FUNC("lna a", 0, 35, 3) };
++static struct rt2880_pmx_func pci_func[] = {
++      FUNC("pci-dev", 0, 40, 32),
++      FUNC("pci-host2", 1, 40, 32),
++      FUNC("pci-host1", 2, 40, 32),
++      FUNC("pci-fnc", 3, 40, 32)
+ };
++static struct rt2880_pmx_func ge1_func[] = { FUNC("ge1", 0, 72, 12) };
++static struct rt2880_pmx_func ge2_func[] = { FUNC("ge1", 0, 84, 12) };
+-static struct ralink_pinmux_grp pci_mux[] = {
+-      {
+-              .name = "pci-dev",
+-              .mask = 0,
+-              .gpio_first = RT3883_GPIO_PCI_AD0,
+-              .gpio_last = RT3883_GPIO_PCI_AD31,
+-      }, {
+-              .name = "pci-host2",
+-              .mask = 1,
+-              .gpio_first = RT3883_GPIO_PCI_AD0,
+-              .gpio_last = RT3883_GPIO_PCI_AD31,
+-      }, {
+-              .name = "pci-host1",
+-              .mask = 2,
+-              .gpio_first = RT3883_GPIO_PCI_AD0,
+-              .gpio_last = RT3883_GPIO_PCI_AD31,
+-      }, {
+-              .name = "pci-fnc",
+-              .mask = 3,
+-              .gpio_first = RT3883_GPIO_PCI_AD0,
+-              .gpio_last = RT3883_GPIO_PCI_AD31,
+-      }, {
+-              .name = "pci-gpio",
+-              .mask = 7,
+-              .gpio_first = RT3883_GPIO_PCI_AD0,
+-              .gpio_last = RT3883_GPIO_PCI_AD31,
+-      }, {0}
++static struct rt2880_pmx_group rt3883_pinmux_data[] = {
++      GRP("i2c", i2c_func, 1, RT3883_GPIO_MODE_I2C),
++      GRP("spi", spi_func, 1, RT3883_GPIO_MODE_SPI),
++      GRP("uartf", uartf_func, RT3883_GPIO_MODE_UART0_MASK,
++              RT3883_GPIO_MODE_UART0_SHIFT),
++      GRP("uartlite", uartlite_func, 1, RT3883_GPIO_MODE_UART1),
++      GRP("jtag", jtag_func, 1, RT3883_GPIO_MODE_JTAG),
++      GRP("mdio", mdio_func, 1, RT3883_GPIO_MODE_MDIO),
++      GRP("lna a", lna_a_func, 1, RT3883_GPIO_MODE_LNA_A),
++      GRP("lna g", lna_g_func, 1, RT3883_GPIO_MODE_LNA_G),
++      GRP("pci", pci_func, RT3883_GPIO_MODE_PCI_MASK,
++              RT3883_GPIO_MODE_PCI_SHIFT),
++      GRP("ge1", ge1_func, 1, RT3883_GPIO_MODE_GE1),
++      GRP("ge2", ge2_func, 1, RT3883_GPIO_MODE_GE2),
++      { 0 }
+ };
+ static void rt3883_wdt_reset(void)
+@@ -155,17 +73,6 @@
+       rt_sysc_w32(t, RT3883_SYSC_REG_SYSCFG1);
+ }
+-struct ralink_pinmux rt_gpio_pinmux = {
+-      .mode = mode_mux,
+-      .uart = uart_mux,
+-      .uart_shift = RT3883_GPIO_MODE_UART0_SHIFT,
+-      .uart_mask = RT3883_GPIO_MODE_UART0_MASK,
+-      .wdt_reset = rt3883_wdt_reset,
+-      .pci = pci_mux,
+-      .pci_shift = RT3883_GPIO_MODE_PCI_SHIFT,
+-      .pci_mask = RT3883_GPIO_MODE_PCI_MASK,
+-};
+-
+ void __init ralink_clk_init(void)
+ {
+       unsigned long cpu_rate, sys_rate;
+@@ -243,4 +150,6 @@
+       soc_info->mem_base = RT3883_SDRAM_BASE;
+       soc_info->mem_size_min = RT3883_MEM_SIZE_MIN;
+       soc_info->mem_size_max = RT3883_MEM_SIZE_MAX;
++
++      rt2880_pinmux_data = rt3883_pinmux_data;
+ }
index 47d6d18060959a1e4b7f0e769030acc4a49d7d53..93222447c858eeed4a6cc2e06a750b4e88fc69fe 100644 (file)
@@ -1,7 +1,6 @@
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
 CONFIG_ARCH_DISCARD_MEMBLOCK=y
 CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_ARCH_HAS_RESET_CONTROLLER=y
 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_REQUIRE_GPIOLIB=y
@@ -30,11 +29,11 @@ CONFIG_CPU_R4K_FPU=y
 CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
 CONFIG_CPU_SUPPORTS_HIGHMEM=y
 CONFIG_CSRC_R4K=y
+CONFIG_DEBUG_PINCTRL=y
 CONFIG_DMA_NONCOHERENT=y
 # CONFIG_DTB_RT305X_EVAL is not set
 CONFIG_DTB_RT_NONE=y
 CONFIG_DTC=y
-# CONFIG_DWC_OTG is not set
 CONFIG_EARLY_PRINTK=y
 CONFIG_GENERIC_ATOMIC64=y
 CONFIG_GENERIC_CLOCKEVENTS=y
@@ -120,6 +119,11 @@ CONFIG_OF_NET=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_PERF_USE_VMALLOC=y
 CONFIG_PHYLIB=y
+# CONFIG_PINCONF is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_RALINK=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PINMUX=y
 # CONFIG_PREEMPT_RCU is not set
 CONFIG_RALINK=y
 CONFIG_RALINK_USBPHY=y
index 509af454fb2d37e2fba8c88914599ff6956cb4e8..c01a1e793bbcd6ed2c5a42706db351ab45264040 100644 (file)
@@ -2,7 +2,6 @@ CONFIG_AR8216_PHY=y
 CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
 CONFIG_ARCH_DISCARD_MEMBLOCK=y
 CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_ARCH_HAS_RESET_CONTROLLER=y
 CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_REQUIRE_GPIOLIB=y
@@ -28,6 +27,7 @@ CONFIG_CPU_R4K_FPU=y
 CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
 CONFIG_CPU_SUPPORTS_HIGHMEM=y
 CONFIG_CSRC_R4K=y
+CONFIG_DEBUG_PINCTRL=y
 CONFIG_DMA_NONCOHERENT=y
 # CONFIG_DTB_RT3883_EVAL is not set
 CONFIG_DTB_RT_NONE=y
@@ -126,6 +126,11 @@ CONFIG_PCI=y
 CONFIG_PCI_DOMAINS=y
 CONFIG_PERF_USE_VMALLOC=y
 CONFIG_PHYLIB=y
+# CONFIG_PINCONF is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_RALINK=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PINMUX=y
 # CONFIG_PREEMPT_RCU is not set
 CONFIG_RALINK=y
 CONFIG_RALINK_USBPHY=y