2016-04-04 14:47:09

by Bert Vermeulen

[permalink] [raw]
Subject: [PATCH v4] ARM: dts: kirkwood: Add DTS for Linksys EA4200v2/EA4500

This platform is based on a Marvell 88E6282 SoC and 88E6171 switch.

Signed-off-by: Bert Vermeulen <[email protected]>
---
Changes from v3:
- added comment noting eth1 is connected to switch as well

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 | 237 +++++++++++++++++++++++++++
2 files changed, 238 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..0f4631f
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
@@ -0,0 +1,237 @@
+/*
+ * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500)
+ *
+ * (c) 2013 Jonas Gorski <[email protected]>
+ * (c) 2013 Deutsche Telekom Innovation Laboratories
+ * (c) 2014 Luka Perkov <[email protected]>
+ * (c) 2014 Randy C. Will <[email protected]>
+ *
+ * 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 is connected to the switch at port 6. However DSA only supports a
+ * single CPU port. So leave this port disabled to avoid confusion. */
+&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


2016-04-04 14:55:45

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH v4] ARM: dts: kirkwood: Add DTS for Linksys EA4200v2/EA4500\

On Mon, Apr 04, 2016 at 04:46:07PM +0200, Bert Vermeulen wrote:
> This platform is based on a Marvell 88E6282 SoC and 88E6171 switch.
>
> Signed-off-by: Bert Vermeulen <[email protected]>

Reviewed-by: Andrew Lunn <[email protected]>

Thanks
Andrew


> ---
> Changes from v3:
> - added comment noting eth1 is connected to switch as well
>
> 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 | 237 +++++++++++++++++++++++++++
> 2 files changed, 238 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..0f4631f
> --- /dev/null
> +++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
> @@ -0,0 +1,237 @@
> +/*
> + * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500)
> + *
> + * (c) 2013 Jonas Gorski <[email protected]>
> + * (c) 2013 Deutsche Telekom Innovation Laboratories
> + * (c) 2014 Luka Perkov <[email protected]>
> + * (c) 2014 Randy C. Will <[email protected]>
> + *
> + * 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 is connected to the switch at port 6. However DSA only supports a
> + * single CPU port. So leave this port disabled to avoid confusion. */
> +&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
>

2016-04-05 11:50:20

by Imre Kaloz

[permalink] [raw]
Subject: Re: [PATCH v4] ARM: dts: kirkwood: Add DTS for Linksys EA4200v2/EA4500\

On Mon, 04 Apr 2016 16:55:28 +0200, Andrew Lunn <[email protected]> wrote:

> On Mon, Apr 04, 2016 at 04:46:07PM +0200, Bert Vermeulen wrote:
>> This platform is based on a Marvell 88E6282 SoC and 88E6171 switch.
>>
>> Signed-off-by: Bert Vermeulen <[email protected]>
>
> Reviewed-by: Andrew Lunn <[email protected]>

Reviewed-by: Imre Kaloz <[email protected]>


Thanks,

Imre

2016-04-07 22:30:45

by Gregory CLEMENT

[permalink] [raw]
Subject: Re: [PATCH v4] ARM: dts: kirkwood: Add DTS for Linksys EA4200v2/EA4500\

Hi Bert,

On mar., avril 05 2016, "Imre Kaloz" <[email protected]> wrote:

> On Mon, 04 Apr 2016 16:55:28 +0200, Andrew Lunn <[email protected]> wrote:
>
>> On Mon, Apr 04, 2016 at 04:46:07PM +0200, Bert Vermeulen wrote:
>>> This platform is based on a Marvell 88E6282 SoC and 88E6171 switch.
>>>
>>> Signed-off-by: Bert Vermeulen <[email protected]>
>>
>> Reviewed-by: Andrew Lunn <[email protected]>
>
> Reviewed-by: Imre Kaloz <[email protected]>


Applied on mvebu/dt with the reviewed-by flags and a fix on the comment
block style.

Thanks,

Gregory


>
>
> Thanks,
>
> Imre

--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com