ipq40xx: add support for Compex WPJ428
[openwrt/openwrt.git] / target / linux / ipq40xx / files-4.14 / arch / arm / boot / dts / qcom-ipq4028-wpj428.dts
1 /* Copyright (c) 2015, The Linux Foundation. All rights reserved.
2 * Copyright (c) 2017, Christian Mehlis <christian@m3hlis.de>
3 * Copyright (c) 2017-2018, Sven Eckelmann <sven.eckelmann@openmesh.com>
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 *
17 */
18
19 #include "qcom-ipq4019.dtsi"
20 #include "qcom-ipq4019-bus.dtsi"
21 #include <dt-bindings/gpio/gpio.h>
22 #include <dt-bindings/input/input.h>
23 #include <dt-bindings/soc/qcom,tcsr.h>
24
25 / {
26 model = "Compex WPJ428";
27 compatible = "compex,wpj428", "qcom,ipq4019";
28
29 soc {
30 mdio@90000 {
31 status = "okay";
32 };
33
34 ess-psgmii@98000 {
35 status = "okay";
36 };
37
38 tcsr@194b000 {
39 /* select hostmode */
40 compatible = "qcom,tcsr";
41 reg = <0x194b000 0x100>;
42 qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
43 status = "okay";
44 };
45
46 tcsr@1949000 {
47 compatible = "qcom,tcsr";
48 reg = <0x1949000 0x100>;
49 qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
50 };
51
52 ess_tcsr@1953000 {
53 compatible = "qcom,tcsr";
54 reg = <0x1953000 0x1000>;
55 qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
56 };
57
58 tcsr@1957000 {
59 compatible = "qcom,tcsr";
60 reg = <0x1957000 0x100>;
61 qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
62 };
63
64 usb2: usb2@60f8800 {
65 status = "okay";
66 };
67
68 serial@78af000 {
69 pinctrl-0 = <&serial_pins>;
70 pinctrl-names = "default";
71 status = "okay";
72 };
73
74 usb3: usb3@8af8800 {
75 status = "okay";
76 };
77
78 crypto@8e3a000 {
79 status = "okay";
80 };
81
82 watchdog@b017000 {
83 status = "okay";
84 };
85
86 ess-switch@c000000 {
87 switch_lan_bmp = <0x10>;
88 switch_wan_bmp = <0x20>;
89
90 status = "okay";
91 };
92
93 edma@c080000 {
94 status = "okay";
95 };
96 };
97
98 gpio-keys {
99 compatible = "gpio-keys";
100
101 reset {
102 label = "reset";
103 gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
104 linux,code = <KEY_RESTART>;
105 };
106 };
107
108 aliases {
109 led-boot = &status;
110 led-failsafe = &status;
111 led-upgrade = &status;
112 };
113
114 gpio-leds {
115 compatible = "gpio-leds";
116
117 status: rss4 {
118 label = "wpj428:green:rss4";
119 gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
120 default-state = "off";
121 };
122
123 rss3 {
124 label = "wpj428:green:rss3";
125 gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>;
126 default-state = "off";
127 };
128 };
129
130 beeper: beeper {
131 compatible = "gpio-beeper";
132 gpios = <&tlmm 58 GPIO_ACTIVE_HIGH>;
133 };
134 };
135
136 &tlmm {
137 serial_pins: serial_pinmux {
138 mux {
139 pins = "gpio60", "gpio61";
140 function = "blsp_uart0";
141 bias-disable;
142 };
143 };
144
145 spi_0_pins: spi_0_pinmux {
146 pin {
147 function = "blsp_spi0";
148 pins = "gpio55", "gpio56", "gpio57";
149 drive-strength = <12>;
150 bias-disable;
151 };
152 pin_cs {
153 function = "gpio";
154 pins = "gpio54";
155 drive-strength = <2>;
156 bias-disable;
157 output-high;
158 };
159 };
160 };
161
162 &blsp_dma {
163 status = "okay";
164 };
165
166 &spi_0 {
167 pinctrl-0 = <&spi_0_pins>;
168 pinctrl-names = "default";
169 status = "okay";
170 cs-gpios = <&tlmm 54 0>;
171
172 m25p80@0 {
173 #address-cells = <1>;
174 #size-cells = <1>;
175 compatible = "jedec,spi-nor";
176 reg = <0>;
177 spi-max-frequency = <24000000>;
178
179 partitions {
180 compatible = "fixed-partitions";
181 #address-cells = <1>;
182 #size-cells = <1>;
183
184 partition0@0 {
185 label = "0:SBL1";
186 reg = <0x00000000 0x00040000>;
187 read-only;
188 };
189 partition1@40000 {
190 label = "0:MIBIB";
191 reg = <0x00040000 0x00020000>;
192 read-only;
193 };
194 partition2@60000 {
195 label = "0:QSEE";
196 reg = <0x00060000 0x00060000>;
197 read-only;
198 };
199 partition3@c0000 {
200 label = "0:CDT";
201 reg = <0x000c0000 0x00010000>;
202 read-only;
203 };
204 partition4@d0000 {
205 label = "0:DDRPARAMS";
206 reg = <0x000d0000 0x00010000>;
207 read-only;
208 };
209 partition5@e0000 {
210 label = "0:APPSBLENV"; /* uboot env*/
211 reg = <0x000e0000 0x00010000>;
212 read-only;
213 };
214 partition5@f0000 {
215 label = "0:APPSBL"; /* uboot */
216 reg = <0x000f0000 0x00080000>;
217 read-only;
218 };
219 partition5@170000 {
220 label = "0:ART";
221 reg = <0x00170000 0x00010000>;
222 read-only;
223 };
224 partition6@180000 {
225 label = "firmware";
226 reg = <0x00180000 0x01e80000>;
227 };
228 };
229 };
230 };
231
232 &cryptobam {
233 status = "okay";
234 };
235
236 &gmac0 {
237 qcom,phy_mdio_addr = <4>;
238 qcom,poll_required = <1>;
239 qcom,forced_speed = <1000>;
240 qcom,forced_duplex = <1>;
241 vlan_tag = <2 0x20>;
242 };
243
244 &gmac1 {
245 qcom,phy_mdio_addr = <3>;
246 qcom,poll_required = <1>;
247 qcom,forced_speed = <1000>;
248 qcom,forced_duplex = <1>;
249 vlan_tag = <1 0x10>;
250 };
251
252 &usb3_ss_phy {
253 status = "okay";
254 };
255
256 &usb3_hs_phy {
257 status = "okay";
258 };
259
260 &usb2_hs_phy {
261 status = "okay";
262 };
263
264 &wifi0 {
265 status = "okay";
266 };
267
268 &wifi1 {
269 status = "okay";
270 };