From 1a3ad5a03780a47b8eb552ab5fa2e65a4d1fdf60 Mon Sep 17 00:00:00 2001
From: Luka Perkov <luka@openwrt.org>
Date: Fri, 5 Jul 2013 07:44:42 +0000
Subject: [PATCH] lantiq: add device tree support for arv4519pw

Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 37178
---
 target/linux/lantiq/dts/ARV4519PW.dts    | 178 +++++++++++++++++++++++
 target/linux/lantiq/image/Makefile       |   5 +-
 target/linux/lantiq/xway/profiles/arv.mk |  11 ++
 3 files changed, 193 insertions(+), 1 deletion(-)
 create mode 100644 target/linux/lantiq/dts/ARV4519PW.dts

diff --git a/target/linux/lantiq/dts/ARV4519PW.dts b/target/linux/lantiq/dts/ARV4519PW.dts
new file mode 100644
index 0000000000..cf26f5e640
--- /dev/null
+++ b/target/linux/lantiq/dts/ARV4519PW.dts
@@ -0,0 +1,178 @@
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV4519PW - Vodafone, Pirelli";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x2000000>;
+	};
+
+	sram@1F000000 {
+		vmmc@107000 {
+			status = "okay";
+			gpios = <&gpio 31 0>;
+		};
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x2000000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x10000>;
+					read-only;
+				};
+
+				partition@10000 {
+					label = "uboot_env";
+					reg = <0x10000 0x10000>;
+				};
+
+				partition@20000 {
+					label = "linux";
+					reg = <0x20000 0x3d0000>;
+				};
+
+				partition@3f0000 {
+					label = "boardconfig";
+					reg = <0x3f0000 0x10000>;
+					read-only;
+				};
+			};
+
+			gpiomm: gpiomm@4000000 {
+				compatible = "lantiq,gpio-mm";
+				reg = <1 0x0 0x10 >;
+				#address-cells = <1>;
+				#size-cells = <1>;
+				#gpio-cells = <2>;
+				gpio-controller;
+				lantiq,shadow = <0x400>;
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x3f0016 0x6>;
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				ebu {
+					lantiq,groups = "ebu cs1";
+					lantiq,function = "ebu";
+				};
+			};
+		};
+
+		etop@E180000 {
+			phy-mode = "rmii";
+		};
+
+		ifxhcd@E101000 {
+			status = "okay";
+			gpios = <&gpio 14 0>;
+		};
+
+		pci@E105400 {
+			status = "okay";
+			lantiq,external-clock;
+			gpio-reset = <&gpio 21 0>;
+			req-mask = <0xf>;
+		};
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio 28 1>;
+			linux,code = <0xf7>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 30 1>;
+			linux,code = <0x198>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		power {
+			label = "power";
+			gpios = <&gpio 2 1>;
+		};
+		power2 {
+			label = "power2";
+			gpios = <&gpio 7 1>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpio 6 1>;
+		};
+		dsl {
+			label = "dsl";
+			gpios = <&gpio 4 1>;
+		};
+		online {
+			label = "online";
+			gpios = <&gpio 5 1>;
+		};
+		online2 {
+			label = "online2";
+			gpios = <&gpio 8 1>;
+		};
+		usb {
+			label = "usb";
+			gpios = <&gpio 19 1>;
+		};
+		voip {
+			label = "voip";
+			gpios = <&gpiomm 0 1>;
+		};
+		fxs1 {
+			label = "fxs1";
+			gpios = <&gpiomm 1 1>;
+		};
+		fxs2 {
+			label = "fxs2";
+			gpios = <&gpiomm 2 1>;
+		};
+		fxo {
+			label = "fxo";
+			gpios = <&gpiomm 3 1>;
+		};
+		wps {
+			label = "wps";
+			gpios = <&gpiomm 5 1>;
+		};
+		wps2 {
+			label = "wps2";
+			gpios = <&gpiomm 4 1>;
+		};
+		wps3 {
+			label = "wps3";
+			gpios = <&gpiomm 6 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index fc916d99fd..20840cad82 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -6,7 +6,7 @@
 #
 
 # boards missing since devicetree update
-#EASY50712 ARV3527P GIGASX76X ARV4519PW BTHOMEHUBV2B BTHOMEHUBV2BOPENRG
+#EASY50712 ARV3527P GIGASX76X BTHOMEHUBV2B BTHOMEHUBV2BOPENRG
 #WBMR P2601HNFX H201L
 
 include $(TOPDIR)/rules.mk
@@ -188,6 +188,9 @@ Image/Build/Profile/ARV4518PWR01=$(call Image/Build/$(1),$(1),ARV4518PWR01)
 Image/BuildKernel/Profile/ARV4518PWR01A=$(call Image/BuildKernel/Template,ARV4518PWR01A)
 Image/Build/Profile/ARV4518PWR01A=$(call Image/Build/$(1),$(1),ARV4518PWR01A)
 
+Image/BuildKernel/Profile/ARV4519PW=$(call Image/BuildKernel/Template,ARV4519PW)
+Image/Build/Profile/ARV4519PW=$(call Image/Build/$(1),$(1),ARV4519PW)
+
 Image/BuildKernel/Profile/ARV4520PW=$(call Image/BuildKernel/Template,ARV4520PW)
 Image/Build/Profile/ARV4520PW=$(call Image/Build/$(1),$(1),ARV4520PW)
 
diff --git a/target/linux/lantiq/xway/profiles/arv.mk b/target/linux/lantiq/xway/profiles/arv.mk
index 21311882a7..797969a3b0 100644
--- a/target/linux/lantiq/xway/profiles/arv.mk
+++ b/target/linux/lantiq/xway/profiles/arv.mk
@@ -54,6 +54,17 @@ endef
 
 $(eval $(call Profile,ARV4510PW))
 
+define Profile/ARV4519PW
+  NAME:=Vodafone, Pirelli - ARV4519PW
+  PACKAGES:=kmod-ltq-hcd-danube kmod-ledtrig-usbdev \
+	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
+	kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
+	ltq-adsl-app ppp-mod-pppoa \
+	swconfig
+endef
+
+$(eval $(call Profile,ARV4519PW))
+
 define Profile/ARV7518PW
   NAME:=Astoria - ARV7518PW
   PACKAGES:=kmod-ltq-hcd-danube kmod-ledtrig-usbdev \
-- 
2.30.2