08ae27d682d82fe359f960cdb0b54b042402c4b7
[openwrt/openwrt.git] / target / linux / ipq40xx / files-4.14 / arch / arm / boot / dts / qcom-ipq4018-nbg6617.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2
3 #include "qcom-ipq4019.dtsi"
4 #include <dt-bindings/gpio/gpio.h>
5 #include <dt-bindings/input/input.h>
6 #include <dt-bindings/input/linux-event-codes.h>
7 #include <dt-bindings/soc/qcom,tcsr.h>
8
9 / {
10 model = "ZyXEL NBG6617";
11 compatible = "zyxel,nbg6617", "qcom,ipq4019";
12
13 chosen {
14 /*
15 * the vendor u-boot adds root and mtdparts cmdline parameters
16 * which we don't want... but we have to overwrite them or else
17 * the kernel will take them at face value.
18 */
19 bootargs-append = " mtdparts= root=31:13";
20 };
21
22 aliases {
23 led-boot = &power;
24 led-failsafe = &power;
25 led-running = &power;
26 led-upgrade = &power;
27 };
28
29 soc {
30 mdio@90000 {
31 status = "okay";
32 };
33
34 ess-psgmii@98000 {
35 status = "okay";
36 };
37
38 tcsr@1949000 {
39 compatible = "qcom,tcsr";
40 reg = <0x1949000 0x100>;
41 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
42 };
43
44 tcsr@194b000 {
45 compatible = "qcom,tcsr";
46 reg = <0x194b000 0x100>;
47 qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
48 };
49
50 ess_tcsr@1953000 {
51 compatible = "qcom,tcsr";
52 reg = <0x1953000 0x1000>;
53 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
54 };
55
56 tcsr@1957000 {
57 compatible = "qcom,tcsr";
58 reg = <0x1957000 0x100>;
59 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
60 };
61
62 usb2@60f8800 {
63 status = "okay";
64 };
65
66 usb3@8af8800 {
67 status = "okay";
68 };
69
70 crypto@8e3a000 {
71 status = "okay";
72 };
73
74 watchdog@b017000 {
75 status = "okay";
76 };
77
78 ess-switch@c000000 {
79 status = "okay";
80 };
81
82 edma@c080000 {
83 status = "okay";
84 };
85 };
86
87 keys {
88 compatible = "gpio-keys";
89
90 wlan {
91 label = "wlan";
92 gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
93 linux,code = <KEY_RFKILL>;
94 linux,input-type = <EV_SW>;
95 };
96
97 wps {
98 label = "wps";
99 gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
100 linux,code = <KEY_WPS_BUTTON>;
101 };
102
103 reset {
104 label = "reset";
105 gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
106 linux,code = <KEY_RESTART>;
107 };
108 };
109
110 leds {
111 compatible = "gpio-leds";
112 pinctrl-0 = <&led_pins>;
113 pinctrl-names = "default";
114
115 power: power {
116 label = "nbg6617:green:power";
117 gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
118 };
119
120 usb {
121 label = "nbg6617:green:usb";
122 gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
123 };
124
125 wlan2G {
126 label = "nbg6617:green:wlan2G";
127 gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
128 };
129
130 wlan5G {
131 label = "nbg6617:green:wlan5G";
132 gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
133 };
134
135 wps {
136 label = "nbg6617:green:wps";
137 gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>;
138 };
139 };
140 };
141
142 &tlmm {
143 serial_pins: serial_pinmux {
144 mux {
145 pins = "gpio60", "gpio61";
146 function = "blsp_uart0";
147 bias-disable;
148 };
149 };
150 spi_0_pins: spi_0_pinmux {
151 mux {
152 function = "blsp_spi0";
153 pins = "gpio55", "gpio56", "gpio57";
154 drive-strength = <12>;
155 bias-disable;
156 };
157
158 mux_cs {
159 function = "gpio";
160 pins = "gpio54";
161 drive-strength = <2>;
162 bias-disable;
163 output-low;
164 };
165 };
166 led_pins: led_pinmux {
167 mux {
168 pins = "gpio0", "gpio1", "gpio3", "gpio5", "gpio58";
169 drive-strength = <0x8>;
170 bias-disable;
171 output-low;
172 };
173 };
174 };
175
176 &blsp1_spi1 { /* BLSP1 QUP1 */
177 pinctrl-0 = <&spi_0_pins>;
178 pinctrl-names = "default";
179 status = "okay";
180 cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
181
182 mx25l25635f@0 {
183 compatible = "mx25l25635f", "jedec,spi-nor";
184 #address-cells = <1>;
185 #size-cells = <0>;
186 reg = <0>;
187 spi-max-frequency = <24000000>;
188 status = "okay";
189 m25p,fast-read;
190
191 partitions {
192 compatible = "fixed-partitions";
193 #address-cells = <1>;
194 #size-cells = <1>;
195
196 partition0@0 {
197 label = "SBL1";
198 reg = <0x00000000 0x00040000>;
199 read-only;
200 };
201 partition1@40000 {
202 label = "MIBIB";
203 reg = <0x00040000 0x00020000>;
204 read-only;
205 };
206 partition2@60000 {
207 label = "QSEE";
208 reg = <0x00060000 0x00060000>;
209 read-only;
210 };
211 partition3@c0000 {
212 label = "CDT";
213 reg = <0x000c0000 0x00010000>;
214 read-only;
215 };
216 partition4@d0000 {
217 label = "DDRPARAMS";
218 reg = <0x000d0000 0x00010000>;
219 read-only;
220 };
221 partition5@e0000 {
222 label = "APPSBL"; /* u-boot */
223 reg = <0x000e0000 0x00080000>;
224 /* U-Boot Standalone App "zloader" is located at 0x64000 */
225 read-only;
226 };
227 partition6@160000 {
228 label = "APPSBLENV"; /* u-boot env */
229 reg = <0x00160000 0x00010000>;
230 };
231 partition7@170000 {
232 /* make a backup of this partition! */
233 label = "ART";
234 reg = <0x00170000 0x00010000>;
235 read-only;
236 };
237 partition8@180000 {
238 label = "kernel";
239 reg = <0x00180000 0x00400000>;
240 };
241 partition9@580000 {
242 label = "dualflag";
243 reg = <0x00580000 0x00010000>;
244 read-only;
245 };
246 partition10@590000 {
247 label = "header";
248 reg = <0x00590000 0x00010000>;
249 };
250 partition11@5a0000 {
251 label = "romd";
252 reg = <0x005a0000 0x00100000>;
253 read-only;
254 };
255 partition12@6a0000 {
256 label = "not_root_data";
257 /*
258 * for some strange reason, someone at ZyXEL
259 * had the "great" idea to put the rootfs_data
260 * in front of rootfs... Don't do that!
261 * As a result this one, full MebiByte remains
262 * unused.
263 */
264 reg = <0x006a0000 0x00100000>;
265 };
266 partition13@7a0000 {
267 label = "rootfs";
268 reg = <0x007a0000 0x01860000>;
269 };
270 };
271 };
272 };
273
274 &blsp1_uart1 {
275 pinctrl-0 = <&serial_pins>;
276 pinctrl-names = "default";
277 status = "okay";
278 };
279
280 &cryptobam {
281 status = "okay";
282 };
283
284 &blsp_dma {
285 status = "okay";
286 };
287
288 &wifi0 {
289 status = "okay";
290 qcom,ath10k-calibration-variant = "ZyXEL-NBG6617";
291 };
292
293 &wifi1 {
294 status = "okay";
295 qcom,ath10k-calibration-variant = "ZyXEL-NBG6617";
296 };
297
298 &usb3_ss_phy {
299 status = "okay";
300 };
301
302 &usb3_hs_phy {
303 status = "okay";
304 };
305
306 &usb2_hs_phy {
307 status = "okay";
308 };