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 {
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		#address-cells = <1>;
103		#size-cells = <0>;
104
105		rfkill {
106			label = "WiFi";
107			linux,code = <KEY_RFKILL>;
108			gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
109		};
110
111		wps {
112			label = "WPS";
113			linux,code = <KEY_WPS_BUTTON>;
114			gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
115		};
116
117		restart {
118			label = "Reset";
119			linux,code = <KEY_RESTART>;
120			gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
121		};
122
123		brightness {
124			label = "Backlight";
125			linux,code = <KEY_BRIGHTNESS_ZERO>;
126			gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
127		};
128	};
129};
130
131&pcie0 {
132	#address-cells = <3>;
133	#size-cells = <2>;
134
135	bridge@0,0,0 {
136		reg = <0x0000 0 0 0 0>;
137
138		#address-cells = <3>;
139		#size-cells = <2>;
140
141		wifi@0,1,0 {
142			reg = <0x0000 0 0 0 0>;
143			ieee80211-freq-limit = <5735000 5835000>;
144		};
145	};
146};
147
148&pcie1 {
149	#address-cells = <3>;
150	#size-cells = <2>;
151
152	bridge@1,0,0 {
153		reg = <0x0000 0 0 0 0>;
154
155		#address-cells = <3>;
156		#size-cells = <2>;
157
158		bridge@1,1,0 {
159			reg = <0x0000 0 0 0 0>;
160
161			#address-cells = <3>;
162			#size-cells = <2>;
163
164			bridge@1,2,2 {
165				reg = <0x1000 0 0 0 0>;
166
167				#address-cells = <3>;
168				#size-cells = <2>;
169
170				wifi@1,4,0 {
171					reg = <0x0000 0 0 0 0>;
172					ieee80211-freq-limit = <5170000 5730000>;
173				};
174			};
175		};
176	};
177};
178
179&usb2 {
180	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
181};
182
183&usb3 {
184	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
185};
186
187&usb3_phy {
188	status = "okay";
189};
190