aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtarget/linux/brcm63xx/base-files/etc/board.d/01_leds3
-rwxr-xr-xtarget/linux/brcm63xx/base-files/etc/board.d/02_network1
-rw-r--r--target/linux/brcm63xx/base-files/etc/diag.sh3
-rwxr-xr-xtarget/linux/brcm63xx/base-files/lib/brcm63xx.sh3
-rw-r--r--target/linux/brcm63xx/dts/ad1018-nor.dts136
-rw-r--r--target/linux/brcm63xx/image/bcm63xx.mk12
-rw-r--r--target/linux/brcm63xx/patches-4.4/580-board_AD1018.patch93
7 files changed, 251 insertions, 0 deletions
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 ef70cde791..d25d37e847 100755
--- a/target/linux/brcm63xx/base-files/etc/board.d/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/board.d/01_leds
@@ -15,6 +15,9 @@ a4001n1)
a4001n)
ucidef_set_led_usbdev "usb" "USB" "A4001N:green:usb" "1-1"
;;
+ad1018-nor)
+ ucidef_set_led_netdev "wlan0" "WLAN" "AD1018:green:wifi" "wlan0"
+ ;;
ar-5315u)
ucidef_set_led_usbdev "usb" "USB" "AR-5315u:green:usb" "1-1"
;;
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 9addba654a..06b4b6eced 100755
--- a/target/linux/brcm63xx/base-files/etc/board.d/02_network
+++ b/target/linux/brcm63xx/base-files/etc/board.d/02_network
@@ -98,6 +98,7 @@ vr-3026e)
"0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "8t@eth0"
;;
+ad1018-nor|\
ar-5315u |\
vh4032n)
ucidef_add_switch "switch0" \
diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh
index 700c9ea85a..2663a2cadc 100644
--- a/target/linux/brcm63xx/base-files/etc/diag.sh
+++ b/target/linux/brcm63xx/base-files/etc/diag.sh
@@ -12,6 +12,9 @@ set_state() {
a4001n)
status_led="A4001N:green:power"
;;
+ ad1018)
+ status_led="AD1018:green:power"
+ ;;
ar-5315u)
status_led="AR-5315u:green:power"
;;
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 3f46633fad..82abd737ce 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -228,6 +228,9 @@ brcm63xx_dt_detect() {
"Sagem F@ST2704V2")
board_name="fast2704v2"
;;
+ "Sercomm AD1018 (SPI flash mod)")
+ board_name="ad1018-nor"
+ ;;
"SFR Neuf Box 4"*)
board_name="neufbox4"
;;
diff --git a/target/linux/brcm63xx/dts/ad1018-nor.dts b/target/linux/brcm63xx/dts/ad1018-nor.dts
new file mode 100644
index 0000000000..d7632c69de
--- /dev/null
+++ b/target/linux/brcm63xx/dts/ad1018-nor.dts
@@ -0,0 +1,136 @@
+/dts-v1/;
+
+#include "bcm6328.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Sercomm AD1018 (SPI flash mod)";
+ compatible = "sercomm,ad1018-nor", "brcm,bcm6328";
+
+ 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>;
+
+ wps {
+ label = "wps";
+ gpios = <&pinctrl 24 1>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ wifi {
+ label = "wifi";
+ gpios = <&pinctrl 25 1>;
+ linux,code = <KEY_WLAN>;
+ };
+ reset {
+ label = "reset";
+ gpios = <&pinctrl 31 1>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+};
+
+&pinctrl {
+ pinctrl_leds: leds {
+ function = "led";
+ pins = "gpio0", "gpio1";
+ };
+};
+
+&leds {
+ status = "ok";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_leds &pinctrl_serial_led
+ &pinctrl_ephy0_spd_led &pinctrl_ephy1_act_led
+ &pinctrl_ephy2_act_led &pinctrl_ephy3_act_led>;
+
+ brcm,serial-leds;
+ brcm,serial-shift-inv;
+ brcm,serial-dat-low;
+
+ inet_red@0 {
+ reg = <0>;
+ active-low;
+ label = "AD1018:red:internet";
+ };
+
+ inet_green@1 {
+ reg = <1>;
+ active-low;
+ label = "AD1018:green:internet";
+ };
+
+ power_green@8 {
+ reg = <8>;
+ active-low;
+ label = "AD1018:green:power";
+ default-state = "on";
+ };
+
+ adsl_green@10 {
+ reg = <10>;
+ active-low;
+ label = "AD1018:green:adsl";
+ };
+
+ adsl_red@11 {
+ reg = <11>;
+ active-low;
+ label = "AD1018:red:adsl";
+ };
+
+ phone_green@12 {
+ reg = <12>;
+ active-low;
+ label = "AD1018:green:phone";
+ };
+
+ wps_green@13 {
+ reg = <13>;
+ active-low;
+ label = "AD1018:green:wps";
+ };
+
+ wifi_green@14 {
+ reg = <14>;
+ active-low;
+ label = "AD1018:green:wifi";
+ };
+
+ usb_green@15 {
+ reg = <15>;
+ active-low;
+ label = "AD1018:green:usb";
+ };
+
+ ephy0_spd@17 {
+ reg = <17>;
+ brcm,hardware-controlled;
+ };
+};
+
+&hsspi {
+ status = "ok";
+
+ 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>;
+
+ linux,part-probe = "bcm63xxpart";
+ };
+};
diff --git a/target/linux/brcm63xx/image/bcm63xx.mk b/target/linux/brcm63xx/image/bcm63xx.mk
index 4e90eb0504..918dfc7981 100644
--- a/target/linux/brcm63xx/image/bcm63xx.mk
+++ b/target/linux/brcm63xx/image/bcm63xx.mk
@@ -971,6 +971,18 @@ define Device/FAST2704V2
endef
TARGET_DEVICES += FAST2704V2
+### Sercomm ###
+define Device/AD1018-SPI_flash
+ $(Device/bcm63xx)
+ DEVICE_TITLE := Sercomm AD1018 (SPI flash mod)
+ DEVICE_DTS := ad1018-nor
+ CFE_BOARD_ID := 96328avngr
+ CFE_CHIP_ID := 6328
+ DEVICE_PACKAGES := \
+ $(B43_PACKAGES) $(USB2_PACKAGES)
+endef
+TARGET_DEVICES += AD1018-SPI_flash
+
### SFR ###
define Device/NEUFBOX4-SER
$(Device/bcm63xx)
diff --git a/target/linux/brcm63xx/patches-4.4/580-board_AD1018.patch b/target/linux/brcm63xx/patches-4.4/580-board_AD1018.patch
new file mode 100644
index 0000000000..c08e00dbe8
--- /dev/null
+++ b/target/linux/brcm63xx/patches-4.4/580-board_AD1018.patch
@@ -0,0 +1,93 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -366,6 +366,74 @@ static struct board_info __initdata boar
+ },
+ };
+
++static struct sprom_fixup __initdata ad1018_fixups[] = {
++ { .offset = 6, .value = 0x1c00 },
++ { .offset = 65, .value = 0x1256 },
++ { .offset = 96, .value = 0x2046 },
++ { .offset = 97, .value = 0xfe69 },
++ { .offset = 98, .value = 0x1726 },
++ { .offset = 99, .value = 0xfa5c },
++ { .offset = 112, .value = 0x2046 },
++ { .offset = 113, .value = 0xfea8 },
++ { .offset = 114, .value = 0x1978 },
++ { .offset = 115, .value = 0xfa26 },
++ { .offset = 161, .value = 0x2222 },
++ { .offset = 169, .value = 0x2222 },
++ { .offset = 171, .value = 0x2222 },
++ { .offset = 173, .value = 0x2222 },
++ { .offset = 174, .value = 0x4444 },
++ { .offset = 175, .value = 0x2222 },
++ { .offset = 176, .value = 0x4444 },
++};
++
++static struct board_info __initdata board_AD1018 = {
++ .name = "96328avngr",
++ .expected_cpu_id = 0x6328,
++
++ .has_uart0 = 1,
++ .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 = "FIBRE",
++ },
++ [1] = {
++ .used = 1,
++ .phy_id = 2,
++ .name = "LAN3",
++ },
++ [2] = {
++ .used = 1,
++ .phy_id = 3,
++ .name = "LAN2",
++ },
++ [3] = {
++ .used = 1,
++ .phy_id = 4,
++ .name = "LAN1",
++ },
++ },
++ },
++
++ .fallback_sprom = {
++ .type = SPROM_BCM43217,
++ .pci_bus = 1,
++ .pci_dev = 0,
++ .board_fixups = ad1018_fixups,
++ .num_board_fixups = ARRAY_SIZE(ad1018_fixups),
++ },
++};
++
+ static struct sprom_fixup __initdata ar5381u_fixups[] = {
+ { .offset = 97, .value = 0xfee5 },
+ { .offset = 98, .value = 0x157c },
+@@ -2684,6 +2752,7 @@ static const struct board_info __initcon
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_6328
+ &board_96328avng,
++ &board_AD1018,
+ &board_AR5381u,
+ &board_AR5387un,
+ &board_963281TAN,
+@@ -2798,6 +2867,7 @@ static struct of_device_id const bcm963x
+ { .compatible = "d-link,dsl-274xb-f", .data = &board_dsl_274xb_f1, },
+ { .compatible = "nucom,r5010unv2", .data = &board_R5010UNV2, },
+ { .compatible = "sagem,f@st2704v2", .data = &board_FAST2704V2, },
++ { .compatible = "sercomm,ad1018-nor", .data = &board_AD1018, },
+ #endif
+ #ifdef CONFIG_BCM63XX_CPU_6338
+ { .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },