1/*
2 * Broadcom BCM470X / BCM5301X ARM platform code.
3 * DTS for Netgear R8000
4 *
5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
6 *
7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
18 */
19
20/dts-v1/;
21
22#include "bcm4709.dtsi"
23#include "bcm5301x-nand-cs0-bch8.dtsi"
24
25/ {
26	compatible = "netgear,r8000", "brcm,bcm4709", "brcm,bcm4708";
27	model = "Netgear R8000 (BCM4709)";
28
29	chosen {
30		bootargs = "console=ttyS0,115200";
31	};
32
33	memory@0 {
34		device_type = "memory";
35		reg = <0x00000000 0x08000000>,
36		      <0x88000000 0x08000000>;
37	};
38
39	leds {
40		compatible = "gpio-leds";
41
42		power-white {
43			label = "bcm53xx:white:power";
44			gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
45			linux,default-trigger = "default-on";
46		};
47
48		power-amber {
49			label = "bcm53xx:amber:power";
50			gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
51		};
52
53		wan-white {
54			label = "bcm53xx:white:wan";
55			gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
56			linux,default-trigger = "default-on";
57		};
58
59		wan-amber {
60			label = "bcm53xx:amber:wan";
61			gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
62		};
63
64		5ghz-1 {
65			label = "bcm53xx:white:5ghz-1";
66			gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
67		};
68
69		2ghz {
70			label = "bcm53xx:white:2ghz";
71			gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
72		};
73
74		wireless {
75			label = "bcm53xx:white:wireless";
76			gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
77		};
78
79		wps {
80			label = "bcm53xx:white:wps";
81			gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
82		};
83
84		5ghz-2 {
85			label = "bcm53xx:white:5ghz-2";
86			gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
87		};
88
89		usb3 {
90			label = "bcm53xx:white:usb3";
91			gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
92		};
93
94		usb2 {
95			label = "bcm53xx:white:usb2";
96			gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
97		};
98	};
99
100	gpio-keys {
101		compatible = "gpio-keys";
102
103		button-rfkill {
104			label = "WiFi";
105			linux,code = <KEY_RFKILL>;
106			gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
107		};
108
109		button-wps {
110			label = "WPS";
111			linux,code = <KEY_WPS_BUTTON>;
112			gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
113		};
114
115		button-restart {
116			label = "Reset";
117			linux,code = <KEY_RESTART>;
118			gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
119		};
120
121		button-brightness {
122			label = "Backlight";
123			linux,code = <KEY_BRIGHTNESS_ZERO>;
124			gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
125		};
126	};
127};
128
129&pcie0 {
130	#address-cells = <3>;
131	#size-cells = <2>;
132
133	bridge@0,0,0 {
134		reg = <0x0000 0 0 0 0>;
135
136		#address-cells = <3>;
137		#size-cells = <2>;
138
139		wifi@0,1,0 {
140			reg = <0x0000 0 0 0 0>;
141			ieee80211-freq-limit = <5735000 5835000>;
142		};
143	};
144};
145
146&pcie1 {
147	#address-cells = <3>;
148	#size-cells = <2>;
149
150	bridge@1,0,0 {
151		reg = <0x0000 0 0 0 0>;
152
153		#address-cells = <3>;
154		#size-cells = <2>;
155
156		bridge@1,1,0 {
157			reg = <0x0000 0 0 0 0>;
158
159			#address-cells = <3>;
160			#size-cells = <2>;
161
162			bridge@1,2,2 {
163				reg = <0x1000 0 0 0 0>;
164
165				#address-cells = <3>;
166				#size-cells = <2>;
167
168				wifi@1,4,0 {
169					reg = <0x0000 0 0 0 0>;
170					ieee80211-freq-limit = <5170000 5730000>;
171				};
172			};
173		};
174	};
175};
176
177&usb2 {
178	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
179};
180
181&usb3 {
182	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
183};
184
185&usb3_phy {
186	status = "okay";
187};
188
189&srab {
190	status = "okay";
191
192	ports {
193		port@0 {
194			reg = <0>;
195			label = "lan1";
196		};
197
198		port@1 {
199			reg = <1>;
200			label = "lan2";
201		};
202
203		port@2 {
204			reg = <2>;
205			label = "lan3";
206		};
207
208		port@3 {
209			reg = <3>;
210			label = "lan4";
211		};
212
213		port@4 {
214			reg = <4>;
215			label = "wan";
216		};
217
218		port@8 {
219			reg = <8>;
220			label = "cpu";
221			ethernet = <&gmac2>;
222
223			fixed-link {
224				speed = <1000>;
225				full-duplex;
226			};
227		};
228	};
229};
230