diff mbox

[1/4] ARM: dts: kirkwood: add Linksys EA4500

Message ID 00000150d49a7cf7-e97bf540-89ce-49bf-a25e-2d082acab273-000000@email.amazonses.com (mailing list archive)
State New, archived
Headers show

Commit Message

Luka Perkov Nov. 4, 2015, 10:25 p.m. UTC
Based on dts files from OpenWrt.

Signed-off-by: Luka Perkov <luka.perkov@sartura.hr>
---
 .../devicetree/bindings/arm/marvell,kirkwood.txt   |   1 +
 .../devicetree/bindings/vendor-prefixes.txt        |   1 +
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/kirkwood-ea4500.dts              | 156 +++++++++++++++++++++
 4 files changed, 159 insertions(+)
 create mode 100644 arch/arm/boot/dts/kirkwood-ea4500.dts

Comments

Arnd Bergmann Nov. 4, 2015, 10:41 p.m. UTC | #1
On Wednesday 04 November 2015 22:25:05 Luka Perkov wrote:
> +/ {
> +	model = "Linksys EA4500";
> +	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282", "marvell,kirkwood";

According to https://wikidevi.com/wiki/Linksys_EA4500 there are multiple versions
of this device, and at least EA4500v3 is completely incompatible with the version
in this patch. Should we add "linksys,ea4500v1" as a compatible string to identify
this better?

	Arnd
Luka Perkov Nov. 4, 2015, 10:46 p.m. UTC | #2
On Wed, Nov 04, 2015 at 11:41:01PM +0100, Arnd Bergmann wrote:
> On Wednesday 04 November 2015 22:25:05 Luka Perkov wrote:
> > +/ {
> > +	model = "Linksys EA4500";
> > +	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282", "marvell,kirkwood";
> 
> According to https://wikidevi.com/wiki/Linksys_EA4500 there are multiple versions
> of this device, and at least EA4500v3 is completely incompatible with the version
> in this patch. Should we add "linksys,ea4500v1" as a compatible string to identify
> this better?

Right. I'll send v2 after getting some more comments.

Luka
Andrew Lunn Nov. 4, 2015, 11:34 p.m. UTC | #3
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
> index 82d2ac9..264f8ba 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.txt
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
> @@ -124,6 +124,7 @@ lantiq	Lantiq Semiconductor
>  lenovo	Lenovo Group Ltd.
>  lg	LG Corporation
>  linux	Linux-specific binding
> +linksys	Belkin International, Inc.
>  lsi	LSI Corp. (LSI Logic)
>  lltc	Linear Technology Corporation
>  marvell	Marvell Technology Group Ltd.

Hi Luka

This part should probably be a patch of its own, sent to the DT
maintainers.

> +/ {
> +	model = "Linksys EA4500";
> +	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282", "marvell,kirkwood";
> +
> +	memory {
> +		device_type = "memory";
> +		reg = <0x00000000 0x8000000>;
> +	};
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200n8 earlyprintk";

Please use stdout-path = &uart0; You can also put the baud rate etc on
the end.

> +&nand {
> +	status = "okay";
> +	pinctrl-0 = <&pmx_nand>;
> +	pinctrl-names = "default";
> +
> +	partition@0 {
> +		label = "u-boot";
> +		reg = <0x0000000 0x80000>;
> +	};
> +
> +	partition@80000 {
> +		label = "u-boot environment";
> +		reg = <0x80000 0x20000>;
> +	};

Is there a hole here?

> +
> +	partition@200000 {
> +		label = "kernel";
> +		reg = <0x200000 0x200000>;
> +	};
> +
> +	partition@400000 {
> +		label = "root";
> +		reg = <0x400000 0x1c00000>;
> +	};
> +};

> +&eth0 {
> +	status = "okay";
> +	ethernet0-port@0 {
> +		speed = <1000>;
> +		duplex = <1>;
> +	};
> +};
> +
> +&eth1 {
> +	status = "okay";
> +	ethernet1-port@0 {
> +		speed = <1000>;
> +		duplex = <1>;
> +	};
> +};

Why fix the speed? Are they connected to a switch?

    Andrew
Imre Kaloz Nov. 5, 2015, 11 a.m. UTC | #4
On Wed, 04 Nov 2015 23:25:05 +0100, Luka Perkov <luka.perkov@sartura.hr>  
wrote:

<snip>

> --- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
> +++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
> @@ -49,6 +49,7 @@ board. Currently known boards are:
>  "lacie,netspace_max_v2"
>  "lacie,netspace_mini_v2"
>  "lacie,netspace_v2"
> +"linksys,ea4500"
>  "marvell,db-88f6281-bp"
>  "marvell,db-88f6282-bp"
>  "marvell,mv88f6281gtw-ge"

The same device was sold as the ea4200v2 as well. Please use the  
engineering name "viper" instead, as discussed at  
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/319590.html

> --- a/Documentation/devicetree/bindings/vendor-prefixes.txt
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
> @@ -124,6 +124,7 @@ lantiq	Lantiq Semiconductor
>  lenovo	Lenovo Group Ltd.
>  lg	LG Corporation
>  linux	Linux-specific binding
> +linksys	Belkin International, Inc.
>  lsi	LSI Corp. (LSI Logic)
>  lltc	Linear Technology Corporation
>  marvell	Marvell Technology Group Ltd.

Although Linksys is a subsidiary of Belkin, I think linksys should stay  
Linksys here ;)

> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index bb8fa02..a16c04b 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -168,6 +168,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
>  	kirkwood-ds411.dtb \
>  	kirkwood-ds411j.dtb \
>  	kirkwood-ds411slim.dtb \
> +	kirkwood-ea4500.dtb \
>  	kirkwood-goflexnet.dtb \
>  	kirkwood-guruplug-server-plus.dtb \
>  	kirkwood-ib62x0.dtb \

"kirkwood-viper.dtb"

> --- /dev/null
> +++ b/arch/arm/boot/dts/kirkwood-ea4500.dts
> @@ -0,0 +1,156 @@

<snip>

> +	model = "Linksys EA4500";
> +	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282",  
> "marvell,kirkwood";

model = "Linksys EA4200v2 / EA4500"
compatible = "linksys,viper", "marvell,kirkwood-88f6282",  
"marvell,kirkwood";

<snip>

> +&nand {
> +	status = "okay";
> +	pinctrl-0 = <&pmx_nand>;
> +	pinctrl-names = "default";
> +
> +	partition@0 {
> +		label = "u-boot";
> +		reg = <0x0000000 0x80000>;
> +	};
> +
> +	partition@80000 {
> +		label = "u-boot environment";
> +		reg = <0x80000 0x20000>;
> +	};
> +
> +	partition@200000 {
> +		label = "kernel";
> +		reg = <0x200000 0x200000>;
> +	};
> +
> +	partition@400000 {
> +		label = "root";
> +		reg = <0x400000 0x1c00000>;
> +	};
> +};

Please use the factory partitions instead.


Imre
Imre Kaloz Nov. 5, 2015, 11:03 a.m. UTC | #5
On Wed, 04 Nov 2015 23:41:01 +0100, Arnd Bergmann <arnd@arndb.de> wrote:

> On Wednesday 04 November 2015 22:25:05 Luka Perkov wrote:
>> +/ {
>> +	model = "Linksys EA4500";
>> +	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282",  
>> "marvell,kirkwood";
>
> According to https://wikidevi.com/wiki/Linksys_EA4500 there are multiple  
> versions
> of this device, and at least EA4500v3 is completely incompatible with  
> the version
> in this patch. Should we add "linksys,ea4500v1" as a compatible string  
> to identify
> this better?

Not sure, as "v1" is never marked on the box/boards, and for this reason  
as far as I remember, we've never marked "v1" on any upstream code (unlike  
vX).


Imre
Jason Cooper Nov. 24, 2015, 3:27 p.m. UTC | #6
Hey Luka,

On Wed, Nov 04, 2015 at 10:46:19PM +0000, Luka Perkov wrote:
> On Wed, Nov 04, 2015 at 11:41:01PM +0100, Arnd Bergmann wrote:
> > On Wednesday 04 November 2015 22:25:05 Luka Perkov wrote:
> > > +/ {
> > > +	model = "Linksys EA4500";
> > > +	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282", "marvell,kirkwood";
> > 
> > According to https://wikidevi.com/wiki/Linksys_EA4500 there are multiple versions
> > of this device, and at least EA4500v3 is completely incompatible with the version
> > in this patch. Should we add "linksys,ea4500v1" as a compatible string to identify
> > this better?
> 
> Right. I'll send v2 after getting some more comments.

Did I miss the v2?

thx,

Jason.
Luka Perkov Nov. 24, 2015, 3:32 p.m. UTC | #7
Hi Jason,

On Tue, Nov 24, 2015 at 03:27:31PM +0000, Jason Cooper wrote:
> On Wed, Nov 04, 2015 at 10:46:19PM +0000, Luka Perkov wrote:
> > On Wed, Nov 04, 2015 at 11:41:01PM +0100, Arnd Bergmann wrote:
> > > On Wednesday 04 November 2015 22:25:05 Luka Perkov wrote:
> > > > +/ {
> > > > +	model = "Linksys EA4500";
> > > > +	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282", "marvell,kirkwood";
> > > 
> > > According to https://wikidevi.com/wiki/Linksys_EA4500 there are multiple versions
> > > of this device, and at least EA4500v3 is completely incompatible with the version
> > > in this patch. Should we add "linksys,ea4500v1" as a compatible string to identify
> > > this better?
> > 
> > Right. I'll send v2 after getting some more comments.
> 
> Did I miss the v2?

Nope, I'll send it out next week.

Regards,
Luka
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
index 5171ad8..7a99d4a 100644
--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
@@ -49,6 +49,7 @@  board. Currently known boards are:
 "lacie,netspace_max_v2"
 "lacie,netspace_mini_v2"
 "lacie,netspace_v2"
+"linksys,ea4500"
 "marvell,db-88f6281-bp"
 "marvell,db-88f6282-bp"
 "marvell,mv88f6281gtw-ge"
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 82d2ac9..264f8ba 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -124,6 +124,7 @@  lantiq	Lantiq Semiconductor
 lenovo	Lenovo Group Ltd.
 lg	LG Corporation
 linux	Linux-specific binding
+linksys	Belkin International, Inc.
 lsi	LSI Corp. (LSI Logic)
 lltc	Linear Technology Corporation
 marvell	Marvell Technology Group Ltd.
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index bb8fa02..a16c04b 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -168,6 +168,7 @@  dtb-$(CONFIG_MACH_KIRKWOOD) += \
 	kirkwood-ds411.dtb \
 	kirkwood-ds411j.dtb \
 	kirkwood-ds411slim.dtb \
+	kirkwood-ea4500.dtb \
 	kirkwood-goflexnet.dtb \
 	kirkwood-guruplug-server-plus.dtb \
 	kirkwood-ib62x0.dtb \
diff --git a/arch/arm/boot/dts/kirkwood-ea4500.dts b/arch/arm/boot/dts/kirkwood-ea4500.dts
new file mode 100644
index 0000000..caccc8e
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-ea4500.dts
@@ -0,0 +1,156 @@ 
+/*
+ * kirkwood-ea4500.dts - Device Tree file for Linksys EA4500
+ *
+ * (c) 2013 Jonas Gorski <jogo@openwrt.org>
+ * (c) 2013 Deutsche Telekom Innovation Laboratories
+ * (c) 2014 Luka Perkov <luka.perkov@sartura.hr>
+ *
+ * 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 EA4500";
+	compatible = "linksys,ea4500", "marvell,kirkwood-88f6282", "marvell,kirkwood";
+
+	memory {
+		device_type = "memory";
+		reg = <0x00000000 0x8000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 earlyprintk";
+	};
+
+	mbus {
+		pcie-controller {
+			status = "okay";
+
+			pcie@1,0 {
+				status = "okay";
+			};
+
+			pcie@2,0 {
+				status = "okay";
+			};
+		};
+	};
+
+	ocp@f1000000 {
+		pinctrl: pin-controller@10000 {
+			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";
+			};
+		};
+
+		rtc@10300 {
+			status = "disabled";
+		};
+
+		serial@12000 {
+			status = "okay";
+		};
+
+	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
+		pinctrl-names = "default";
+
+		button@15 {
+			label = "WPS Button";
+			linux,code = <KEY_WPS_BUTTON>;
+			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+		};
+
+		button@16 {
+			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 = "ea4500:white:health";
+			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
+		};
+
+		white-pulse {
+			label = "ea4500:white:pulse";
+			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
+
+&nand {
+	status = "okay";
+	pinctrl-0 = <&pmx_nand>;
+	pinctrl-names = "default";
+
+	partition@0 {
+		label = "u-boot";
+		reg = <0x0000000 0x80000>;
+	};
+
+	partition@80000 {
+		label = "u-boot environment";
+		reg = <0x80000 0x20000>;
+	};
+
+	partition@200000 {
+		label = "kernel";
+		reg = <0x200000 0x200000>;
+	};
+
+	partition@400000 {
+		label = "root";
+		reg = <0x400000 0x1c00000>;
+	};
+};
+
+&mdio {
+	status = "okay";
+};
+
+&eth0 {
+	status = "okay";
+	ethernet0-port@0 {
+		speed = <1000>;
+		duplex = <1>;
+	};
+};
+
+&eth1 {
+	status = "okay";
+	ethernet1-port@0 {
+		speed = <1000>;
+		duplex = <1>;
+	};
+};