This adds support for the Netgear DGND3700 v1 and DGND3800B. DGND3700 v1 and DGND3800B are exactly the same router, only one difference, the factory firmware. This patch produces two factory firmwares for each router. The router includes an onboard NAND flash for extra storage. NAND is currently not supported in bcm63xx, so no code added for this part. The NOR flash (32MB) is enough for storing an openwrt firmware. Signed-off-by: Daniel Gonzalez <dgcbueu@gmail.com> [jogo: Add back commit message from v1] Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 44831master
parent
9dc137397f
commit
ca7f6d28c8
@ -0,0 +1,110 @@ |
||||
/dts-v1/; |
||||
|
||||
/include/ "bcm6368.dtsi" |
||||
|
||||
/ { |
||||
model = "Netgear DGND3700v1/DGND3800B"; |
||||
compatible = "netgear,dgnd3700v1", "brcm,bcm6368"; |
||||
|
||||
gpio-keys-polled { |
||||
compatible = "gpio-keys-polled"; |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
poll-interval = <20>; |
||||
debounce-interval = <60>; |
||||
|
||||
wlan { |
||||
label = "wlan"; |
||||
gpios = <&gpio0 10 1>; |
||||
linux,code = <0xee>; |
||||
}; |
||||
reset { |
||||
label = "reset"; |
||||
gpios = <&gpio0 12 1>; |
||||
linux,code = <0x198>; |
||||
}; |
||||
wps { |
||||
label = "wps"; |
||||
gpios = <&gpio1 3 1>; |
||||
linux,code = <0x211>; |
||||
}; |
||||
}; |
||||
|
||||
gpio-leds { |
||||
compatible = "gpio-leds"; |
||||
|
||||
dsl_green { |
||||
label = "DGND3700v1_3800B:green:dsl"; |
||||
gpios = <&gpio0 2 1>; |
||||
}; |
||||
inet_red { |
||||
label = "DGND3700v1_3800B:red:inet"; |
||||
gpios = <&gpio0 4 1>; |
||||
}; |
||||
inet_green { |
||||
label = "DGND3700v1_3800B:green:inet"; |
||||
gpios = <&gpio0 5 1>; |
||||
}; |
||||
wps_green { |
||||
label = "DGND3700v1_3800B:green:wps"; |
||||
gpios = <&gpio0 11 1>; |
||||
}; |
||||
usbfront_green { |
||||
label = "DGND3700v1_3800B:green:usb-front"; |
||||
gpios = <&gpio0 13 1>; |
||||
}; |
||||
usbback_green { |
||||
label = "DGND3700v1_3800B:green:usb-back"; |
||||
gpios = <&gpio0 14 1>; |
||||
}; |
||||
power_red { |
||||
label = "DGND3700v1_3800B:red:power"; |
||||
gpios = <&gpio0 22 1>; |
||||
}; |
||||
lan_green { |
||||
label = "DGND3700v1_3800B:green:lan"; |
||||
gpios = <&gpio0 23 1>; |
||||
}; |
||||
power_green { |
||||
label = "DGND3700v1_3800B:green:power"; |
||||
gpios = <&gpio0 24 1>; |
||||
default-state = "on"; |
||||
}; |
||||
wifi2g_green { |
||||
label = "DGND3700v1_3800B:green:wifi2g"; |
||||
gpios = <&gpio0 26 1>; |
||||
}; |
||||
wifi5g_blue { |
||||
label = "DGND3700v1_3800B:blue:wifi5g"; |
||||
gpios = <&gpio0 27 1>; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
&pflash { |
||||
status = "ok"; |
||||
|
||||
linux,part-probe = "bcm63xxpart"; |
||||
|
||||
cfe@0 { |
||||
label = "CFE"; |
||||
reg = <0x000000 0x020000>; |
||||
read-only; |
||||
}; |
||||
|
||||
linux@20000 { |
||||
label = "linux"; |
||||
reg = <0x020000 0x1e20000>; |
||||
}; |
||||
|
||||
board_data@1e40000 { |
||||
label = "board_data"; |
||||
reg = <0x1e40000 0x1a0000>; |
||||
read-only; |
||||
}; |
||||
|
||||
nvram@1fe0000 { |
||||
label = "nvram"; |
||||
reg = <0x1fe0000 0x20000>; |
||||
}; |
||||
}; |
@ -0,0 +1,67 @@ |
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -2132,6 +2132,48 @@
|
||||
.has_ehci0 = 1,
|
||||
};
|
||||
|
||||
+static struct b53_platform_data DGND3700v1_3800B_b53_pdata = {
|
||||
+ .alias = "eth0",
|
||||
+};
|
||||
+
|
||||
+static struct spi_board_info DGND3700v1_3800B_spi_devices[] = {
|
||||
+ {
|
||||
+ .modalias = "b53-switch",
|
||||
+ .max_speed_hz = 781000,
|
||||
+ .bus_num = 0,
|
||||
+ .chip_select = 1,
|
||||
+ .platform_data = &DGND3700v1_3800B_b53_pdata,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+static struct board_info __initdata board_DGND3700v1_3800B = {
|
||||
+ .name = "DGND3700v1_3800B",
|
||||
+ .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 = {
|
||||
+ [5] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0xff,
|
||||
+ .bypass_link = 1,
|
||||
+ .force_speed = 1000,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .name = "RGMII",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+
|
||||
+ .spis = DGND3700v1_3800B_spi_devices,
|
||||
+ .num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
|
||||
+};
|
||||
+
|
||||
static struct sprom_fixup __initdata vr3025u_fixups[] = {
|
||||
{ .offset = 97, .value = 0xfeb3 },
|
||||
{ .offset = 98, .value = 0x1618 },
|
||||
@@ -2723,6 +2765,7 @@
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
&board_96368mvwg,
|
||||
&board_96368mvngr,
|
||||
+ &board_DGND3700v1_3800B,
|
||||
&board_P870HW51A_V2,
|
||||
&board_VR3025u,
|
||||
&board_VR3025un,
|
||||
@@ -2813,6 +2856,7 @@
|
||||
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
|
||||
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
|
||||
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
|
||||
+ { .compatible = "netgear,dgnd3700v1", .data = &board_DGND3700v1_3800B, },
|
||||
{ .compatible = "zyxel,p870hw-51a-v2", .data = &board_P870HW51A_V2, },
|
||||
#endif
|
||||
#ifdef CONFIG_BCM63XX_CPU_63268
|
@ -0,0 +1,67 @@ |
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -2132,6 +2132,48 @@
|
||||
.has_ehci0 = 1,
|
||||
};
|
||||
|
||||
+static struct b53_platform_data DGND3700v1_3800B_b53_pdata = {
|
||||
+ .alias = "eth0",
|
||||
+};
|
||||
+
|
||||
+static struct spi_board_info DGND3700v1_3800B_spi_devices[] = {
|
||||
+ {
|
||||
+ .modalias = "b53-switch",
|
||||
+ .max_speed_hz = 781000,
|
||||
+ .bus_num = 0,
|
||||
+ .chip_select = 1,
|
||||
+ .platform_data = &DGND3700v1_3800B_b53_pdata,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+static struct board_info __initdata board_DGND3700v1_3800B = {
|
||||
+ .name = "DGND3700v1_3800B",
|
||||
+ .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 = {
|
||||
+ [5] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0xff,
|
||||
+ .bypass_link = 1,
|
||||
+ .force_speed = 1000,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .name = "RGMII",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+
|
||||
+ .spis = DGND3700v1_3800B_spi_devices,
|
||||
+ .num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
|
||||
+};
|
||||
+
|
||||
static struct sprom_fixup __initdata vr3025u_fixups[] = {
|
||||
{ .offset = 97, .value = 0xfeb3 },
|
||||
{ .offset = 98, .value = 0x1618 },
|
||||
@@ -2723,6 +2765,7 @@
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
&board_96368mvwg,
|
||||
&board_96368mvngr,
|
||||
+ &board_DGND3700v1_3800B,
|
||||
&board_P870HW51A_V2,
|
||||
&board_VR3025u,
|
||||
&board_VR3025un,
|
||||
@@ -2813,6 +2856,7 @@
|
||||
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
|
||||
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
|
||||
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
|
||||
+ { .compatible = "netgear,dgnd3700v1", .data = &board_DGND3700v1_3800B, },
|
||||
{ .compatible = "zyxel,p870hw-51a-v2", .data = &board_P870HW51A_V2, },
|
||||
#endif
|
||||
#ifdef CONFIG_BCM63XX_CPU_63268
|
Loading…
Reference in new issue