cb0791a3998e38ae0a74600064af7adc6b6e3ffa
[openwrt/openwrt.git] / target / linux / ipq40xx / files-4.19 / 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 reg = <0>;
185 spi-max-frequency = <24000000>;
186 status = "okay";
187 m25p,fast-read;
188
189 partitions {
190 compatible = "fixed-partitions";
191 #address-cells = <1>;
192 #size-cells = <1>;
193
194 partition0@0 {
195 label = "SBL1";
196 reg = <0x00000000 0x00040000>;
197 read-only;
198 };
199 partition1@40000 {
200 label = "MIBIB";
201 reg = <0x00040000 0x00020000>;
202 read-only;
203 };
204 partition2@60000 {
205 label = "QSEE";
206 reg = <0x00060000 0x00060000>;
207 read-only;
208 };
209 partition3@c0000 {
210 label = "CDT";
211 reg = <0x000c0000 0x00010000>;
212 read-only;
213 };
214 partition4@d0000 {
215 label = "DDRPARAMS";
216 reg = <0x000d0000 0x00010000>;
217 read-only;
218 };
219 partition5@e0000 {
220 label = "APPSBL"; /* u-boot */
221 reg = <0x000e0000 0x00080000>;
222 /* U-Boot Standalone App "zloader" is located at 0x64000 */
223 read-only;
224 };
225 partition6@160000 {
226 label = "APPSBLENV"; /* u-boot env */
227 reg = <0x00160000 0x00010000>;
228 };
229 partition7@170000 {
230 /* make a backup of this partition! */
231 label = "ART";
232 reg = <0x00170000 0x00010000>;
233 read-only;
234 };
235 partition8@180000 {
236 label = "kernel";
237 reg = <0x00180000 0x00400000>;
238 };
239 partition9@580000 {
240 label = "dualflag";
241 reg = <0x00580000 0x00010000>;
242 read-only;
243 };
244 partition10@590000 {
245 label = "header";
246 reg = <0x00590000 0x00010000>;
247 };
248 partition11@5a0000 {
249 label = "romd";
250 reg = <0x005a0000 0x00100000>;
251 read-only;
252 };
253 partition12@6a0000 {
254 label = "not_root_data";
255 /*
256 * for some strange reason, someone at ZyXEL
257 * had the "great" idea to put the rootfs_data
258 * in front of rootfs... Don't do that!
259 * As a result this one, full MebiByte remains
260 * unused.
261 */
262 reg = <0x006a0000 0x00100000>;
263 };
264 partition13@7a0000 {
265 label = "rootfs";
266 reg = <0x007a0000 0x01860000>;
267 };
268 };
269 };
270 };
271
272 &blsp1_uart1 {
273 pinctrl-0 = <&serial_pins>;
274 pinctrl-names = "default";
275 status = "okay";
276 };
277
278 &cryptobam {
279 status = "okay";
280 };
281
282 &blsp_dma {
283 status = "okay";
284 };
285
286 &wifi0 {
287 status = "okay";
288 qcom,ath10k-calibration-variant = "ZyXEL-NBG6617";
289 };
290
291 &wifi1 {
292 status = "okay";
293 qcom,ath10k-calibration-variant = "ZyXEL-NBG6617";
294 };
295
296 &usb3_ss_phy {
297 status = "okay";
298 };
299
300 &usb3_hs_phy {
301 status = "okay";
302 };
303
304 &usb2_hs_phy {
305 status = "okay";
306 };