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 <johann@it-neuhauser.de>
This commit is contained in:
Johann Neuhauser 2018-05-17 19:12:35 +02:00 committed by Mathias Kresin
parent f2f7802148
commit 02d53e6a21
5 changed files with 197 additions and 1 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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 */
};
};

View File

@ -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

View File

@ -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