brcm63xx: Add Comtrend AR-5315u support

Add support for the Comtrend AR-5315u router

This a BCM6318 based board, 64 MB RAM, 16 MB SPI flash,
with an onboard BCM43217 wifi, 4 ethernet ports and 1
USB host port

Signed-off-by: Daniel Gonzalez Cabanelas <dgcbueu@gmail.com>
[jonas.gorski: refreshed patch]
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
This commit is contained in:
Daniel Gonzalez Cabanelas 2017-08-12 12:40:22 +02:00 committed by Jonas Gorski
parent 6c9e2d4a68
commit c7b4b4cee2
8 changed files with 217 additions and 0 deletions

View file

@ -15,6 +15,9 @@ a4001n1)
a4001n)
ucidef_set_led_usbdev "usb" "USB" "A4001N:green:usb" "1-1"
;;
ar-5315u)
ucidef_set_led_usbdev "usb" "USB" "AR-5315u:green:usb" "1-1"
;;
av4202n)
ucidef_set_led_netdev "wlan0" "WLAN" "AV4202N:blue:wifi" "wlan0"
;;

View file

@ -98,6 +98,7 @@ vr-3026e)
"0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "8t@eth0"
;;
ar-5315u |\
vh4032n)
ucidef_add_switch "switch0" \
"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "8t@eth0"

View file

@ -12,6 +12,9 @@ set_state() {
a4001n)
status_led="A4001N:green:power"
;;
ar-5315u)
status_led="AR-5315u:green:power"
;;
ar-5381u)
status_led="AR-5381u:green:power"
;;

View file

@ -13,6 +13,7 @@ do_fixcrc() {
case "$(board_name)" in
a4001n |\
a4001n1 |\
ar-5315u |\
ar-5381u |\
ar-5387un |\
bcm96328avng |\

View file

@ -87,6 +87,9 @@ brcm63xx_dt_detect() {
"BT Voyager V2500V")
board_name="v2500v_bb"
;;
"Comtrend AR-5315u")
board_name="ar-5315u"
;;
"Comtrend AR-5381u")
board_name="ar-5381u"
;;

View file

@ -0,0 +1,106 @@
/dts-v1/;
#include "bcm6318.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Comtrend AR-5315u";
compatible = "comtrend,ar-5315u", "brcm,bcm6318";
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 3 1>;
linux,code = <KEY_WPS_BUTTON>;
};
reset {
label = "reset";
gpios = <&pinctrl 33 1>;
linux,code = <KEY_RESTART>;
};
};
gpio-leds {
compatible = "gpio-leds";
wps_green {
label = "AR-5315u:green:wps";
gpios = <&pinctrl 0 1>;
};
power_green {
label = "AR-5315u:green:power";
gpios = <&pinctrl 1 1>;
default-state = "on";
};
usb_green {
label = "AR-5315u:green:usb";
gpios = <&pinctrl 2 1>;
};
inet_green {
label = "AR-5315u:green:inet";
gpios = <&pinctrl 8 1>;
};
inet_red {
label = "AR-5315u:red:inet";
gpios = <&pinctrl 9 1>;
};
dsl_green {
label = "AR-5315u:green:dsl";
gpios = <&pinctrl 10 1>;
};
power_red {
label = "AR-5315u:red:power";
gpios = <&pinctrl 11 1>;
};
};
};
&hsspi {
status = "ok";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <62500000>;
spi-tx-bus-width = <2>;
spi-rx-bus-width = <2>;
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
linux,part-probe = "bcm63xxpart";
cfe@0 {
reg = <0x000000 0x010000>;
label = "cfe";
read-only;
};
linux@10000 {
reg = <0x010000 0xfe0000>;
label = "linux";
};
nvram@ff0000 {
reg = <0xff0000 0x010000>;
label = "nvram";
};
};
};
&pinctrl {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ephy0_act_led &pinctrl_ephy1_act_led
&pinctrl_ephy2_act_led &pinctrl_ephy3_act_led>;
};

View file

@ -357,6 +357,19 @@ endef
TARGET_DEVICES += BTV2500V
### Comtrend ###
define Device/AR5315u
$(Device/bcm63xx)
IMAGES += sysupgrade.bin
DEVICE_TITLE := Comtrend AR-5315u
DEVICE_DTS := ar-5315u
CFE_BOARD_ID := 96318A-1441N1
CFE_CHIP_ID := 6318
FLASH_MB := 16
DEVICE_PACKAGES := \
$(B43_PACKAGES) $(USB2_PACKAGES)
endef
TARGET_DEVICES += AR5315u
define Device/AR5381u
$(Device/bcm63xx)
IMAGES += sysupgrade.bin

View file

@ -0,0 +1,87 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -148,6 +148,68 @@ static struct board_info __initdata boar
},
};
+static struct sprom_fixup __initdata ar5315u_fixups[] = {
+ { .offset = 6, .value = 0x1c00 },
+ { .offset = 65, .value = 0x1255 },
+ { .offset = 97, .value = 0xfe55 },
+ { .offset = 98, .value = 0x171d },
+ { .offset = 99, .value = 0xfa42 },
+ { .offset = 113, .value = 0xfeb7 },
+ { .offset = 114, .value = 0x18cd },
+ { .offset = 115, .value = 0xfa4f },
+ { .offset = 162, .value = 0x6444 },
+ { .offset = 170, .value = 0x6444 },
+ { .offset = 172, .value = 0x6444 },
+};
+
+static struct board_info __initdata board_AR5315u = {
+ .name = "96318A-1441N1",
+ .expected_cpu_id = 0x6318,
+
+ .has_uart0 = 1,
+ .has_pci = 1,
+ .use_fallback_sprom = 1,
+
+ .has_enetsw = 1,
+
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+ .num_usbh_ports = 1,
+
+ .enetsw = {
+ .used_ports = {
+ [0] = {
+ .used = 1,
+ .phy_id = 1,
+ .name = "LAN4",
+ },
+ [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 = ar5315u_fixups,
+ .num_board_fixups = ARRAY_SIZE(ar5315u_fixups),
+ },
+};
+
static struct sprom_fixup __initdata dsl2751b_e1_fixups[] = {
{ .offset = 96, .value = 0x2046 },
{ .offset = 97, .value = 0xfe9d },
@@ -2616,6 +2678,7 @@ static const struct board_info __initcon
#ifdef CONFIG_BCM63XX_CPU_6318
&board_96318ref,
&board_96318ref_p300,
+ &board_AR5315u,
&board_dsl_2751b_d1,
&board_FAST2704N,
#endif
@@ -2721,6 +2784,7 @@ static struct of_device_id const bcm963x
#ifdef CONFIG_BCM63XX_CPU_6318
{ .compatible = "brcm,bcm96318ref", .data = &board_96318ref, },
{ .compatible = "brcm,bcm96318ref_p300", .data = &board_96318ref_p300, },
+ { .compatible = "comtrend,ar-5315u", .data = &board_AR5315u, },
{ .compatible = "d-link,dsl-275xb-d", .data = &board_dsl_2751b_d1, },
{ .compatible = "sagem,f@st2704n", .data = &board_FAST2704N, },
#endif