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 = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
11	model = "TP-Link Archer C2300 V1";
12
13	memory@0 {
14		device_type = "memory";
15		reg = <0x00 0x00 0x00 0x20000000>;
16	};
17
18	leds {
19		compatible = "gpio-leds";
20
21		led-power {
22			function = LED_FUNCTION_POWER;
23			color = <LED_COLOR_ID_BLUE>;
24			gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
25		};
26
27		led-2ghz {
28			function = "2ghz";
29			color = <LED_COLOR_ID_BLUE>;
30			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
31		};
32
33		led-5ghz {
34			function = "5ghz";
35			color = <LED_COLOR_ID_BLUE>;
36			gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
37		};
38
39		led-wan-amber {
40			function = LED_FUNCTION_WAN;
41			color = <LED_COLOR_ID_AMBER>;
42			gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
43		};
44
45		led-wan-blue {
46			function = LED_FUNCTION_WAN;
47			color = <LED_COLOR_ID_BLUE>;
48			gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
49		};
50
51		led-lan {
52			function = LED_FUNCTION_LAN;
53			color = <LED_COLOR_ID_BLUE>;
54			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
55		};
56
57		led-wps {
58			function = LED_FUNCTION_WPS;
59			color = <LED_COLOR_ID_BLUE>;
60			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
61		};
62
63		led-usb2 {
64			function = "usb2";
65			color = <LED_COLOR_ID_BLUE>;
66			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
67			trigger-sources = <&ohci_port1>, <&ehci_port1>;
68			linux,default-trigger = "usbport";
69		};
70
71		led-usb3 {
72			function = "usb3";
73			color = <LED_COLOR_ID_BLUE>;
74			gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
75			trigger-sources = <&ohci_port2>, <&ehci_port2>, <&xhci_port2>;
76			linux,default-trigger = "usbport";
77		};
78
79		led-brightness {
80			function = LED_FUNCTION_BACKLIGHT;
81			color = <LED_COLOR_ID_WHITE>;
82			gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
83		};
84	};
85
86	gpio-keys-polled {
87		compatible = "gpio-keys-polled";
88		poll-interval = <100>;
89
90		key-brightness {
91			label = "LEDs";
92			linux,code = <KEY_BRIGHTNESS_ZERO>;
93			gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
94		};
95
96		key-wps {
97			label = "WPS";
98			linux,code = <KEY_WPS_BUTTON>;
99			gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
100		};
101
102		key-wifi {
103			label = "WiFi";
104			linux,code = <KEY_RFKILL>;
105			gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
106		};
107
108		key-restart {
109			label = "Reset";
110			linux,code = <KEY_RESTART>;
111			gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
112		};
113	};
114};
115
116&usb_phy {
117	brcm,ioc = <1>;
118	status = "okay";
119};
120
121&ehci {
122	status = "okay";
123};
124
125&ohci {
126	status = "okay";
127};
128
129&xhci {
130	status = "okay";
131};
132
133&ports {
134	port@0 {
135		label = "lan4";
136	};
137
138	port@1 {
139		label = "lan3";
140	};
141
142	port@2 {
143		label = "lan2";
144	};
145
146	port@3 {
147		label = "lan1";
148	};
149
150	port@7 {
151		reg = <7>;
152		phy-mode = "internal";
153		phy-handle = <&phy12>;
154		label = "wan";
155	};
156};
157
158&nandcs {
159	nand-ecc-strength = <4>;
160	nand-ecc-step-size = <512>;
161	nand-on-flash-bbt;
162
163	#address-cells = <1>;
164	#size-cells = <0>;
165
166	partitions {
167		compatible = "brcm,bcm4908-partitions";
168		#address-cells = <1>;
169		#size-cells = <1>;
170
171		partition@0 {
172			label = "cferom";
173			reg = <0x0 0x100000>;
174		};
175
176		partition@100000 {
177			compatible = "brcm,bcm4908-firmware";
178			reg = <0x100000 0x3900000>;
179		};
180
181		partition@5800000 {
182			compatible = "brcm,bcm4908-firmware";
183			reg = <0x3a00000 0x3900000>;
184		};
185	};
186};
187