SPEAr3xx: Add pinctrl support for boards
authorViresh Kumar <viresh.kumar@st.com>
Thu, 29 Mar 2012 03:00:19 +0000 (08:30 +0530)
committerArnd Bergmann <arnd@arndb.de>
Sun, 22 Apr 2012 20:49:28 +0000 (22:49 +0200)
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Stephen Warren <swarren@wwwdotorg.org>
arch/arm/boot/dts/spear300-evb.dts
arch/arm/boot/dts/spear300.dtsi
arch/arm/boot/dts/spear310-evb.dts
arch/arm/boot/dts/spear310.dtsi
arch/arm/boot/dts/spear320-evb.dts
arch/arm/boot/dts/spear320.dtsi
arch/arm/mach-spear3xx/Kconfig
arch/arm/plat-spear/Kconfig

index eaecc29b9d815f44642c75b9a80c2f64f4a53ab4..402ca0d550119f11d4517183c3d1270a2b703353 100644 (file)
        };
 
        ahb {
+               pinmux@99000000 {
+                       st,pinmux-mode = <2>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&state_default>;
+
+                       state_default: pinmux {
+                               i2c0 {
+                                       st,pins = "i2c0_grp";
+                                       st,function = "i2c0";
+                               };
+                               ssp0 {
+                                       st,pins = "ssp0_grp";
+                                       st,function = "ssp0";
+                               };
+                               mii0 {
+                                       st,pins = "mii0_grp";
+                                       st,function = "mii0";
+                               };
+                               uart0 {
+                                       st,pins = "uart0_grp";
+                                       st,function = "uart0";
+                               };
+                               clcd {
+                                       st,pins = "clcd_pfmode_grp";
+                                       st,function = "clcd";
+                               };
+                               sdhci {
+                                       st,pins = "sdhci_4bit_grp";
+                                       st,function = "sdhci";
+                               };
+                               gpio1 {
+                                       st,pins = "gpio1_4_to_7_grp",
+                                               "gpio1_0_to_3_grp";
+                                       st,function = "gpio1";
+                               };
+                       };
+               };
+
                clcd@60000000 {
                        status = "okay";
                };
index f9fcbf4f477bdee5dfdf0bb8da6e003b65749558..01c5e358fdb271b00a409f7c33af0a77d276c6be 100644 (file)
                ranges = <0x60000000 0x60000000 0x50000000
                          0xd0000000 0xd0000000 0x30000000>;
 
+               pinmux@99000000 {
+                       compatible = "st,spear300-pinmux";
+                       reg = <0x99000000 0x1000>;
+               };
+
                clcd@60000000 {
                        compatible = "arm,clcd-pl110", "arm,primecell";
                        reg = <0x60000000 0x1000>;
index c86af33f700ef3d14d799f6199458536bf70ed2e..6d95317100adf1b1d85ce62b68bad18a32414d1f 100644 (file)
        };
 
        ahb {
+               pinmux@b4000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&state_default>;
+
+                       state_default: pinmux {
+                               gpio0 {
+                                       st,pins = "gpio0_pin0_grp",
+                                               "gpio0_pin1_grp",
+                                               "gpio0_pin2_grp",
+                                               "gpio0_pin3_grp",
+                                               "gpio0_pin4_grp",
+                                               "gpio0_pin5_grp";
+                                       st,function = "gpio0";
+                               };
+                               i2c0 {
+                                       st,pins = "i2c0_grp";
+                                       st,function = "i2c0";
+                               };
+                               mii0 {
+                                       st,pins = "mii0_grp";
+                                       st,function = "mii0";
+                               };
+                               ssp0 {
+                                       st,pins = "ssp0_grp";
+                                       st,function = "ssp0";
+                               };
+                               uart0 {
+                                       st,pins = "uart0_grp";
+                                       st,function = "uart0";
+                               };
+                               emi {
+                                       st,pins = "emi_cs_0_to_5_grp";
+                                       st,function = "emi";
+                               };
+                               fsmc {
+                                       st,pins = "fsmc_grp";
+                                       st,function = "fsmc";
+                               };
+                               uart1 {
+                                       st,pins = "uart1_grp";
+                                       st,function = "uart1";
+                               };
+                               uart2 {
+                                       st,pins = "uart2_grp";
+                                       st,function = "uart2";
+                               };
+                               uart3 {
+                                       st,pins = "uart3_grp";
+                                       st,function = "uart3";
+                               };
+                               uart4 {
+                                       st,pins = "uart4_grp";
+                                       st,function = "uart4";
+                               };
+                               uart5 {
+                                       st,pins = "uart5_grp";
+                                       st,function = "uart5";
+                               };
+                       };
+               };
+
                dma@fc400000 {
                        status = "okay";
                };
index dc7fa14da84699e579a7803edcfe8e4a53583f26..e47081c494d916bf4f21de313b03f2b63964394f 100644 (file)
                          0xb0000000 0xb0000000 0x10000000
                          0xd0000000 0xd0000000 0x30000000>;
 
+               pinmux@b4000000 {
+                       compatible = "st,spear310-pinmux";
+                       reg = <0xb4000000 0x1000>;
+               };
+
                fsmc: flash@44000000 {
                        compatible = "st,spear600-fsmc-nand";
                        #address-cells = <1>;
index d43de712e863224efc6d44c82e11a661d4079b50..0c6463b71a37968c93fe9cfa879264929dc974a9 100644 (file)
        };
 
        ahb {
+               pinmux@b3000000 {
+                       st,pinmux-mode = <3>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&state_default>;
+
+                       state_default: pinmux {
+                               i2c0 {
+                                       st,pins = "i2c0_grp";
+                                       st,function = "i2c0";
+                               };
+                               mii0 {
+                                       st,pins = "mii0_grp";
+                                       st,function = "mii0";
+                               };
+                               ssp0 {
+                                       st,pins = "ssp0_grp";
+                                       st,function = "ssp0";
+                               };
+                               uart0 {
+                                       st,pins = "uart0_grp";
+                                       st,function = "uart0";
+                               };
+                               sdhci {
+                                       st,pins = "sdhci_cd_51_grp";
+                                       st,function = "sdhci";
+                               };
+                               i2s {
+                                       st,pins = "i2s_grp";
+                                       st,function = "i2s";
+                               };
+                               uart1 {
+                                       st,pins = "uart1_grp";
+                                       st,function = "uart1";
+                               };
+                               uart2 {
+                                       st,pins = "uart2_grp";
+                                       st,function = "uart2";
+                               };
+                               can0 {
+                                       st,pins = "can0_grp";
+                                       st,function = "can0";
+                               };
+                               can1 {
+                                       st,pins = "can1_grp";
+                                       st,function = "can1";
+                               };
+                               mii2 {
+                                       st,pins = "mii2_grp";
+                                       st,function = "mii2";
+                               };
+                               pwm0_1 {
+                                       st,pins = "pwm0_1_pin_14_15_grp";
+                                       st,function = "pwm0_1";
+                               };
+                               pwm2 {
+                                       st,pins = "pwm2_pin_13_grp";
+                                       st,function = "pwm2";
+                               };
+                       };
+               };
+
                clcd@90000000 {
                        status = "okay";
                };
index 9a0267a5a0b720556981f0767e7e46e1a4398d07..5372ca399b1f37eba5de326b716c639cd3309be4 100644 (file)
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "simple-bus";
-               ranges = <0x40000000 0x40000000 0x70000000
+               ranges = <0x40000000 0x40000000 0x80000000
                          0xd0000000 0xd0000000 0x30000000>;
 
+               pinmux@b3000000 {
+                       compatible = "st,spear320-pinmux";
+                       reg = <0xb3000000 0x1000>;
+               };
+
                clcd@90000000 {
                        compatible = "arm,clcd-pl110", "arm,primecell";
                        reg = <0x90000000 0x1000>;
index d9fe11cb6f16d6de7ba4b795639047fb364ef1d3..8bd37291fa4f00ff652a9232b011962b6ae273c0 100644 (file)
@@ -7,16 +7,19 @@ if ARCH_SPEAR3XX
 menu "SPEAr3xx Implementations"
 config MACH_SPEAR300
        bool "SPEAr300 Machine support with Device Tree"
+       select PINCTRL_SPEAR300
        help
          Supports ST SPEAr300 machine configured via the device-tree
 
 config MACH_SPEAR310
        bool "SPEAr310 Machine support with Device Tree"
+       select PINCTRL_SPEAR310
        help
          Supports ST SPEAr310 machine configured via the device-tree
 
 config MACH_SPEAR320
        bool "SPEAr320 Machine support with Device Tree"
+       select PINCTRL_SPEAR320
        help
          Supports ST SPEAr320 machine configured via the device-tree
 endmenu
index 6c066fcb2979f76de8eec19b2f699fd563d1145f..387655b5ce0593025e4a5b73194fa2033dc3965c 100644 (file)
@@ -13,6 +13,7 @@ config ARCH_SPEAR3XX
        select ARM_VIC
        select CPU_ARM926T
        select USE_OF
+       select PINCTRL
        help
          Supports for ARM's SPEAR3XX family