Просмотр исходного кода

lantiq: add support for FritzBox 7312

The FritzBox 7312 is also known as 1&1 WLAN-MODEM. The device is almost
the same as FB7330, but only one ETH-Port and no USB.

Hardware
SoC: Lantiq Xway ARX188 PSB 50812 EL
RAM: 64MB DDR1 (Zentel A4S12D40FTP-G5)
Ethernet: Atheros 8030
Wireless: Atheros AR9227 b/g/n 2x2
DSL: Lantiq ADSL2+
DECT: Dialog SC14441
Buttons: WiFi, DECT
LEDs: Power/DSL, Fon, DECT, WLAN, Info

LEDs
Power: GPIO#44 (active low)
Internet: GPIO#47 (active low)
DECT: GPIO#38 (active low)
WLAN: GPIO#37 (active low)
Info: GPIO#35 (active low)

The Fon LED is labeled as internet in avm gpl sources.

Buttons
WLAN: GPIO#1 (active low)
DECT: GPIO#2 (active low)

Phy
GPIO#03: 25 MHz
GPIO#34: Reset (active low)
GPIO#39: Int
GPIO#42: MII MDIO
GPIO#43: MII MDC

PCIe
GPIO#21: reset (active low)

Installation:

To install OpenWrt via Eva bootloader, within the first seconds after
power on a ftp connection need to be established to the FRITZ!Box at
192.168.178.1 and the the following ftp commands need to be run:

  ftp> quote USER adam2
  ftp> quote PASS adam2
  ftp> binary
  ftp> debug
  ftp> passive
  ftp> quote MEDIA FLSH
  ftp> put /path/to/openwrt-lantiq-xway-avm_fritz7312-squashfs-sysupgrade.bin mtd1
  ftp> quote REBOOT

Signed-off-by: Johann Neuhauser <[email protected]>
Johann Neuhauser 7 лет назад
Родитель
Сommit
02d53e6a21

+ 1 - 0
target/linux/lantiq/base-files/etc/board.d/02_network

@@ -144,6 +144,7 @@ avm,fritz3370-rev2-micron)
 		"0:lan:3" "1:lan:4" "2:lan:2" "4:lan:1" "6t@eth0"
 	;;
 
+avm,fritz7312|\
 avm,fritz7320)
 	annex="b"
 	wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 2705)" 1)

+ 1 - 1
target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom

@@ -160,7 +160,7 @@ case "$FIRMWARE" in
 			avm,fritz3370-rev2-micron)
 				ath9k_eeprom_extract_reverse "urlader" 5441 1088
 				;;
-			avm,fritz7320|avm,fritz7360sl)
+			avm,fritz7312|avm,fritz7320|avm,fritz7360sl)
 				ath9k_eeprom_extract "urlader" 2437 0
 				;;
 			tplink,tdw8970|tplink,tdw8980)

+ 181 - 0
target/linux/lantiq/files-4.14/arch/mips/boot/dts/FRITZ7312.dts

@@ -0,0 +1,181 @@
+/dts-v1/;
+
+#include "ar9.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "avm,fritz7312", "lantiq,xway", "lantiq,ar9";
+	model = "FritzBox 7312 (1&1 WLAN-MODEM)";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200";
+	};
+
+	aliases {
+		led-boot = &power;
+		led-failsafe = &power;
+		led-running = &power;
+
+		led-internet = &info_green;
+		led-dsl = &power;
+		led-wifi = &wlan;
+	};
+
+	memory@0 {
+		reg = <0x0 0x4000000>;
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+
+		wlan {
+			label = "wlan";
+			gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RFKILL>;
+		};
+		dect {
+			label = "dect";
+			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_PHONE>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		power: power {
+			label = "fritz7312:green:power";
+			gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+			default-state = "keep";
+		};
+		voice {
+			label = "fritz7312:green:fon";
+			gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
+		};
+		dect {
+			label = "fritz7312:green:dect";
+			gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+		};
+		wlan: wlan {
+			label = "fritz7312:green:wlan";
+			gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
+		};
+		info_green: info_green {
+			label = "fritz7312:green:info";
+			gpios = <&gpio 35 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&gpio {
+	pinctrl-names = "default";
+	pinctrl-0 = <&state_default>;
+
+	state_default: pinmux {
+		pci {
+			lantiq,groups = "gnt1", "req1", "req2", "req4", "gnt2", "gnt3", "gnt4";
+			lantiq,function = "pci";
+		};
+		pci-in {
+			lantiq,groups = "req1", "req2", "req4";
+			lantiq,output = <0>;
+			lantiq,open-drain = <1>;
+			lantiq,pull = <2>;
+		};
+		pci-out {
+			lantiq,groups = "gnt1", "gnt2", "gnt3", "gnt4";
+			lantiq,output = <1>;
+			lantiq,pull = <0>;
+		};
+		ar8030-intr {
+			lantiq,groups = "exin3";
+			lantiq,function = "exin";
+			lantiq,pull = <2>;
+			lantiq,output = <0>;
+		};
+		ar8030-clk {
+			lantiq,groups = "clkout2";
+			lantiq,output = <1>;
+			lantiq,open-drain;
+		};
+		ar8030-rst {
+			lantiq,pins = "io34";
+			lantiq,output = <1>;
+			lantiq,pull = <2>;
+			lantiq,open-drain;
+		};
+	};
+};
+
+&gsw {
+	phy-mode = "rmii";
+	phy-handle = <&phy0>;
+	mtd-mac-address = <&ath9k_cal 0xa91>;
+	mtd-mac-address-increment = <(-2)>;
+
+	mdio-bus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		reg = <0>;
+
+		phy0: ethernet-phy@0 {
+			reg = <0>;
+			reset-gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&localbus {
+	nor@0 {
+		compatible = "lantiq,nor";
+		bank-width = <2>;
+		reg = <0 0x0 0x1000000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			ath9k_cal: partition@0 {
+				label = "urlader";
+				reg = <0x00000 0x20000>;
+				read-only;
+			};
+
+			partition@20000 {
+				label = "firmware";
+				reg = <0x20000 0xf60000>;
+			};
+
+			partition@f80000 {
+				label = "tffs (1)";
+				reg = <0xf80000 0x40000>;
+				read-only;
+			};
+
+			partition@fc0000 {
+				label = "tffs (2)";
+				reg = <0xfc0000 0x40000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&pci0 {
+	status = "okay";
+	req-mask = <0xf>;
+	gpio-reset = <&gpio 21 GPIO_ACTIVE_LOW>;
+
+	wifi@0,0 {
+		compatible = "pci0,0";
+		reg = <0x7000 0 0 0 0>;
+		qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:00:0e.0.bin */
+	};
+};

+ 13 - 0
target/linux/lantiq/image/Makefile

@@ -485,6 +485,19 @@ define Device/buffalo_wbmr-hp-g300h-b
 endef
 TARGET_DEVICES += buffalo_wbmr-hp-g300h-b
 
+define Device/avm_fritz7312
+  $(Device/AVM)
+  DEVICE_DTS := FRITZ7312
+  IMAGE_SIZE := 15744k
+  DEVICE_TITLE := 1&1 WLAN-MODEM - FRITZ7312
+  DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-mini \
+	kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
+	kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
+	ltq-adsl-app ppp-mod-pppoa \
+	kmod-ltq-deu-ar9 -swconfig
+endef
+TARGET_DEVICES += avm_fritz7312
+
 define Device/avm_fritz7320
   $(Device/AVM)
   DEVICE_DTS := FRITZ7320

+ 1 - 0
target/linux/lantiq/xway/config-4.14

@@ -1,5 +1,6 @@
 CONFIG_ADM6996_PHY=y
 CONFIG_AR8216_PHY=y
+CONFIG_AT803X_PHY=y
 CONFIG_BLK_MQ_PCI=y
 CONFIG_CRC16=y
 CONFIG_CRYPTO_ACOMP2=y