diff mbox

[LEDE-DEV,1/2] lantiq: add support for ARV7506PW11 (Alice/O2 IAD 4421)

Message ID 1466441259-5074-1-git-send-email-dev@kresin.me
State Accepted
Headers show

Commit Message

Mathias Kresin June 20, 2016, 4:47 p.m. UTC
From: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>

Ethernet, ADSL2+ and LEDs are fully functional.

Supporting the two TAE ports and SIP gateway was not attempted.

The WiFi is unreliable, due to experimental support for rt35xx family
devices by the rt2800pci driver.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
[rebase to LEDE HEAD]
[switch to normal image instead of brnboot image]
[remove not required pinmux child nodes keys, leds, ebu, exin, pci_in and pci_out]
[remove switch_rst pinmux child node (no support for hw reset in driver/setting a default GPIO value in DT]
[enable usage of the wireless LED]
[fixup mac address configuration]
Sgned-off-by: Mathias Kresin <dev@kresin.me>
---
 target/linux/lantiq/base-files/etc/board.d/01_leds |   3 +
 .../linux/lantiq/base-files/etc/board.d/02_network |   8 ++
 .../etc/hotplug.d/firmware/10-rt2x00-eeprom        |   2 +-
 target/linux/lantiq/dts/ARV7506PW11.dts            | 159 +++++++++++++++++++++
 target/linux/lantiq/image/Makefile                 |  12 ++
 5 files changed, 183 insertions(+), 1 deletion(-)
 create mode 100644 target/linux/lantiq/dts/ARV7506PW11.dts
diff mbox

Patch

diff --git a/target/linux/lantiq/base-files/etc/board.d/01_leds b/target/linux/lantiq/base-files/etc/board.d/01_leds
index 4cca17f..c9d9a77 100755
--- a/target/linux/lantiq/base-files/etc/board.d/01_leds
+++ b/target/linux/lantiq/base-files/etc/board.d/01_leds
@@ -27,6 +27,9 @@  board_config_update
 board=$(lantiq_board_name)
 
 case "$board" in
+ARV7506PW11)
+	ucidef_set_led_wlan "wifi" "wifi" "arv7506pw11:green:wlan" "phy0radio"
+	;;
 BTHOMEHUBV5A)
 	ucidef_set_led_default "dimmed" "dimmed" "dimmed" "0"
 	;;
diff --git a/target/linux/lantiq/base-files/etc/board.d/02_network b/target/linux/lantiq/base-files/etc/board.d/02_network
index cafcb0e..e872315 100755
--- a/target/linux/lantiq/base-files/etc/board.d/02_network
+++ b/target/linux/lantiq/base-files/etc/board.d/02_network
@@ -46,6 +46,14 @@  ARV4519PW|ARV7510PW22|ARV7518PW|ARV752DPW22|ARV8539PW22)
 	;;
 
 # rtl8306g
+ARV7506PW11)
+	lan_mac=$(mtd_get_mac_binary board_config 22)
+	wan_mac=$(macaddr_add "$lan_mac" 2)
+	ucidef_add_switch "switch0" \
+		"4:lan:1" "3:lan:2" "2:lan:3" "1:lan:4" "5t@eth0"
+	;;
+
+# rtl8306g
 ARV7519PW)
 	lan_mac=$(mtd_get_mac_binary board_config 22)
 	wan_mac=$(macaddr_add "$lan_mac" 1)
diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
index 5f1cb00..da10797 100644
--- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
+++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -35,7 +35,7 @@  case "$FIRMWARE" in
 "RT2860.eeprom" )
 	local board=$(lantiq_board_name)
 	case $board in
-	ARV7510PW22|ARV7519PW|ARV752DPW|ARV752DPW22|VGV7519)
+	ARV7506PW11|ARV7510PW22|ARV7519PW|ARV752DPW|ARV752DPW22|VGV7519)
 		rt2x00_eeprom_extract "board_config" 520 256 1
 		;;
 	ARV7525PW)
diff --git a/target/linux/lantiq/dts/ARV7506PW11.dts b/target/linux/lantiq/dts/ARV7506PW11.dts
new file mode 100644
index 0000000..7519e22
--- /dev/null
+++ b/target/linux/lantiq/dts/ARV7506PW11.dts
@@ -0,0 +1,159 @@ 
+/dts-v1/;
+
+/include/ "danube.dtsi"
+
+/ {
+	model = "ARV7506PW11 - Alice/O2 IAD 4421";
+
+	chosen {
+		leds {
+			boot = &power;
+			failsafe = &power_red;
+			running = &power;
+
+			dsl = &dsl;
+			internet = &internet;
+			wifi = &wlan;
+		};
+	};
+
+	memory@0 {
+		reg = <0x0 0x4000000>;
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x800000>;
+
+				partitions {
+					compatible = "fixed-partitions";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					partition@0 {
+						label = "uboot";
+						reg = <0x00000 0x40000>;
+						read-only;
+					};
+
+					partition@40000 {
+						label = "uboot_env";
+						reg = <0x40000 0x10000>;
+						read-only;
+					};
+
+					partition@50000 {
+						label = "firmware";
+						reg = <0x50000 0x7a0000>;
+					};
+
+					partition@7f0000 {
+						label = "board_config";
+						reg = <0x7f0000 0x10000>;
+						read-only;
+					};
+				};
+			};
+
+			mac_addr {
+				compatible = "lantiq,eth-mac";
+				reg = <0 0x7f0016 0x6>;
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				pci {
+					lantiq,groups = "gnt1";
+					lantiq,function = "pci";
+					lantiq,output = <1>;
+				};
+				pci_rst {
+					lantiq,pins = "io21";
+					lantiq,pull = <2>;
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		/* GPIO 19: switch reset */
+		etop@E180000 {
+			phy-mode = "rmii";
+		};
+
+		pci@E105400 {
+			status = "okay";
+			gpio-reset = <&gpio 21 0>;
+		};
+	};
+
+	ralink_eep {
+		compatible = "ralink,eeprom";
+		ralink,eeprom = "RT2860.eeprom";
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+
+		rfkill {
+			label = "rfkill";
+			gpios = <&gpio 11 1>;
+			linux,code = <0xf7>;
+		};
+		reset {
+			label = "reset";
+			gpios = <&gpio 30 1>;
+			linux,code = <0x198>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+		wlan: wlan {
+			label = "arv7506pw11:green:wlan";
+			gpios = <&gpio 2 1>;
+		};
+		power: power {
+			label = "arv7506pw11:green:power";
+			gpios = <&gpio 3 1>;
+			default-state = "keep";
+		};
+		dsl: dsl {
+			label = "arv7506pw11:green:dsl";
+			gpios = <&gpio 4 1>;
+		};
+		internet: internet {
+			label = "arv7506pw11:green:internet";
+			gpios = <&gpio 5 1>;
+		};
+		power_red: power_red {
+			label = "arv7506pw11:red:power";
+			gpios = <&gpio 6 1>;
+		};
+		internet_red {
+			label = "arv7506pw11:red:internet";
+			gpios = <&gpio 7 1>;
+		};
+		info {
+			label = "arv7506pw11:green:info";
+			gpios = <&gpio 8 1>;
+		};
+		telefon {
+			label = "arv7506pw11:green:telefon";
+			gpios = <&gpio 9 1>;
+		};
+		info_red {
+			label = "arv7506pw11:red:info";
+			gpios = <&gpio 20 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index e75d634..026934f 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -354,6 +354,18 @@  define Device/ARV4519PW
 endef
 TARGET_DEVICES += ARV4519PW
 
+define Device/ARV7506PW11
+  DEVICE_PROFILE := ARV7506PW11
+  IMAGE_SIZE := 7808k
+  DEVICE_TITLE := Alice/O2 IAD 4421 - ARV7506PW11
+  DEVICE_PACKAGES := 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 \
+	kmod-rt2800-pci wpad-mini \
+	swconfig
+endef
+TARGET_DEVICES += ARV7506PW11
+
 define Device/ARV7510PW22
   DEVICE_PROFILE := ARV7510PW22
   IMAGE_SIZE := 31232k