brcm63xx: add support for ADB P.DG A4001N A-000-1A1-AX

ADB P.DG A4001N A-000-1A1-AX a.k.a. Telecom Italia ADSL2+ Wi-Fi N (AGPWI)
has the same PCB as the OpenWrt's ADB P.DG A4001N1 with LEDs connected
to different GPIO PINs in active low configuration.

OpenWrt's ADB P.DG A4001N image is made for the ADB P.DG A4001N A-000-1A1-AE.
It has different LEDs configuration and flash size/layout
w.r.t the ADB P.DG A4001N A-000-1A1-AX.

Hardware:
* Board ID: 96328avng
* SoC: Broadcom BCM6328
* RAM DDR2-800: 32 Mbyte - winbond W9725G6KB-25
* Serial flash: 16 Mbyte - MXIC MX25L 12845EMI-10G
* Ethernet: 4x Ethernet 10/100 baseT
* Wifi 2.4GHz: Broadcom Corporation BCM43224/5 Wireless Network Adapter (rev 01)
* LEDs: 2x Power, 2x ADSL, 2x Internet, 2x Wi-Fi, 2x Service
* Buttons: 1x Reset, 1x WPS (named WiFi/LED)
* UART: 1x TTL 115200n8, TX  NC  RX, on J5 connector (short R192 and R193)
                         NC  GND NC

Installation via CFE:
* Stock CFE has to be overwriten with one for 96328avng boards that can upload
  .bin images with no signature check (cfe-A4001N-V0000_96328avng.bin)
* connect a serial port to the board
* Stop the boot process after power on by pressing enter
* set static IP 192.168.1.2 and subnet mask 255.255.255.0
* navigate to http://192.168.1.1/
* upload the OpenWrt image file

Signed-off-by: Daniele Castro <danielecastro@hotmail.it>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
Daniele Castro 2019-12-02 16:13:44 +01:00 committed by Álvaro Fernández Rojas
parent e3e17b4ed4
commit d6f66dd88e
6 changed files with 254 additions and 0 deletions

View File

@ -21,6 +21,12 @@ adb,a4001n1)
ucidef_set_led_netdev "lan" "LAN" "A4001N1:green:eth" "eth0"
ucidef_set_led_usbdev "usb" "USB" "A4001N1:green:3g" "1-1"
;;
adb,pdg-a4001n-a-000-1a1-ax)
ucidef_set_led_netdev "lan" "LAN" "$model:green:internet" "eth0.1"
ucidef_set_led_netdev "wan" "WAN" "$model:green:adsl" "eth0.2"
ucidef_set_led_netdev "wlan0" "WIFI" "$model:green:wifi" "wlan0"
ucidef_set_led_usbdev "usb" "USB" "$model:green:service" "1-1"
;;
adb,av4202n)
ucidef_set_led_netdev "wlan0" "WLAN" "AV4202N:blue:wifi" "wlan0"
;;

View File

@ -20,6 +20,7 @@ t-com,speedport-w-500v)
;;
adb,a4001n1|\
adb,a4001n|\
adb,pdg-a4001n-a-000-1a1-ax|\
adb,av4202n|\
brcm,bcm963281tan|\
brcm,bcm96328avng|\

View File

@ -14,6 +14,7 @@ case "$(board_name)" in
actiontec,r1000h|\
adb,a4001n|\
adb,a4001n1|\
adb,pdg-a4001n-a-000-1a1-ax|\
brcm,bcm96328avng|\
brcm,bcm963281tan|\
bt,voyager-2110|\

View File

@ -0,0 +1,166 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/dts-v1/;
#include "bcm6328.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "ADB P.DG A4001N A-000-1A1-AX";
compatible = "adb,pdg-a4001n-a-000-1a1-ax", "brcm,bcm6328";
aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_green;
led-running = &led_power_green;
led-upgrade = &led_power_green;
};
chosen {
bootargs = "rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200";
stdout-path = "serial0:115200n8";
};
keys {
compatible = "gpio-keys-polled";
#address-cells = <1>;
#size-cells = <0>;
poll-interval = <20>;
reset {
label = "reset";
gpios = <&pinctrl 23 1>;
linux,code = <KEY_RESTART>;
debounce-interval = <60>;
};
wps {
label = "wifi-led";
gpios = <&pinctrl 24 1>;
linux,code = <KEY_WPS_BUTTON>;
debounce-interval = <60>;
};
};
};
&leds {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_leds>;
led@2 {
reg = <2>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:red:internet";
};
led@3 {
reg = <3>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:green:adsl";
};
led@5 {
reg = <5>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:red:adsl";
};
led@6 {
reg = <6>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:green:service";
};
led@7 {
reg = <7>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:red:service";
};
led@8 {
reg = <8>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:red:power";
};
led@9 {
reg = <9>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:green:wifi";
};
led@10 {
reg = <10>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:red:wifi";
};
led@11 {
reg = <11>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:green:internet";
};
led_power_green: led@12 {
reg = <12>;
active-low;
label = "pdg-a4001n-a-000-1a1-ax:green:power";
default-state = "on";
};
};
&hsspi {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <16666667>;
spi-tx-bus-width = <2>;
spi-rx-bus-width = <2>;
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
reg = <0x000000 0x010000>;
label = "cfe";
read-only;
};
partition@10000 {
reg = <0x010000 0xfe0000>;
label = "linux";
compatible = "brcm,bcm963xx-imagetag";
};
partition@ff0000 {
reg = <0xff0000 0x010000>;
label = "nvram";
};
};
};
};
&pinctrl {
pinctrl_leds: leds {
function = "led";
pins = "gpio2", "gpio3",
"gpio5", "gpio6",
"gpio7", "gpio8",
"gpio9", "gpio10",
"gpio11", "gpio12";
};
};
&uart0 {
status = "okay";
};

View File

@ -220,6 +220,18 @@ define Device/adb_a4001n1
endef
TARGET_DEVICES += adb_a4001n1
define Device/adb_pdg-a4001n-a-000-1a1-ax
$(Device/bcm63xx)
DEVICE_VENDOR := ADB
DEVICE_MODEL := P.DG A4001N A-000-1A1-AX
IMAGES += sysupgrade.bin
CFE_BOARD_ID := 96328avng
CHIP_ID := 6328
FLASH_MB := 16
DEVICE_PACKAGES := $(USB2_PACKAGES) $(B43_PACKAGES)
endef
TARGET_DEVICES += adb_pdg-a4001n-a-000-1a1-ax
define Device/adb_av4202n
$(Device/bcm63xx)
DEVICE_VENDOR := ADB

View File

@ -0,0 +1,68 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -627,6 +627,49 @@ static struct board_info __initdata boar
},
};
+static struct board_info __initdata board_PDG_A4001N_A_000_1A1_AX = {
+ .name = "96328avng",
+ .expected_cpu_id = 0x6328,
+
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 1,
+ .has_enetsw = 1,
+
+ .enetsw = {
+ .used_ports = {
+ [0] = {
+ .used = 1,
+ .phy_id = 1,
+ .name = "Port 1",
+ },
+ [1] = {
+ .used = 1,
+ .phy_id = 2,
+ .name = "Port 2",
+ },
+ [2] = {
+ .used = 1,
+ .phy_id = 3,
+ .name = "Port 3",
+ },
+ [3] = {
+ .used = 1,
+ .phy_id = 4,
+ .name = "Port 4",
+ },
+ },
+ },
+
+ .fallback_sprom = {
+ .type = SPROM_BCM43225,
+ .pci_bus = 1,
+ .pci_dev = 0,
+ },
+};
+
static struct board_info __initdata board_A4001N1 = {
.name = "963281T_TEF",
.expected_cpu_id = 0x6328,
@@ -2849,6 +2892,7 @@ static const struct board_info __initcon
&board_AR5387un,
&board_963281TAN,
&board_A4001N,
+ &board_PDG_A4001N_A_000_1A1_AX,
&board_A4001N1,
&board_dsl_274xb_f1,
&board_FAST2704V2,
@@ -2957,6 +3001,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6328
{ .compatible = "adb,a4001n", .data = &board_A4001N, },
{ .compatible = "adb,a4001n1", .data = &board_A4001N1, },
+ { .compatible = "adb,pdg-a4001n-a-000-1a1-ax", .data = &board_PDG_A4001N_A_000_1A1_AX, },
{ .compatible = "brcm,bcm963281tan", .data = &board_963281TAN, },
{ .compatible = "brcm,bcm96328avng", .data = &board_96328avng, },
{ .compatible = "comtrend,ar-5381u", .data = &board_AR5381u, },