diff options
Diffstat (limited to 'target/linux/mvebu/patches-3.18/015-move_armada_370_xp_pinctrl_node_definition.patch')
-rw-r--r-- | target/linux/mvebu/patches-3.18/015-move_armada_370_xp_pinctrl_node_definition.patch | 538 |
1 files changed, 538 insertions, 0 deletions
diff --git a/target/linux/mvebu/patches-3.18/015-move_armada_370_xp_pinctrl_node_definition.patch b/target/linux/mvebu/patches-3.18/015-move_armada_370_xp_pinctrl_node_definition.patch new file mode 100644 index 0000000000..5259e05ccb --- /dev/null +++ b/target/linux/mvebu/patches-3.18/015-move_armada_370_xp_pinctrl_node_definition.patch @@ -0,0 +1,538 @@ +From 4904a82a9399d037588162e6fb4b293fa6a37f7c Mon Sep 17 00:00:00 2001 +From: Arnaud Ebalard <arno@natisbad.org> +Date: Sat, 22 Nov 2014 00:45:56 +0100 +Subject: arm: mvebu: move Armada 370/XP pinctrl node definition + armada-370-xp.dtsi + +What was done by Sebastian in 264a05e19bf5 ("ARM: mvebu: armada-xp: +Add node alias to pinctrl and add base address") and 01c434225ee6 +("ARM: mvebu: armada-xp: Use pinctrl node alias") can also be done for +Armada 370, i.e. + + - Rename Armada 370 pinctrl node to pin-ctrl with its address encoded + - Add a node alias to access the pinctrl node easily. + - use the newly available alias in existing Armada 370 .dts files + +We can even go a bit further by putting the pinctrl node definition in +armada-370-xp.dtsi, with only its reg property defined. This allows us +to then also use the newly defined node alias in armada-xp.dtsi, +armada-370.dtsi. + +Suggested-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> +Suggested-by: Andrew Lunn <andrew@lunn.ch> +Acked-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Arnaud Ebalard <arno@natisbad.org> +Link: https://lkml.kernel.org/r/b54eb45e5242728aace3ce8aef2eae4251f8dea3.1416613429.git.arno@natisbad.org +Signed-off-by: Jason Cooper <jason@lakedaemon.net> + +--- a/arch/arm/boot/dts/armada-370-db.dts ++++ b/arch/arm/boot/dts/armada-370-db.dts +@@ -157,3 +157,27 @@ + compatible = "linux,spdif-dir"; + }; + }; ++ ++&pinctrl { ++ /* ++ * These pins might be muxed as I2S by ++ * the bootloader, but it conflicts ++ * with the real I2S pins that are ++ * muxed using i2s_pins. We must mux ++ * those pins to a function other than ++ * I2S. ++ */ ++ pinctrl-0 = <&hog_pins1 &hog_pins2>; ++ pinctrl-names = "default"; ++ ++ hog_pins1: hog-pins1 { ++ marvell,pins = "mpp6", "mpp8", "mpp10", ++ "mpp12", "mpp13"; ++ marvell,function = "gpio"; ++ }; ++ ++ hog_pins2: hog-pins2 { ++ marvell,pins = "mpp5", "mpp7", "mpp9"; ++ marvell,function = "gpo"; ++ }; ++}; +--- a/arch/arm/boot/dts/armada-370-mirabox.dts ++++ b/arch/arm/boot/dts/armada-370-mirabox.dts +@@ -54,18 +54,6 @@ + status = "okay"; + }; + +- pinctrl { +- pwr_led_pin: pwr-led-pin { +- marvell,pins = "mpp63"; +- marvell,function = "gpo"; +- }; +- +- stat_led_pins: stat-led-pins { +- marvell,pins = "mpp64", "mpp65"; +- marvell,function = "gpio"; +- }; +- }; +- + gpio_leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; +@@ -169,3 +157,16 @@ + }; + }; + }; ++ ++&pinctrl { ++ pwr_led_pin: pwr-led-pin { ++ marvell,pins = "mpp63"; ++ marvell,function = "gpo"; ++ }; ++ ++ stat_led_pins: stat-led-pins { ++ marvell,pins = "mpp64", "mpp65"; ++ marvell,function = "gpio"; ++ }; ++}; ++ +--- a/arch/arm/boot/dts/armada-370-netgear-rn102.dts ++++ b/arch/arm/boot/dts/armada-370-netgear-rn102.dts +@@ -58,48 +58,6 @@ + status = "okay"; + }; + +- pinctrl { +- power_led_pin: power-led-pin { +- marvell,pins = "mpp57"; +- marvell,function = "gpio"; +- }; +- +- sata1_led_pin: sata1-led-pin { +- marvell,pins = "mpp15"; +- marvell,function = "gpio"; +- }; +- +- sata2_led_pin: sata2-led-pin { +- marvell,pins = "mpp14"; +- marvell,function = "gpio"; +- }; +- +- backup_led_pin: backup-led-pin { +- marvell,pins = "mpp56"; +- marvell,function = "gpio"; +- }; +- +- backup_button_pin: backup-button-pin { +- marvell,pins = "mpp58"; +- marvell,function = "gpio"; +- }; +- +- power_button_pin: power-button-pin { +- marvell,pins = "mpp62"; +- marvell,function = "gpio"; +- }; +- +- reset_button_pin: reset-button-pin { +- marvell,pins = "mpp6"; +- marvell,function = "gpio"; +- }; +- +- poweroff: poweroff { +- marvell,pins = "mpp8"; +- marvell,function = "gpio"; +- }; +- }; +- + mdio { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +@@ -256,3 +214,45 @@ + gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; + }; + }; ++ ++&pinctrl { ++ power_led_pin: power-led-pin { ++ marvell,pins = "mpp57"; ++ marvell,function = "gpio"; ++ }; ++ ++ sata1_led_pin: sata1-led-pin { ++ marvell,pins = "mpp15"; ++ marvell,function = "gpio"; ++ }; ++ ++ sata2_led_pin: sata2-led-pin { ++ marvell,pins = "mpp14"; ++ marvell,function = "gpio"; ++ }; ++ ++ backup_led_pin: backup-led-pin { ++ marvell,pins = "mpp56"; ++ marvell,function = "gpio"; ++ }; ++ ++ backup_button_pin: backup-button-pin { ++ marvell,pins = "mpp58"; ++ marvell,function = "gpio"; ++ }; ++ ++ power_button_pin: power-button-pin { ++ marvell,pins = "mpp62"; ++ marvell,function = "gpio"; ++ }; ++ ++ reset_button_pin: reset-button-pin { ++ marvell,pins = "mpp6"; ++ marvell,function = "gpio"; ++ }; ++ ++ poweroff: poweroff { ++ marvell,pins = "mpp8"; ++ marvell,function = "gpio"; ++ }; ++}; +--- a/arch/arm/boot/dts/armada-370-netgear-rn104.dts ++++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts +@@ -53,38 +53,6 @@ + status = "okay"; + }; + +- pinctrl { +- poweroff: poweroff { +- marvell,pins = "mpp60"; +- marvell,function = "gpio"; +- }; +- +- backup_button_pin: backup-button-pin { +- marvell,pins = "mpp52"; +- marvell,function = "gpio"; +- }; +- +- power_button_pin: power-button-pin { +- marvell,pins = "mpp62"; +- marvell,function = "gpio"; +- }; +- +- backup_led_pin: backup-led-pin { +- marvell,pins = "mpp63"; +- marvell,function = "gpo"; +- }; +- +- power_led_pin: power-led-pin { +- marvell,pins = "mpp64"; +- marvell,function = "gpio"; +- }; +- +- reset_button_pin: reset-button-pin { +- marvell,pins = "mpp65"; +- marvell,function = "gpio"; +- }; +- }; +- + mdio { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; +@@ -269,3 +237,35 @@ + gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; + }; + }; ++ ++&pinctrl { ++ poweroff: poweroff { ++ marvell,pins = "mpp60"; ++ marvell,function = "gpio"; ++ }; ++ ++ backup_button_pin: backup-button-pin { ++ marvell,pins = "mpp52"; ++ marvell,function = "gpio"; ++ }; ++ ++ power_button_pin: power-button-pin { ++ marvell,pins = "mpp62"; ++ marvell,function = "gpio"; ++ }; ++ ++ backup_led_pin: backup-led-pin { ++ marvell,pins = "mpp63"; ++ marvell,function = "gpo"; ++ }; ++ ++ power_led_pin: power-led-pin { ++ marvell,pins = "mpp64"; ++ marvell,function = "gpio"; ++ }; ++ ++ reset_button_pin: reset-button-pin { ++ marvell,pins = "mpp65"; ++ marvell,function = "gpio"; ++ }; ++}; +--- a/arch/arm/boot/dts/armada-370-rd.dts ++++ b/arch/arm/boot/dts/armada-370-rd.dts +@@ -59,18 +59,6 @@ + }; + + internal-regs { +- pinctrl { +- fan_pins: fan-pins { +- marvell,pins = "mpp8"; +- marvell,function = "gpio"; +- }; +- +- led_pins: led-pins { +- marvell,pins = "mpp32"; +- marvell,function = "gpio"; +- }; +- }; +- + serial@12000 { + status = "okay"; + }; +@@ -174,3 +162,15 @@ + }; + }; + }; ++ ++&pinctrl { ++ fan_pins: fan-pins { ++ marvell,pins = "mpp8"; ++ marvell,function = "gpio"; ++ }; ++ ++ led_pins: led-pins { ++ marvell,pins = "mpp32"; ++ marvell,function = "gpio"; ++ }; ++}; +--- a/arch/arm/boot/dts/armada-370-xp.dtsi ++++ b/arch/arm/boot/dts/armada-370-xp.dtsi +@@ -171,6 +171,10 @@ + status = "disabled"; + }; + ++ pinctrl: pin-ctrl@18000 { ++ reg = <0x18000 0x38>; ++ }; ++ + coredivclk: corediv-clock@18740 { + compatible = "marvell,armada-370-corediv-clock"; + reg = <0x18740 0xc>; +--- a/arch/arm/boot/dts/armada-370.dtsi ++++ b/arch/arm/boot/dts/armada-370.dtsi +@@ -107,67 +107,6 @@ + reg = <0x11100 0x20>; + }; + +- pinctrl { +- compatible = "marvell,mv88f6710-pinctrl"; +- reg = <0x18000 0x38>; +- +- sdio_pins1: sdio-pins1 { +- marvell,pins = "mpp9", "mpp11", "mpp12", +- "mpp13", "mpp14", "mpp15"; +- marvell,function = "sd0"; +- }; +- +- sdio_pins2: sdio-pins2 { +- marvell,pins = "mpp47", "mpp48", "mpp49", +- "mpp50", "mpp51", "mpp52"; +- marvell,function = "sd0"; +- }; +- +- sdio_pins3: sdio-pins3 { +- marvell,pins = "mpp48", "mpp49", "mpp50", +- "mpp51", "mpp52", "mpp53"; +- marvell,function = "sd0"; +- }; +- +- i2c0_pins: i2c0-pins { +- marvell,pins = "mpp2", "mpp3"; +- marvell,function = "i2c0"; +- }; +- +- i2s_pins1: i2s-pins1 { +- marvell,pins = "mpp5", "mpp6", "mpp7", +- "mpp8", "mpp9", "mpp10", +- "mpp12", "mpp13"; +- marvell,function = "audio"; +- }; +- +- i2s_pins2: i2s-pins2 { +- marvell,pins = "mpp49", "mpp47", "mpp50", +- "mpp59", "mpp57", "mpp61", +- "mpp62", "mpp60", "mpp58"; +- marvell,function = "audio"; +- }; +- +- mdio_pins: mdio-pins { +- marvell,pins = "mpp17", "mpp18"; +- marvell,function = "ge"; +- }; +- +- ge0_rgmii_pins: ge0-rgmii-pins { +- marvell,pins = "mpp5", "mpp6", "mpp7", "mpp8", +- "mpp9", "mpp10", "mpp11", "mpp12", +- "mpp13", "mpp14", "mpp15", "mpp16"; +- marvell,function = "ge0"; +- }; +- +- ge1_rgmii_pins: ge1-rgmii-pins { +- marvell,pins = "mpp19", "mpp20", "mpp21", "mpp22", +- "mpp23", "mpp24", "mpp25", "mpp26", +- "mpp27", "mpp28", "mpp29", "mpp30"; +- marvell,function = "ge1"; +- }; +- }; +- + gpio0: gpio@18100 { + compatible = "marvell,orion-gpio"; + reg = <0x18100 0x40>; +@@ -306,3 +245,63 @@ + }; + }; + }; ++ ++&pinctrl { ++ compatible = "marvell,mv88f6710-pinctrl"; ++ ++ sdio_pins1: sdio-pins1 { ++ marvell,pins = "mpp9", "mpp11", "mpp12", ++ "mpp13", "mpp14", "mpp15"; ++ marvell,function = "sd0"; ++ }; ++ ++ sdio_pins2: sdio-pins2 { ++ marvell,pins = "mpp47", "mpp48", "mpp49", ++ "mpp50", "mpp51", "mpp52"; ++ marvell,function = "sd0"; ++ }; ++ ++ sdio_pins3: sdio-pins3 { ++ marvell,pins = "mpp48", "mpp49", "mpp50", ++ "mpp51", "mpp52", "mpp53"; ++ marvell,function = "sd0"; ++ }; ++ ++ i2c0_pins: i2c0-pins { ++ marvell,pins = "mpp2", "mpp3"; ++ marvell,function = "i2c0"; ++ }; ++ ++ i2s_pins1: i2s-pins1 { ++ marvell,pins = "mpp5", "mpp6", "mpp7", ++ "mpp8", "mpp9", "mpp10", ++ "mpp12", "mpp13"; ++ marvell,function = "audio"; ++ }; ++ ++ i2s_pins2: i2s-pins2 { ++ marvell,pins = "mpp49", "mpp47", "mpp50", ++ "mpp59", "mpp57", "mpp61", ++ "mpp62", "mpp60", "mpp58"; ++ marvell,function = "audio"; ++ }; ++ ++ mdio_pins: mdio-pins { ++ marvell,pins = "mpp17", "mpp18"; ++ marvell,function = "ge"; ++ }; ++ ++ ge0_rgmii_pins: ge0-rgmii-pins { ++ marvell,pins = "mpp5", "mpp6", "mpp7", "mpp8", ++ "mpp9", "mpp10", "mpp11", "mpp12", ++ "mpp13", "mpp14", "mpp15", "mpp16"; ++ marvell,function = "ge0"; ++ }; ++ ++ ge1_rgmii_pins: ge1-rgmii-pins { ++ marvell,pins = "mpp19", "mpp20", "mpp21", "mpp22", ++ "mpp23", "mpp24", "mpp25", "mpp26", ++ "mpp27", "mpp28", "mpp29", "mpp30"; ++ marvell,function = "ge1"; ++ }; ++}; +--- a/arch/arm/boot/dts/armada-xp.dtsi ++++ b/arch/arm/boot/dts/armada-xp.dtsi +@@ -73,43 +73,6 @@ + status = "disabled"; + }; + +- pinctrl: pin-ctrl@18000 { +- reg = <0x18000 0x38>; +- +- pmx_ge0_gmii: pmx-ge0-gmii { +- marvell,pins = +- "mpp0", "mpp1", "mpp2", "mpp3", +- "mpp4", "mpp5", "mpp6", "mpp7", +- "mpp8", "mpp9", "mpp10", "mpp11", +- "mpp12", "mpp13", "mpp14", "mpp15", +- "mpp16", "mpp17", "mpp18", "mpp19", +- "mpp20", "mpp21", "mpp22", "mpp23"; +- marvell,function = "ge0"; +- }; +- +- pmx_ge0_rgmii: pmx-ge0-rgmii { +- marvell,pins = +- "mpp0", "mpp1", "mpp2", "mpp3", +- "mpp4", "mpp5", "mpp6", "mpp7", +- "mpp8", "mpp9", "mpp10", "mpp11"; +- marvell,function = "ge0"; +- }; +- +- pmx_ge1_rgmii: pmx-ge1-rgmii { +- marvell,pins = +- "mpp12", "mpp13", "mpp14", "mpp15", +- "mpp16", "mpp17", "mpp18", "mpp19", +- "mpp20", "mpp21", "mpp22", "mpp23"; +- marvell,function = "ge1"; +- }; +- +- sdio_pins: sdio-pins { +- marvell,pins = "mpp30", "mpp31", "mpp32", +- "mpp33", "mpp34", "mpp35"; +- marvell,function = "sd0"; +- }; +- }; +- + system-controller@18200 { + compatible = "marvell,armada-370-xp-system-controller"; + reg = <0x18200 0x500>; +@@ -238,3 +201,38 @@ + }; + }; + }; ++ ++&pinctrl { ++ pmx_ge0_gmii: pmx-ge0-gmii { ++ marvell,pins = ++ "mpp0", "mpp1", "mpp2", "mpp3", ++ "mpp4", "mpp5", "mpp6", "mpp7", ++ "mpp8", "mpp9", "mpp10", "mpp11", ++ "mpp12", "mpp13", "mpp14", "mpp15", ++ "mpp16", "mpp17", "mpp18", "mpp19", ++ "mpp20", "mpp21", "mpp22", "mpp23"; ++ marvell,function = "ge0"; ++ }; ++ ++ pmx_ge0_rgmii: pmx-ge0-rgmii { ++ marvell,pins = ++ "mpp0", "mpp1", "mpp2", "mpp3", ++ "mpp4", "mpp5", "mpp6", "mpp7", ++ "mpp8", "mpp9", "mpp10", "mpp11"; ++ marvell,function = "ge0"; ++ }; ++ ++ pmx_ge1_rgmii: pmx-ge1-rgmii { ++ marvell,pins = ++ "mpp12", "mpp13", "mpp14", "mpp15", ++ "mpp16", "mpp17", "mpp18", "mpp19", ++ "mpp20", "mpp21", "mpp22", "mpp23"; ++ marvell,function = "ge1"; ++ }; ++ ++ sdio_pins: sdio-pins { ++ marvell,pins = "mpp30", "mpp31", "mpp32", ++ "mpp33", "mpp34", "mpp35"; ++ marvell,function = "sd0"; ++ }; ++}; |