aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mvebu/patches-3.18/015-move_armada_370_xp_pinctrl_node_definition.patch
diff options
context:
space:
mode:
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.patch538
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 0000000..ed36d68
--- /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>;
+@@ -314,3 +253,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>;
+@@ -246,3 +209,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";
++ };
++};