Explorar o código

lantiq: improve Arcadyan ARV4510PW support

Arcadyan ARV4510PW has already a build profile in OpenWrt, but it is
severely lacking. This patch brings it up-to-date.

Signed-off-by: Matti Laakso <[email protected]>

SVN-Revision: 39230
John Crispin %!s(int64=12) %!d(string=hai) anos
pai
achega
f58b424c9e

+ 12 - 4
target/linux/lantiq/base-files/etc/uci-defaults/02_network

@@ -47,16 +47,24 @@ board=$(lantiq_board_id)
 
 case "$board" in
 # adm6996
+ARV4510PW)
+	lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr)
+	wan_mac=$(macaddr_add "$lan_mac" 1)
+	ucidef_set_interface_lan "eth0.1"
+	ucidef_add_switch "switch0" "1" "1"
+	ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t"
+	;;
+
 ARV4520PW)
 	ucidef_set_interface_lan "eth0.1"
-	ucidef_add_switch "eth0" "1" "1"
-	ucidef_add_switch_vlan "eth0" "1" "3 2 1 0 5t"
+	ucidef_add_switch "switch0" "1" "1"
+	ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t"
 	;;
 
 ACMP252|GIGASX76X)
 	ucidef_set_interface_lan "eth0.1"
-	ucidef_add_switch "eth0" "1" "1"
-	ucidef_add_switch_vlan "eth0" "1" "4 3 2 1 5t"
+	ucidef_add_switch "switch0" "1" "1"
+	ucidef_add_switch_vlan "switch0" "1" "4 3 2 1 5t"
 	;;
 
 # ar8316

+ 118 - 29
target/linux/lantiq/dts/ARV4510PW.dts

@@ -3,7 +3,7 @@
 /include/ "danube.dtsi"
 
 / {
-	model = "ARV4510QW - Wippies Homebox";
+	model = "ARV4510PW - Wippies, Elisa";
 
 	chosen {
 		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
@@ -32,32 +32,20 @@
 
 				partition@0 {
 					label = "uboot";
-					reg = <0x00000 0x20000>;
+					reg = <0x00000 0x40000>;
 					read-only;
 				};
 
-				partition@20000 {
+				partition@40000 {
 					label = "uboot_env";
-					reg = <0x20000 0x20000>;
+					reg = <0x40000 0x20000>;
 					read-only;
 				};
 
-				partition@240000 {
+				partition@60000 {
 					label = "firmware";
-					reg = <0x40000 0xf00000>;
+					reg = <0x60000 0xfa0000>;
 				};
-
-				partition@fe0000 {
-					label = "boardconfig";
-					reg = <0xfe0000 0x10000>;
-					read-only;
-				};
-			};
-
-			mac_addr {
-				compatible = "lantiq,eth-mac";
-				reg = <0 0xff0016 0x6>;
-				mac-increment = <2>;
 			};
 		};
 		gpio: pinmux@E100B10 {
@@ -65,36 +53,47 @@
 			pinctrl-0 = <&state_default>;
 
 			state_default: pinmux {
+				ebu {
+					lantiq,groups = "ebu a23";
+					lantiq,function = "ebu";
+					lantiq,output = <1>;
+				};
 				stp {
 					lantiq,groups = "stp";
-                                        lantiq,function = "stp";
+					lantiq,function = "stp";
+					lantiq,output = <1>;
 				};
 				exin {
-					lantiq,groups = "exin2";
+					lantiq,groups = "exin1", "exin2";
 					lantiq,function = "exin";
+					lantiq,output = <0>;
 				};
 				pci_in {
 					lantiq,groups = "req1", "req2";
 					lantiq,function = "pci";
-					lantiq,open-drain = <1>;
-					lantiq,pull = <2>;
 					lantiq,output = <0>;
 				};
 				pci_out {
-					lantiq,groups = "gnt1";
+					lantiq,groups = "gnt1", "gnt2";
 					lantiq,function = "pci";
 					lantiq,output = <1>;
 				};
 				pci_rst {
 					lantiq,pins = "io21";
-					lantiq,pull = <0>;
+					lantiq,open-drain;
 					lantiq,output = <1>;
 				};
+				buttons {
+					lantiq,pins = "io3", "io14";
+					lantiq,pull = <2>;
+					lantiq,output = <0>;
+				};
 			};
 		};
 
 		gpios: stp@E100BB0 {
 			status = "okay";
+			lantiq,groups = <0x7>;
 		};
 
 		etop@E180000 {
@@ -105,14 +104,104 @@
 			status = "okay";
 			lantiq,external-clock;
 			interrupt-map = <
-                                0x7000 0 0 1 &icu0 30
-		                0x7800 0 0 1 &icu0 135
-			        0x7800 0 0 2 &icu0 135
-			        0x7800 0 0 3 &icu0 135
+				0x6000 0 0 1 &icu0 135
+				0x7800 0 0 1 &icu0 66
+				0x7800 0 0 2 &icu0 66
+				0x7800 0 0 3 &icu0 66
 			>;
 			gpio-reset = <&gpio 21 0>;
-			req-mask = <0x3>;
+			req-mask = <0x7>;
 		};
 
 	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+
+		wps {
+			label = "wps";
+			gpios = <&gpio 14 1>;
+			linux,code = <0x211>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 3 1>;
+			linux,code = <0x198>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		power {
+			label = "power";
+			gpios = <&gpios 21 0>;
+		};
+		power2 {
+			label = "power2";
+			gpios = <&gpios 20 0>;
+		};
+		lan1 {
+			label = "lan1";
+			gpios = <&gpios 19 0>;
+		};
+		lan2 {
+			label = "lan2";
+			gpios = <&gpios 18 0>;
+		};
+		lan3 {
+			label = "lan3";
+			gpios = <&gpios 17 0>;
+		};
+		lan4 {
+			label = "lan4";
+			gpios = <&gpios 16 0>;
+		};
+		wifi {
+			label = "wifi";
+			gpios = <&gpios 15 0>;
+		};
+		adsl {
+			label = "adsl";
+			gpios = <&gpios 14 0>;
+		};
+		internet {
+			label = "internet";
+			gpios = <&gpios 13 0>;
+		};
+		internet2 {
+			label = "internet2";
+			gpios = <&gpios 12 0>;
+		};
+		voip {
+			label = "voip";
+			gpios = <&gpios 11 0>;
+		};
+		phone {
+			label = "phone";
+			gpios = <&gpios 10 0>;
+		};
+		phone2 {
+			label = "phone2";
+			gpios = <&gpios 9 0>;
+		};
+		usb {
+			label = "usb";
+			gpios = <&gpios 8 0>;
+		};
+		usb2 {
+			label = "usb2";
+			gpios = <&gpios 7 0>;
+		};
+		usb3 {
+			label = "usb3";
+			gpios = <&gpios 6 0>;
+		};
+		unlabeled {
+			label = "unlabeled";
+			gpios = <&gpios 5 0>;
+		};
+	};
 };

+ 5 - 4
target/linux/lantiq/xway/profiles/arv.mk

@@ -43,12 +43,13 @@ endef
 $(eval $(call Profile,ARV4518PWR01A))
 
 define Profile/ARV4510PW
-  NAME:=Wippies Homebox - ARV4510PW
-  PACKAGES:=kmod-ledtrig-usbdev kmod-usb2 kmod-usb-uhci \
+  NAME:=Wippies, Elisa - ARV4510PW
+  PACKAGES:=kmod-ledtrig-usbdev kmod-usb2-pci kmod-usb-uhci \
 	kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
-	kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
+	kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
 	ltq-adsl-app ppp-mod-pppoa \
-	kmod-rt61 wpad-mini \
+	kmod-ltq-tapi kmod-ltq-vmmc \
+	kmod-rt2800-pci kmod-ath5k wpad-mini \
 	swconfig
 endef