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
7/ {
8	model = "ALFA Network AP120C-AC";
9	compatible = "alfa-network,ap120c-ac", "qcom,ipq4018";
10
11	aliases {
12		serial0 = &blsp1_uart1;
13	};
14
15	chosen {
16		stdout-path = "serial0:115200n8";
17	};
18
19	keys {
20		compatible = "gpio-keys";
21
22		key-reset {
23			label = "reset";
24			gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
25			linux,code = <KEY_RESTART>;
26		};
27	};
28};
29
30&tlmm {
31	i2c0_pins: i2c0_pinmux {
32		mux_i2c {
33			function = "blsp_i2c0";
34			pins = "gpio58", "gpio59";
35			drive-strength = <16>;
36			bias-disable;
37		};
38	};
39
40	mdio_pins: mdio_pinmux {
41		mux_mdio {
42			pins = "gpio53";
43			function = "mdio";
44			bias-pull-up;
45		};
46
47		mux_mdc {
48			pins = "gpio52";
49			function = "mdc";
50			bias-pull-up;
51		};
52	};
53
54	serial0_pins: serial0_pinmux {
55		mux_uart {
56			pins = "gpio60", "gpio61";
57			function = "blsp_uart0";
58			bias-disable;
59		};
60	};
61
62	spi0_pins: spi0_pinmux {
63		mux_spi {
64			function = "blsp_spi0";
65			pins = "gpio55", "gpio56", "gpio57";
66			drive-strength = <12>;
67			bias-disable;
68		};
69
70		mux_cs {
71			function = "gpio";
72			pins = "gpio54", "gpio4";
73			drive-strength = <2>;
74			bias-disable;
75			output-high;
76		};
77	};
78
79	usb-power-hog {
80		line-name = "USB-power";
81		gpios = <1 GPIO_ACTIVE_HIGH>;
82		gpio-hog;
83		output-high;
84	};
85};
86
87&watchdog {
88	status = "okay";
89};
90
91&prng {
92	status = "okay";
93};
94
95&blsp_dma {
96	status = "okay";
97};
98
99&blsp1_i2c3 {
100	status = "okay";
101
102	pinctrl-0 = <&i2c0_pins>;
103	pinctrl-names = "default";
104
105	tpm@29 {
106		compatible = "atmel,at97sc3204t";
107		reg = <0x29>;
108	};
109};
110
111&blsp1_spi1 {
112	status = "okay";
113
114	pinctrl-0 = <&spi0_pins>;
115	pinctrl-names = "default";
116	cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 4 GPIO_ACTIVE_HIGH>;
117
118	flash@0 {
119		compatible = "jedec,spi-nor";
120		reg = <0>;
121		spi-max-frequency = <24000000>;
122
123		partitions {
124			compatible = "fixed-partitions";
125			#address-cells = <1>;
126			#size-cells = <1>;
127
128			partition@0 {
129				label = "SBL1";
130				reg = <0x00000000 0x00040000>;
131				read-only;
132			};
133
134			partition@40000 {
135				label = "MIBIB";
136				reg = <0x00040000 0x00020000>;
137				read-only;
138			};
139
140			partition@60000 {
141				label = "QSEE";
142				reg = <0x00060000 0x00060000>;
143				read-only;
144			};
145
146			partition@c0000 {
147				label = "CDT";
148				reg = <0x000c0000 0x00010000>;
149				read-only;
150			};
151
152			partition@d0000 {
153				label = "DDRPARAMS";
154				reg = <0x000d0000 0x00010000>;
155				read-only;
156			};
157
158			partition@e0000 {
159				label = "u-boot-env";
160				reg = <0x000e0000 0x00010000>;
161			};
162
163			partition@f0000 {
164				label = "u-boot";
165				reg = <0x000f0000 0x00080000>;
166				read-only;
167			};
168
169			partition@170000 {
170				label = "ART";
171				reg = <0x00170000 0x00010000>;
172				read-only;
173				compatible = "nvmem-cells";
174				#address-cells = <1>;
175				#size-cells = <1>;
176
177				precal_art_1000: precal@1000 {
178					reg = <0x1000 0x2f20>;
179				};
180
181				precal_art_5000: precal@5000 {
182					reg = <0x5000 0x2f20>;
183				};
184			};
185
186			partition@180000 {
187				label = "priv_data1";
188				reg = <0x00180000 0x00010000>;
189				read-only;
190			};
191
192			partition@190000 {
193				label = "priv_data2";
194				reg = <0x00190000 0x00010000>;
195				read-only;
196			};
197		};
198	};
199
200	flash@1 {
201		compatible = "spi-nand";
202		reg = <1>;
203		spi-max-frequency = <40000000>;
204
205		partitions {
206			compatible = "fixed-partitions";
207			#address-cells = <1>;
208			#size-cells = <1>;
209
210			partition@0 {
211				label = "ubi1";
212				reg = <0x00000000 0x04000000>;
213			};
214
215			partition@4000000 {
216				label = "ubi2";
217				reg = <0x04000000 0x04000000>;
218			};
219		};
220	};
221};
222
223&blsp1_uart1 {
224	status = "okay";
225
226	pinctrl-0 = <&serial0_pins>;
227	pinctrl-names = "default";
228};
229
230&cryptobam {
231	status = "okay";
232};
233
234&crypto {
235	status = "okay";
236};
237
238&mdio {
239	status = "okay";
240
241	pinctrl-0 = <&mdio_pins>;
242	pinctrl-names = "default";
243};
244
245&wifi0 {
246	status = "okay";
247	nvmem-cell-names = "pre-calibration";
248	nvmem-cells = <&precal_art_1000>;
249};
250
251&wifi1 {
252	status = "okay";
253	nvmem-cell-names = "pre-calibration";
254	nvmem-cells = <&precal_art_5000>;
255	qcom,ath10k-calibration-variant = "ALFA-Network-AP120C-AC";
256};
257
258&usb3_hs_phy {
259	status = "okay";
260};
261
262&usb3 {
263	status = "okay";
264
265	dwc3@8a00000 {
266		phys = <&usb3_hs_phy>;
267		phy-names = "usb2-phy";
268	};
269};
270
271&usb2_hs_phy {
272	status = "okay";
273};
274
275&usb2 {
276	status = "okay";
277};
278