aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniele Castro <danielecastro@hotmail.it>2019-12-02 16:13:44 +0100
committerÁlvaro Fernández Rojas <noltari@gmail.com>2020-05-22 21:23:21 +0200
commitd6f66dd88e5d833f88fa4b6e056499ec7644ff7c (patch)
tree458c6499bc994240e327cc8fdb3656b41c07560b
parente3e17b4ed44a7855ff3fe3f6270fd47a3ca70567 (diff)
downloadupstream-d6f66dd88e5d833f88fa4b6e056499ec7644ff7c.tar.gz
upstream-d6f66dd88e5d833f88fa4b6e056499ec7644ff7c.tar.bz2
upstream-d6f66dd88e5d833f88fa4b6e056499ec7644ff7c.zip
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>
-rwxr-xr-xtarget/linux/bcm63xx/base-files/etc/board.d/01_leds6
-rwxr-xr-xtarget/linux/bcm63xx/base-files/etc/board.d/02_network1
-rw-r--r--target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc1
-rw-r--r--target/linux/bcm63xx/dts/bcm6328-adb-pdg-a4001n-a-000-1a1-ax.dts166
-rw-r--r--target/linux/bcm63xx/image/bcm63xx.mk12
-rw-r--r--target/linux/bcm63xx/patches-5.4/567-board-adb_pdg-a4001n-a-000-1a1-ax.patch68
6 files changed, 254 insertions, 0 deletions
diff --git a/target/linux/bcm63xx/base-files/etc/board.d/01_leds b/target/linux/bcm63xx/base-files/etc/board.d/01_leds
index 907a425d16..91d67f0c0b 100755
--- a/target/linux/bcm63xx/base-files/etc/board.d/01_leds
+++ b/target/linux/bcm63xx/base-files/etc/board.d/01_leds
@@ -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"
;;
diff --git a/target/linux/bcm63xx/base-files/etc/board.d/02_network b/target/linux/bcm63xx/base-files/etc/board.d/02_network
index a3788adac2..784af29cb4 100755
--- a/target/linux/bcm63xx/base-files/etc/board.d/02_network
+++ b/target/linux/bcm63xx/base-files/etc/board.d/02_network
@@ -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|\
diff --git a/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc b/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc
index 813b51fb52..3fcf40434f 100644
--- a/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc
+++ b/target/linux/bcm63xx/base-files/etc/uci-defaults/09_fix_crc
@@ -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|\
diff --git a/target/linux/bcm63xx/dts/bcm6328-adb-pdg-a4001n-a-000-1a1-ax.dts b/target/linux/bcm63xx/dts/bcm6328-adb-pdg-a4001n-a-000-1a1-ax.dts
new file mode 100644
index 0000000000..8a6a8b58a2
--- /dev/null
+++ b/target/linux/bcm63xx/dts/bcm6328-adb-pdg-a4001n-a-000-1a1-ax.dts
@@ -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";
+};
diff --git a/target/linux/bcm63xx/image/bcm63xx.mk b/target/linux/bcm63xx/image/bcm63xx.mk
index 219eff5183..2627cbb509 100644
--- a/target/linux/bcm63xx/image/bcm63xx.mk
+++ b/target/linux/bcm63xx/image/bcm63xx.mk
@@ -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
diff --git a/target/linux/bcm63xx/patches-5.4/567-board-adb_pdg-a4001n-a-000-1a1-ax.patch b/target/linux/bcm63xx/patches-5.4/567-board-adb_pdg-a4001n-a-000-1a1-ax.patch
new file mode 100644
index 0000000000..3976527b37
--- /dev/null
+++ b/target/linux/bcm63xx/patches-5.4/567-board-adb_pdg-a4001n-a-000-1a1-ax.patch
@@ -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, },