brcm63xx: add support for the Actiontec R1000H gateway

SOC: Broadcom BCM6368 (2 * Broadcom BMIPS4350 V3.1 / 400 MHz)
Flash size: 32MB (split 16/16 dual boot)
RAM size: 64MB
Wireless: BCM432x 802.11a/b/g/n(pci)
Ethernet: Broadcom BCM53115
USB: 1 x USB 2.0

Known issues:
 - Unable to detect 53115 switch attached to MDIO. Not supported
 - No support for the cable port

More info on the device and the research can be found at:
http://www.actiontec.com/212.html

Same FCC ID as:
https://wikidevi.com/wiki/Actiontec_V1000H_(Telus)

Signed-off-by: Anthony Sepa <anthonysepa@yahoo.ca>
[jonas.gorski: fix commit subject/message]
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
This commit is contained in:
Anthony Sepa 2017-02-19 14:27:36 -04:00 committed by Jonas Gorski
parent 1dc7a0cfd5
commit f9b67b89d3
8 changed files with 170 additions and 0 deletions

View File

@ -69,6 +69,9 @@ livebox1)
ucidef_set_led_netdev "wan" "WAN" "Livebox1:red:adsl" "eth1"
ucidef_set_led_netdev "wlan0" "WIFI" "Livebox1:red:wifi" "wlan0"
;;
r1000h)
ucidef_set_led_usbport "usb" "USB" "R1000H:green:usb" "usb1-port1" "usb2-port1"
;;
r5010un_v2)
ucidef_set_led_usbdev "usb" "USB" "R5010UNv2:green:usb" "1-1"
;;

View File

@ -12,6 +12,7 @@ case "$(brcm63xx_board_name)" in
cvg834g |\
evg2000 |\
r1000h |\
rta770bw |\
rta770w |\
spw303v |\

View File

@ -114,6 +114,9 @@ set_state() {
p870hw-51a_v2)
status_led="P870HW-51a:green:power"
;;
r1000h)
status_led="R1000H:green:power"
;;
r5010un_v2)
status_led="R5010UNv2:green:power"
;;

View File

@ -25,6 +25,7 @@ case "$(brcm63xx_board_name)" in
hg622 |\
magic |\
p870hw-51a_v2 |\
r1000h |\
r5010un_v2 |\
rta770bw |\
rta770w |\

View File

@ -21,6 +21,9 @@ brcm63xx_dt_detect() {
"ADB P.DG AV4202N")
board_name="av4202n"
;;
"Actiontec R1000H")
board_name="r1000h"
;;
"Alcatel RG100A")
board_name="rg100a"
;;

View File

@ -0,0 +1,93 @@
/dts-v1/;
#include "bcm6368.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Actiontec R1000H";
compatible = "actiontec,r1000h", "brcm,bcm6368";
chosen {
bootargs = "root=/dev/mtdblock2 rootfstype=squashfs 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 = <&pinctrl 34 1>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&pinctrl 35 1>;
linux,code = <KEY_WPS_BUTTON>;
};
};
gpio-leds {
compatible = "gpio-leds";
inet_green {
label = "R1000H:green:inet";
gpios = <&pinctrl 5 0>;
};
usb_green {
label = "R1000H:green:usb";
gpios = <&pinctrl 21 1>;
};
power_green {
label = "R1000H:green:power";
gpios = <&pinctrl 22 0>;
default-state = "on";
};
wps_green {
label = "R1000H:green:wps";
gpios = <&pinctrl 23 1>;
};
power_red {
label = "R1000H:red:power";
gpios = <&pinctrl 24 0>;
};
wps_red {
label = "R1000H:red:wps";
gpios = <&pinctrl 30 1>;
};
inet_red {
label = "R1000H:red:inet";
gpios = <&pinctrl 31 0>;
};
};
};
&pflash {
status = "ok";
linux,part-probe = "bcm63xxpart";
CFE@0 {
reg = <0x000000 0x020000>;
read-only;
};
linux@20000 {
reg = <0x020000 0x1fc0000>;
};
nvram@1fe0000 {
reg = <0x1fe0000 0x20000>;
};
};

View File

@ -1,3 +1,4 @@
#
# BCM33XX/BCM63XX Profiles
#
@ -174,6 +175,21 @@ define Device/96368MVWG-generic
endef
TARGET_DEVICES += 96368MVWG-generic
### Actiontec ###
define Device/R1000H
$(Device/bcm63xx)
FILESYSTEMS := squashfs
DEVICE_TITLE := Actiontec R1000H
DEVICE_DTS := r1000h
CFE_BOARD_ID := 96368MVWG
CFE_CHIP_ID := 6368
FLASH_MB := 32
IMAGE_OFFSET := 0x20000
DEVICE_PACKAGES := \
$(USB2_PACKAGES) $(BRCMWL_PACKAGES)
endef
TARGET_DEVICES += R1000H
### ADB ###
define Device/A4001N
$(Device/bcm63xx)

View File

@ -0,0 +1,50 @@
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -2193,6 +2193,31 @@ static struct board_info __initdata boar
},
};
+static struct board_info __initdata board_R1000H = {
+ .name = "R1000H",
+ .expected_cpu_id = 0x6368,
+
+ .has_uart0 = 1,
+ .has_uart1 = 1,
+ .has_pci = 1,
+ .has_ohci0 = 1,
+ .has_ehci0 = 1,
+
+ .has_enetsw = 1,
+ .enetsw = {
+ .used_ports = {
+ [5] = {
+ .used = 1,
+ .phy_id = 0xff,
+ .bypass_link = 1,
+ .force_speed = 1000,
+ .force_duplex_full = 1,
+ .name = "RGMII",
+ },
+ },
+ },
+};
+
static struct board_info __initdata board_VR3025u = {
.name = "96368M-1541N",
.expected_cpu_id = 0x6368,
@@ -2674,6 +2699,7 @@ static const struct board_info __initcon
&board_HG622,
&board_HG655b,
&board_P870HW51A_V2,
+ &board_R1000H,
&board_VH4032N,
&board_VR3025u,
&board_VR3025un,
@@ -2775,6 +2801,7 @@ static struct of_device_id const bcm963x
{ .compatible = "sfr,nb6-ser-r0", .data = &board_nb6, },
#endif
#ifdef CONFIG_BCM63XX_CPU_6368
+ { .compatible = "actiontec,r1000h", .data = &board_R1000H, },
{ .compatible = "adb,av4202n", .data = &board_AV4202N, },
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },