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};
197