3768cd87b9d83d52a7e3c2d2744309296f343ba2
[openwrt/openwrt.git] / target / linux / ipq40xx / files-4.14 / arch / arm / boot / dts / qcom-ipq4018-fritz4040.dts
1 /* Copyright (c) 2015, The Linux Foundation. All rights reserved.
2 *
3 * Permission to use, copy, modify, and/or distribute this software for any
4 * purpose with or without fee is hereby granted, provided that the above
5 * copyright notice and this permission notice appear in all copies.
6 *
7 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14 *
15 */
16
17 #include "qcom-ipq4019.dtsi"
18 #include "qcom-ipq4019-bus.dtsi"
19 #include <dt-bindings/gpio/gpio.h>
20 #include <dt-bindings/input/input.h>
21 #include <dt-bindings/soc/qcom,tcsr.h>
22
23 / {
24 model = "AVM FRITZ!Box 4040";
25 compatible = "avm,fritzbox-4040", "qcom,ipq4019";
26
27 aliases {
28 led-boot = &power;
29 led-failsafe = &flash;
30 led-running = &power;
31 led-upgrade = &flash;
32 };
33
34 soc {
35 mdio@90000 {
36 status = "okay";
37 };
38
39 ess-psgmii@98000 {
40 status = "okay";
41 };
42
43 tcsr@1949000 {
44 compatible = "qcom,tcsr";
45 reg = <0x1949000 0x100>;
46 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
47 };
48
49 tcsr@194b000 {
50 compatible = "qcom,tcsr";
51 reg = <0x194b000 0x100>;
52 qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
53 };
54
55 ess_tcsr@1953000 {
56 compatible = "qcom,tcsr";
57 reg = <0x1953000 0x1000>;
58 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
59 };
60
61 tcsr@1957000 {
62 compatible = "qcom,tcsr";
63 reg = <0x1957000 0x100>;
64 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
65 };
66
67 usb2@60f8800 {
68 status = "okay";
69 };
70
71 serial@78af000 {
72 pinctrl-0 = <&serial_pins>;
73 pinctrl-names = "default";
74 status = "okay";
75 };
76
77 usb3@8af8800 {
78 status = "okay";
79 };
80
81 crypto@8e3a000 {
82 status = "okay";
83 };
84
85 wifi@a000000 {
86 status = "okay";
87 };
88
89 wifi@a800000 {
90 status = "okay";
91 };
92
93 watchdog@b017000 {
94 status = "okay";
95 };
96
97 qca8075: ess-switch@c000000 {
98 status = "okay";
99
100 #gpio-cells = <2>;
101 gpio-controller;
102
103 enable-usb-power {
104 gpio-hog;
105 line-name = "enable USB3 power";
106 gpios = <7 GPIO_ACTIVE_HIGH>;
107 output-high;
108 };
109 };
110
111 edma@c080000 {
112 status = "okay";
113 };
114 };
115
116 gpio-keys {
117 compatible = "gpio-keys";
118
119 wlan {
120 label = "wlan";
121 gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
122 linux,code = <KEY_RFKILL>;
123 };
124
125 wps {
126 label = "wps";
127 gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
128 linux,code = <KEY_WPS_BUTTON>;
129 };
130 };
131
132 gpio-leds {
133 compatible = "gpio-leds";
134
135 wlan {
136 label = "fritz4040:green:wlan";
137 gpios = <&qca8075 1 GPIO_ACTIVE_HIGH>;
138 };
139
140 panic: info_red {
141 label = "fritz4040:red:info";
142 gpios = <&qca8075 3 GPIO_ACTIVE_HIGH>;
143 panic-indicator;
144 };
145
146 wan {
147 label = "fritz4040:green:wan";
148 gpios = <&qca8075 5 GPIO_ACTIVE_HIGH>;
149 };
150
151 power: power {
152 label = "fritz4040:green:power";
153 gpios = <&qca8075 11 GPIO_ACTIVE_HIGH>;
154 };
155
156 lan {
157 label = "fritz4040:green:lan";
158 gpios = <&qca8075 13 GPIO_ACTIVE_HIGH>;
159 };
160
161 flash: info_amber {
162 label = "fritz4040:amber:info";
163 gpios = <&qca8075 15 GPIO_ACTIVE_HIGH>;
164 };
165 };
166 };
167
168 &tlmm {
169 serial_pins: serial_pinmux {
170 mux {
171 pins = "gpio60", "gpio61";
172 function = "blsp_uart0";
173 bias-disable;
174 };
175 };
176
177 spi_0_pins: spi_0_pinmux {
178 mux {
179 function = "blsp_spi0";
180 pins = "gpio55", "gpio56", "gpio57";
181 drive-strength = <12>;
182 bias-disable;
183 };
184
185 mux_cs {
186 function = "gpio";
187 pins = "gpio54";
188 drive-strength = <2>;
189 bias-disable;
190 output-high;
191 };
192 };
193 };
194
195 &cryptobam {
196 status = "okay";
197 };
198
199 &blsp_dma {
200 status = "okay";
201 };
202
203 &spi_0 { /* BLSP1 QUP1 */
204 pinctrl-0 = <&spi_0_pins>;
205 pinctrl-names = "default";
206 status = "okay";
207 cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
208
209 mx25l25635f@0 {
210 compatible = "jedec,spi-nor";
211 #address-cells = <1>;
212 #size-cells = <0>;
213 reg = <0>;
214 spi-max-frequency = <24000000>;
215 status = "okay";
216 m25p,fast-read;
217
218 partitions {
219 compatible = "fixed-partitions";
220 #address-cells = <1>;
221 #size-cells = <1>;
222
223 partition0@0 {
224 label = "SBL1";
225 reg = <0x00000000 0x00040000>;
226 read-only;
227 };
228 partition1@40000 {
229 label = "MIBIB";
230 reg = <0x00040000 0x00020000>;
231 read-only;
232 };
233 partition2@60000 {
234 label = "QSEE";
235 reg = <0x00060000 0x00060000>;
236 read-only;
237 };
238 partition3@c0000 {
239 label = "CDT";
240 reg = <0x000c0000 0x00010000>;
241 read-only;
242 };
243 partition4@d0000 {
244 label = "DDRPARAMS";
245 reg = <0x000d0000 0x00010000>;
246 read-only;
247 };
248 partition5@e0000 {
249 label = "APPSBLENV"; /* uboot env - empty */
250 reg = <0x000e0000 0x00010000>;
251 read-only;
252 };
253 partition6@f0000 {
254 label = "urlader"; /* APPSBL */
255 reg = <0x000f0000 0x0002dc000>;
256 read-only;
257 };
258 partition7@11dc00 {
259 /* make a backup of this partition! */
260 label = "urlader_config";
261 reg = <0x0011dc00 0x00002400>;
262 read-only;
263 };
264 partition8@120000 {
265 label = "tffs1";
266 reg = <0x00120000 0x00080000>;
267 read-only;
268 };
269 partition9@1a0000 {
270 label = "tffs2";
271 reg = <0x001a0000 0x00080000>;
272 read-only;
273 };
274 partition10@220000 {
275 label = "uboot";
276 reg = <0x00220000 0x00080000>;
277 read-only;
278 };
279 partition11@2A0000 {
280 label = "firmware";
281 reg = <0x002a0000 0x01c60000>;
282 };
283 partition12@1f00000 {
284 label = "jffs2";
285 reg = <0x01f00000 0x00100000>;
286 };
287 };
288 };
289 };
290
291 &usb3_ss_phy {
292 status = "okay";
293 };
294
295 &usb3_hs_phy {
296 status = "okay";
297 };
298
299 &usb2_hs_phy {
300 status = "okay";
301 };