From 9d4f8ff4f65c5928852ebbe25d07a7533bcd540a Mon Sep 17 00:00:00 2001 From: Paul Wassi Date: Sat, 24 Dec 2016 00:24:44 +0100 Subject: [PATCH] brcm63xx: add support for Pirelli/ADB P.DG AV4202N This patch adds support for the ADB P.DG AV4202N aka Pirelli PRG AV4202N. Signed-off-by: Paul Wassi Signed-off-by: Jonas Gorski --- .../brcm63xx/base-files/etc/board.d/01_leds | 3 + .../base-files/etc/board.d/02_network | 1 + target/linux/brcm63xx/base-files/etc/diag.sh | 3 + .../linux/brcm63xx/base-files/lib/brcm63xx.sh | 3 + target/linux/brcm63xx/dts/av4202n.dts | 68 ++++++++++++++++++ target/linux/brcm63xx/image/bcm63xx.mk | 12 ++++ .../patches-4.4/576-board_AV4202N.patch | 71 +++++++++++++++++++ 7 files changed, 161 insertions(+) create mode 100644 target/linux/brcm63xx/dts/av4202n.dts create mode 100644 target/linux/brcm63xx/patches-4.4/576-board_AV4202N.patch diff --git a/target/linux/brcm63xx/base-files/etc/board.d/01_leds b/target/linux/brcm63xx/base-files/etc/board.d/01_leds index 8d8a942b26..7d208cc545 100755 --- a/target/linux/brcm63xx/base-files/etc/board.d/01_leds +++ b/target/linux/brcm63xx/base-files/etc/board.d/01_leds @@ -16,6 +16,9 @@ a4001n1) a4001n) ucidef_set_led_usbdev "usb" "USB" "A4001N:green:usb" "1-1" ;; +av4202n) + ucidef_set_led_netdev "wlan0" "WLAN" "AV4202N:blue:wifi" "wlan0" + ;; dgnd3700v1_dgnd3800b) ucidef_set_led_netdev "lan" "LAN" "DGND3700v1_3800B:green:lan" "eth0.1" ucidef_set_led_netdev "wan" "WAN" "DGND3700v1_3800B:green:inet" "eth0.2" diff --git a/target/linux/brcm63xx/base-files/etc/board.d/02_network b/target/linux/brcm63xx/base-files/etc/board.d/02_network index 3ace356af5..1cf54cbff2 100755 --- a/target/linux/brcm63xx/base-files/etc/board.d/02_network +++ b/target/linux/brcm63xx/base-files/etc/board.d/02_network @@ -80,6 +80,7 @@ a4001n1 |\ a4001n |\ ar-5381u |\ ar-5387un |\ +av4202n |\ bcm963281tan |\ bcm96328avng |\ bcm96368mvngr |\ diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh index 852a70146e..5f9a4d0b1c 100644 --- a/target/linux/brcm63xx/base-files/etc/diag.sh +++ b/target/linux/brcm63xx/base-files/etc/diag.sh @@ -18,6 +18,9 @@ set_state() { ar-5387un) status_led="AR-5387un:green:power" ;; + av4202n) + status_led="AV4202N:white:power" + ;; bcm96348gw) status_led="96348GW:green:power" ;; diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh index 9cc0b2b570..1679482dbe 100755 --- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh +++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh @@ -18,6 +18,9 @@ brcm63xx_dt_detect() { "ADB P.DG A4001N1") board_name="a4001n1" ;; + "ADB P.DG AV4202N") + board_name="av4202n" + ;; "Alcatel RG100A") board_name="rg100a" ;; diff --git a/target/linux/brcm63xx/dts/av4202n.dts b/target/linux/brcm63xx/dts/av4202n.dts new file mode 100644 index 0000000000..71d2b94866 --- /dev/null +++ b/target/linux/brcm63xx/dts/av4202n.dts @@ -0,0 +1,68 @@ +/dts-v1/; + +#include "bcm6368.dtsi" + +#include +#include + +/ { + model = "ADB P.DG AV4202N"; + compatible = "adb,av4202n", "brcm,bcm6368"; + + chosen { + bootargs = "root=/dev/mtdblock2 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200"; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + debounce-interval = <60>; + + reset { + label = "reset"; + gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + wlan { + label = "wlan"; + gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power_white { + label = "AV4202N:white:power"; + gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; + default-state = "on"; + }; + power_red { + label = "AV4202N:red:power"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + }; + wan_white { + label = "AV4202N:white:wan"; + gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; + }; + wan_red { + label = "AV4202N:red:wan"; + gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; + }; + phone_white { + label = "AV4202N:white:phone"; + gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; + }; + phone_red { + label = "AV4202N:red:phone"; + gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; + }; + wifi { + label = "AV4202N:blue:wifi"; + gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; + }; + }; +}; diff --git a/target/linux/brcm63xx/image/bcm63xx.mk b/target/linux/brcm63xx/image/bcm63xx.mk index ce03f7b700..f38147eb36 100644 --- a/target/linux/brcm63xx/image/bcm63xx.mk +++ b/target/linux/brcm63xx/image/bcm63xx.mk @@ -200,6 +200,18 @@ define Device/A4001N1 endef TARGET_DEVICES += A4001N1 +define Device/AV4202N + $(Device/bcm63xx) + IMAGE_OFFSET := 0x20000 + DEVICE_TITLE := ADB P.DG AV4202N + DEVICE_DTS := av4202n + CFE_BOARD_ID := 96368_Swiss_S1 + CFE_CHIP_ID := 6368 + DEVICE_PACKAGES := \ + $(USB2_PACKAGES) $(B43_PACKAGES) +endef +TARGET_DEVICES += AV4202N + ### Alcatel ### define Device/RG100A $(Device/bcm63xx) diff --git a/target/linux/brcm63xx/patches-4.4/576-board_AV4202N.patch b/target/linux/brcm63xx/patches-4.4/576-board_AV4202N.patch new file mode 100644 index 0000000000..814b2894c6 --- /dev/null +++ b/target/linux/brcm63xx/patches-4.4/576-board_AV4202N.patch @@ -0,0 +1,71 @@ +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c +@@ -1884,6 +1884,52 @@ static struct board_info __initdata boar + * known 6368 boards + */ + #ifdef CONFIG_BCM63XX_CPU_6368 ++static struct board_info __initdata board_AV4202N = { ++ .name = "96368_Swiss_S1", ++ .expected_cpu_id = 0x6368, ++ ++ .has_uart0 = 1, ++ .has_pci = 1, ++ .has_ohci0 = 1, ++ .has_ehci0 = 1, ++ .num_usbh_ports = 2, ++ ++ .has_enetsw = 1, ++ .enetsw = { ++ .used_ports = { ++ [0] = { ++ .used = 1, ++ .phy_id = 1, ++ .name = "port1", ++ }, ++ ++ [1] = { ++ .used = 1, ++ .phy_id = 2, ++ .name = "port2", ++ }, ++ ++ [2] = { ++ .used = 1, ++ .phy_id = 3, ++ .name = "port3", ++ }, ++ ++ [3] = { ++ .used = 1, ++ .phy_id = 4, ++ .name = "port4", ++ }, ++ }, ++ }, ++ .use_fallback_sprom = 1, ++ .fallback_sprom = { ++ .pci_bus = 0, ++ .pci_dev = 1, ++ }, ++ ++}; ++ + static struct board_info __initdata board_96368mvwg = { + .name = "96368MVWG", + .expected_cpu_id = 0x6368, +@@ -2648,6 +2694,7 @@ static const struct board_info __initcon + #endif + + #ifdef CONFIG_BCM63XX_CPU_6368 ++ &board_AV4202N, + &board_96368mvwg, + &board_96368mvngr, + &board_DGND3700v1_3800B, +@@ -2755,6 +2802,7 @@ static struct of_device_id const bcm963x + { .compatible = "sfr,nb6-ser-r0", .data = &board_nb6, }, + #endif + #ifdef CONFIG_BCM63XX_CPU_6368 ++ { .compatible = "adb,av4202n", .data = &board_AV4202N, }, + { .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, }, + { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, }, + { .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },