diff mbox

[v3] ARM: dts: kirkwood: Add DTS for Linksys EA4200v2/EA4500

Message ID 1459779366-15648-1-git-send-email-bert@biot.com (mailing list archive)
State New, archived
Headers show

Commit Message

Bert Vermeulen April 4, 2016, 2:16 p.m. UTC
This platform is based on a Marvell 88E6282 SoC and 88E6171 switch.
---
Changes from v2:
- added linksys to filename
- added make rule

Changes from v1:
- changed console to stdout-path
- removed unnecesarry @0 from dsa node, and fixed dsa/switch node
- fixed partitions according to the official docs
- prefer node labels rather than full hierarchy where possible

 arch/arm/boot/dts/Makefile                   |   1 +
 arch/arm/boot/dts/kirkwood-linksys-viper.dts | 236 +++++++++++++++++++++++++++
 2 files changed, 237 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-linksys-viper.dts

Comments

Andrew Lunn April 4, 2016, 2:37 p.m. UTC | #1
On Mon, Apr 04, 2016 at 04:16:05PM +0200, Bert Vermeulen wrote:
> This platform is based on a Marvell 88E6282 SoC and 88E6171 switch.

It is missing your signed-off-by.

See Section "11) Sign your work" of Documentation/SubmittingPatches.

Apart from that, it looks good.

      Andrew


> ---
> Changes from v2:
> - added linksys to filename
> - added make rule
> 
> Changes from v1:
> - changed console to stdout-path
> - removed unnecesarry @0 from dsa node, and fixed dsa/switch node
> - fixed partitions according to the official docs
> - prefer node labels rather than full hierarchy where possible
> 
>  arch/arm/boot/dts/Makefile                   |   1 +
>  arch/arm/boot/dts/kirkwood-linksys-viper.dts | 236 +++++++++++++++++++++++++++
>  2 files changed, 237 insertions(+)
>  create mode 100644 arch/arm/boot/dts/kirkwood-linksys-viper.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 95c1923..feeb3f9 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -199,6 +199,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
>  	kirkwood-linkstation-lswsxl.dtb \
>  	kirkwood-linkstation-lswvl.dtb \
>  	kirkwood-linkstation-lswxl.dtb \
> +	kirkwood-linksys-viper.dtb \
>  	kirkwood-lschlv2.dtb \
>  	kirkwood-lsxhl.dtb \
>  	kirkwood-mplcec4.dtb \
> diff --git a/arch/arm/boot/dts/kirkwood-linksys-viper.dts b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
> new file mode 100644
> index 0000000..3ada18d
> --- /dev/null
> +++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
> @@ -0,0 +1,236 @@
> +/*
> + * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500)
> + *
> + * (c) 2013 Jonas Gorski <jogo@openwrt.org>
> + * (c) 2013 Deutsche Telekom Innovation Laboratories
> + * (c) 2014 Luka Perkov <luka@openwrt.org>
> + * (c) 2014 Randy C. Will <randall.will@gmail.com>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2.  This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +/dts-v1/;
> +
> +#include "kirkwood.dtsi"
> +#include "kirkwood-6282.dtsi"
> +
> +/ {
> +	model = "Linksys Viper (E4200v2 / EA4500)";
> +	compatible = "linksys,viper", "marvell,kirkwood-88f6282", "marvell,kirkwood";
> +
> +	memory {
> +		device_type = "memory";
> +		reg = <0x00000000 0x8000000>;
> +	};
> +
> +	aliases {
> +		serial0 = &uart0;
> +	};
> +
> +	chosen {
> +		stdout-path = "serial0:115200n8";
> +	};
> +
> +	gpio_keys {
> +		compatible = "gpio-keys";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
> +		pinctrl-names = "default";
> +
> +		wps {
> +			label = "WPS Button";
> +			linux,code = <KEY_WPS_BUTTON>;
> +			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		reset {
> +			label = "Reset Button";
> +			linux,code = <KEY_RESTART>;
> +			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +
> +	gpio-leds {
> +		compatible = "gpio-leds";
> +		pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
> +		pinctrl-names = "default";
> +
> +		white-health {
> +			label = "viper:white:health";
> +			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		white-pulse {
> +			label = "viper:white:pulse";
> +			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +
> +	dsa {
> +		compatible = "marvell,dsa";
> +		#address-cells = <2>;
> +		#size-cells = <0>;
> +
> +		dsa,ethernet = <&eth0port>;
> +		dsa,mii-bus = <&mdio>;
> +
> +		switch@16,0 {
> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			reg = <16 0>;	/* MDIO address 16, switch 0 in tree */
> +
> +			port@0 {
> +				reg = <0>;
> +				label = "ethernet1";
> +			};
> +
> +			port@1 {
> +				reg = <1>;
> +				label = "ethernet2";
> +			};
> +
> +			port@2 {
> +				reg = <2>;
> +				label = "ethernet3";
> +			};
> +
> +			port@3 {
> +				reg = <3>;
> +				label = "ethernet4";
> +			};
> +
> +			port@4 {
> +				reg = <4>;
> +				label = "internet";
> +			};
> +
> +			port@5 {
> +				reg = <5>;
> +				label = "cpu";
> +			};
> +		};
> +	};
> +};
> +
> +&pinctrl {
> +	pmx_led_white_health: pmx-led-white-health {
> +		marvell,pins = "mpp7";
> +		marvell,function = "gpo";
> +	};
> +	pmx_led_white_pulse: pmx-led-white-pulse {
> +		marvell,pins = "mpp14";
> +		marvell,function = "gpio";
> +	};
> +	pmx_btn_wps: pmx-btn-wps {
> +		marvell,pins = "mpp47";
> +		marvell,function = "gpio";
> +	};
> +	pmx_btn_reset: pmx-btn-reset {
> +		marvell,pins = "mpp48";
> +		marvell,function = "gpio";
> +	};
> +};
> +
> +&nand {
> +	status = "okay";
> +	pinctrl-0 = <&pmx_nand>;
> +	pinctrl-names = "default";
> +
> +	partitions {
> +		compatible = "fixed-partitions";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +
> +		partition@0 {
> +			label = "u-boot";
> +			reg = <0x0 0x80000>;
> +			read-only;
> +		};
> +
> +		partition@80000 {
> +			label = "u_env";
> +			reg = <0x80000 0x20000>;
> +		};
> +
> +		partition@A0000 {
> +			label = "s_env";
> +			reg = <0xA0000 0x20000>;
> +		};
> +
> +		partition@200000 {
> +			label = "kernel";
> +			reg = <0x200000 0x2A0000>;
> +		};
> +
> +		partition@4A0000 {
> +			label = "rootfs";
> +			reg = <0x4A0000 0x1760000>;
> +		};
> +
> +		partition@1C00000 {
> +			label = "alt_kernel";
> +			reg = <0x1C00000 0x2A0000>;
> +		};
> +
> +		partition@1EA0000 {
> +			label = "alt_rootfs";
> +			reg = <0x1EA0000 0x1760000>;
> +		};
> +
> +		partition@3600000 {
> +			label = "syscfg";
> +			reg = <0x3600000 0x4A00000>;
> +		};
> +
> +		partition@C0000 {
> +			label = "unused";
> +			reg = <0xC0000 0x140000>;
> +		};
> +
> +	};
> +};
> +
> +&pciec {
> +	status = "okay";
> +};
> +
> +&pcie0 {
> +	status = "okay";
> +};
> +
> +&pcie1 {
> +	status = "okay";
> +};
> +
> +&mdio {
> +	status = "okay";
> +};
> +
> +&uart0 {
> +	status = "okay";
> +};
> +
> +/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
> + * fixed speed and duplex. */
> +&eth0 {
> +	status = "okay";
> +	ethernet0-port@0 {
> +		speed = <1000>;
> +		duplex = <1>;
> +	};
> +};
> +
> +/* eth1 doesn't appear to be connected at all. */
> +&eth1 {
> +	status = "disabled";
> +};
> +
> +/* There is no battery on the board, so the RTC does not keep
> +   time when there is no power, making it useless. */
> +&rtc {
> +	status = "disabled";
> +};
> +
> -- 
> 1.9.1
>
diff mbox

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 95c1923..feeb3f9 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -199,6 +199,7 @@  dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-linkstation-lswsxl.dtb \
 	kirkwood-linkstation-lswvl.dtb \
 	kirkwood-linkstation-lswxl.dtb \
+	kirkwood-linksys-viper.dtb \
 	kirkwood-lschlv2.dtb \
 	kirkwood-lsxhl.dtb \
 	kirkwood-mplcec4.dtb \
diff --git a/arch/arm/boot/dts/kirkwood-linksys-viper.dts b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
new file mode 100644
index 0000000..3ada18d
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
@@ -0,0 +1,236 @@ 
+/*
+ * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500)
+ *
+ * (c) 2013 Jonas Gorski <jogo@openwrt.org>
+ * (c) 2013 Deutsche Telekom Innovation Laboratories
+ * (c) 2014 Luka Perkov <luka@openwrt.org>
+ * (c) 2014 Randy C. Will <randall.will@gmail.com>
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2.  This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+/dts-v1/;
+
+#include "kirkwood.dtsi"
+#include "kirkwood-6282.dtsi"
+
+/ {
+	model = "Linksys Viper (E4200v2 / EA4500)";
+	compatible = "linksys,viper", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
+		pinctrl-names = "default";
+
+		wps {
+			label = "WPS Button";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+		};
+
+		reset {
+			label = "Reset Button";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
+		pinctrl-names = "default";
+
+		white-health {
+			label = "viper:white:health";
+			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
+		};
+
+		white-pulse {
+			label = "viper:white:pulse";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
+	dsa {
+		compatible = "marvell,dsa";
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		dsa,ethernet = <&eth0port>;
+		dsa,mii-bus = <&mdio>;
+
+		switch@16,0 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			reg = <16 0>;	/* MDIO address 16, switch 0 in tree */
+
+			port@0 {
+				reg = <0>;
+				label = "ethernet1";
+			};
+
+			port@1 {
+				reg = <1>;
+				label = "ethernet2";
+			};
+
+			port@2 {
+				reg = <2>;
+				label = "ethernet3";
+			};
+
+			port@3 {
+				reg = <3>;
+				label = "ethernet4";
+			};
+
+			port@4 {
+				reg = <4>;
+				label = "internet";
+			};
+
+			port@5 {
+				reg = <5>;
+				label = "cpu";
+			};
+		};
+	};
+};
+
+&pinctrl {
+	pmx_led_white_health: pmx-led-white-health {
+		marvell,pins = "mpp7";
+		marvell,function = "gpo";
+	};
+	pmx_led_white_pulse: pmx-led-white-pulse {
+		marvell,pins = "mpp14";
+		marvell,function = "gpio";
+	};
+	pmx_btn_wps: pmx-btn-wps {
+		marvell,pins = "mpp47";
+		marvell,function = "gpio";
+	};
+	pmx_btn_reset: pmx-btn-reset {
+		marvell,pins = "mpp48";
+		marvell,function = "gpio";
+	};
+};
+
+&nand {
+	status = "okay";
+	pinctrl-0 = <&pmx_nand>;
+	pinctrl-names = "default";
+
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition@0 {
+			label = "u-boot";
+			reg = <0x0 0x80000>;
+			read-only;
+		};
+
+		partition@80000 {
+			label = "u_env";
+			reg = <0x80000 0x20000>;
+		};
+
+		partition@A0000 {
+			label = "s_env";
+			reg = <0xA0000 0x20000>;
+		};
+
+		partition@200000 {
+			label = "kernel";
+			reg = <0x200000 0x2A0000>;
+		};
+
+		partition@4A0000 {
+			label = "rootfs";
+			reg = <0x4A0000 0x1760000>;
+		};
+
+		partition@1C00000 {
+			label = "alt_kernel";
+			reg = <0x1C00000 0x2A0000>;
+		};
+
+		partition@1EA0000 {
+			label = "alt_rootfs";
+			reg = <0x1EA0000 0x1760000>;
+		};
+
+		partition@3600000 {
+			label = "syscfg";
+			reg = <0x3600000 0x4A00000>;
+		};
+
+		partition@C0000 {
+			label = "unused";
+			reg = <0xC0000 0x140000>;
+		};
+
+	};
+};
+
+&pciec {
+	status = "okay";
+};
+
+&pcie0 {
+	status = "okay";
+};
+
+&pcie1 {
+	status = "okay";
+};
+
+&mdio {
+	status = "okay";
+};
+
+&uart0 {
+	status = "okay";
+};
+
+/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
+ * fixed speed and duplex. */
+&eth0 {
+	status = "okay";
+	ethernet0-port@0 {
+		speed = <1000>;
+		duplex = <1>;
+	};
+};
+
+/* eth1 doesn't appear to be connected at all. */
+&eth1 {
+	status = "disabled";
+};
+
+/* There is no battery on the board, so the RTC does not keep
+   time when there is no power, making it useless. */
+&rtc {
+	status = "disabled";
+};
+