Skip to content

Commit 5c1ae77

Browse files
CFSworksffainelli
authored andcommitted
arm64: dts: broadcom: bcmbca: bcm4908: Add DT for Zyxel EX3510-B
Zyxel EX3510-B is a WiFi 6 capable home gateway (family) based on the BCM4906 SoC, with 512MiB of RAM and 512MiB of NAND flash. WiFi support consists of a BCM6710 and a BCM6715 attached to separate PCIe buses. Add an initial devicetree for this system, with support for: - Onboard UART (per base dtsi) - USB (2.0 only; superspeed devices are treated as high-speed due to an unknown cause) - Both buttons (rear reset, front WPS) - Almost all LEDs: - Power (red/green) - Internet (red/green) - WAN (green) - LAN (green; anode is connected to GPIO 13 so currently nonfunctioning) - USB (green) - WPS button (red/green) - Absent in DT: There are 2.4GHz/5.0GHz WiFi status LEDs connected to the WiFi chips instead of the SoC. - NAND flash - Embedded Ethernet switch - Factory-programmed Ethernet MAC address WiFi cannot be enabled at this time due to Linux lacking drivers for both the PCIe controllers and the PCIe WiFi peripherals. Signed-off-by: Sam Edwards <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Florian Fainelli <[email protected]>
1 parent 0828ed4 commit 5c1ae77

File tree

2 files changed

+197
-0
lines changed

2 files changed

+197
-0
lines changed

arch/arm64/boot/dts/broadcom/bcmbca/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
dtb-$(CONFIG_ARCH_BCMBCA) += \
33
bcm4906-netgear-r8000p.dtb \
44
bcm4906-tplink-archer-c2300-v1.dtb \
5+
bcm4906-zyxel-ex3510b.dtb \
56
bcm4908-asus-gt-ac5300.dtb \
67
bcm4908-netgear-raxe500.dtb \
78
bcm94908.dtb \
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2+
3+
#include <dt-bindings/gpio/gpio.h>
4+
#include <dt-bindings/input/input.h>
5+
#include <dt-bindings/leds/common.h>
6+
7+
#include "bcm4906.dtsi"
8+
9+
/ {
10+
compatible = "zyxel,ex3510b", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
11+
model = "Zyxel EX3510-B";
12+
13+
memory@0 {
14+
device_type = "memory";
15+
reg = <0x0 0x0 0x0 0x20000000>;
16+
};
17+
18+
gpio-keys-polled {
19+
compatible = "gpio-keys-polled";
20+
poll-interval = <100>;
21+
22+
key-wps {
23+
label = "WPS";
24+
linux,code = <KEY_WPS_BUTTON>;
25+
gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
26+
};
27+
28+
key-reset {
29+
label = "Reset";
30+
linux,code = <KEY_RESTART>;
31+
gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
32+
};
33+
};
34+
};
35+
36+
&leds {
37+
pinctrl-0 = <&pins_led_0_a>, <&pins_led_2_a>, <&pins_led_3_a>,
38+
<&pins_led_4_a>, <&pins_led_10_a>, <&pins_led_12_a>,
39+
<&pins_led_14_a>, <&pins_led_15_a>, <&pins_led_21_a>;
40+
pinctrl-names = "default";
41+
42+
led@0 {
43+
reg = <0x0>;
44+
function = LED_FUNCTION_POWER;
45+
color = <LED_COLOR_ID_RED>;
46+
};
47+
48+
led@2 {
49+
reg = <0x2>;
50+
function = LED_FUNCTION_WAN_ONLINE;
51+
color = <LED_COLOR_ID_GREEN>;
52+
};
53+
54+
led@3 {
55+
reg = <0x3>;
56+
function = LED_FUNCTION_WAN_ONLINE;
57+
color = <LED_COLOR_ID_RED>;
58+
};
59+
60+
led@4 {
61+
reg = <0x4>;
62+
function = LED_FUNCTION_USB;
63+
color = <LED_COLOR_ID_GREEN>;
64+
trigger-sources = <&ohci_port1>, <&ohci_port2>,
65+
<&ehci_port1>, <&ehci_port2>,
66+
<&xhci_port1>, <&xhci_port2>;
67+
linux,default-trigger = "usbport";
68+
};
69+
70+
led@a {
71+
reg = <0xa>;
72+
function = LED_FUNCTION_POWER;
73+
color = <LED_COLOR_ID_GREEN>;
74+
linux,default-trigger = "default-on";
75+
};
76+
77+
led@c {
78+
reg = <0xc>;
79+
function = LED_FUNCTION_LAN;
80+
color = <LED_COLOR_ID_GREEN>;
81+
active-low;
82+
};
83+
84+
led@e {
85+
reg = <0xe>;
86+
function = LED_FUNCTION_WPS;
87+
color = <LED_COLOR_ID_GREEN>;
88+
active-low;
89+
};
90+
91+
led@f {
92+
reg = <0xf>;
93+
function = LED_FUNCTION_WPS;
94+
color = <LED_COLOR_ID_RED>;
95+
active-low;
96+
};
97+
98+
led@15 {
99+
reg = <0x15>;
100+
function = LED_FUNCTION_WAN;
101+
color = <LED_COLOR_ID_GREEN>;
102+
active-low;
103+
};
104+
};
105+
106+
&enet {
107+
nvmem-cells = <&base_mac_addr>;
108+
nvmem-cell-names = "mac-address";
109+
};
110+
111+
&usb_phy {
112+
brcm,ioc = <1>;
113+
brcm,ipp = <1>;
114+
status = "okay";
115+
};
116+
117+
&ehci {
118+
status = "okay";
119+
};
120+
121+
&ohci {
122+
status = "okay";
123+
};
124+
125+
&xhci {
126+
status = "okay";
127+
};
128+
129+
&ports {
130+
port@0 {
131+
label = "lan1";
132+
};
133+
134+
port@1 {
135+
label = "lan2";
136+
};
137+
138+
port@2 {
139+
label = "lan3";
140+
};
141+
142+
port@3 {
143+
label = "lan4";
144+
};
145+
146+
port@7 {
147+
reg = <7>;
148+
phy-mode = "internal";
149+
phy-handle = <&phy12>;
150+
label = "wan";
151+
};
152+
};
153+
154+
&nand_controller {
155+
status = "okay";
156+
};
157+
158+
&nandcs {
159+
brcm,nand-oob-sector-size = <27>;
160+
nand-ecc-strength = <8>;
161+
nand-ecc-step-size = <512>;
162+
nand-on-flash-bbt;
163+
164+
#address-cells = <1>;
165+
#size-cells = <0>;
166+
167+
partitions {
168+
compatible = "brcm,bcm4908-partitions";
169+
#address-cells = <1>;
170+
#size-cells = <1>;
171+
172+
partition@0 {
173+
compatible = "nvmem-cells";
174+
label = "cferom";
175+
reg = <0x0 0x100000>;
176+
read-only;
177+
178+
#address-cells = <1>;
179+
#size-cells = <1>;
180+
181+
base_mac_addr: mac@106a0 {
182+
reg = <0x106a0 0x6>;
183+
};
184+
};
185+
186+
partition@100000 {
187+
compatible = "brcm,bcm4908-firmware";
188+
reg = <0x100000 0x5f80000>;
189+
};
190+
191+
partition@6080000 {
192+
compatible = "brcm,bcm4908-firmware";
193+
reg = <0x6080000 0x5f80000>;
194+
};
195+
};
196+
};

0 commit comments

Comments
 (0)