1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2022 Vyacheslav Bocharov <adeep@lexina.in>
4 * Copyright (c) 2022 JetHome
5 * Author: Vyacheslav Bocharov <adeep@lexina.in>
6 * Author: Aleksandr Kazantsev <ak@tvip.ru>
7 * Author: Alexey Shevelkin <ash@tvip.ru>
8 */
9
10/dts-v1/;
11
12#include "meson-axg.dtsi"
13#include <dt-bindings/input/input.h>
14#include <dt-bindings/thermal/thermal.h>
15
16/ {
17	aliases {
18		serial0 = &uart_AO;   /* Console */
19		serial2 = &uart_AO_B; /* External UART (Wireless Module) */
20		ethernet0 = &ethmac;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	reserved-memory {
28		linux,cma {
29			size = <0x0 0x400000>;
30		};
31	};
32
33	emmc_pwrseq: emmc-pwrseq {
34		compatible = "mmc-pwrseq-emmc";
35		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
36	};
37
38	vcc_3v3: regulator-vcc_3v3 {
39		compatible = "regulator-fixed";
40		regulator-name = "VCC_3V3";
41		regulator-min-microvolt = <3300000>;
42		regulator-max-microvolt = <3300000>;
43		vin-supply = <&vddao_3v3>;
44		regulator-always-on;
45	};
46
47	vcc_5v: regulator-vcc_5v {
48		compatible = "regulator-fixed";
49		regulator-name = "VCC5V";
50		regulator-min-microvolt = <5000000>;
51		regulator-max-microvolt = <5000000>;
52		regulator-always-on;
53	};
54
55	vddao_3v3: regulator-vddao_3v3 {
56		compatible = "regulator-fixed";
57		regulator-name = "VDDAO_3V3";
58		regulator-min-microvolt = <3300000>;
59		regulator-max-microvolt = <3300000>;
60		vin-supply = <&vcc_5v>;
61		regulator-always-on;
62	};
63
64	vddio_ao18: regulator-vddio_ao18 {
65		compatible = "regulator-fixed";
66		regulator-name = "VDDIO_AO18";
67		regulator-min-microvolt = <1800000>;
68		regulator-max-microvolt = <1800000>;
69		vin-supply = <&vddao_3v3>;
70		regulator-always-on;
71	};
72
73	vddio_boot: regulator-vddio_boot {
74		compatible = "regulator-fixed";
75		regulator-name = "VDDIO_BOOT";
76		regulator-min-microvolt = <3300000>;
77		regulator-max-microvolt = <3300000>;
78		vin-supply = <&vddao_3v3>;
79		regulator-always-on;
80	};
81
82	vccq_1v8: regulator-vccq_1v8 {
83		compatible = "regulator-fixed";
84		regulator-name = "VCCQ_1V8";
85		regulator-min-microvolt = <1800000>;
86		regulator-max-microvolt = <1800000>;
87		vin-supply = <&vddao_3v3>;
88		regulator-always-on;
89	};
90
91	usb_pwr: regulator-usb_pwr {
92		compatible = "regulator-fixed";
93		regulator-name = "USB_PWR";
94		regulator-min-microvolt = <5000000>;
95		regulator-max-microvolt = <5000000>;
96		vin-supply = <&vcc_5v>;
97		regulator-always-on;
98	};
99
100	sdio_pwrseq: sdio-pwrseq {
101		compatible = "mmc-pwrseq-simple";
102		reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
103		clocks = <&wifi32k>;
104		clock-names = "ext_clock";
105	};
106
107	wifi32k: wifi32k {
108		compatible = "pwm-clock";
109		#clock-cells = <0>;
110		clock-frequency = <32768>;
111		pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
112	};
113
114	thermal-zones {
115		cpu_thermal: cpu-thermal {
116			polling-delay-passive = <250>;
117			polling-delay = <1000>;
118			thermal-sensors = <&scpi_sensors 0>;
119			trips {
120				cpu_passive: cpu-passive {
121					temperature = <70000>; /* millicelsius */
122					hysteresis = <2000>; /* millicelsius */
123					type = "passive";
124				};
125
126				cpu_hot: cpu-hot {
127					temperature = <80000>; /* millicelsius */
128					hysteresis = <2000>; /* millicelsius */
129					type = "hot";
130				};
131
132				cpu_critical: cpu-critical {
133					temperature = <100000>; /* millicelsius */
134					hysteresis = <2000>; /* millicelsius */
135					type = "critical";
136				};
137			};
138
139			cpu_cooling_maps: cooling-maps {
140				map0 {
141					trip = <&cpu_passive>;
142					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
143							<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
144							<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
145							<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
146				};
147
148				map1 {
149					trip = <&cpu_hot>;
150					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
151							<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
152							<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
153							<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
154				};
155			};
156		};
157	};
158
159	onewire {
160		compatible = "w1-gpio";
161		gpios = <&gpio GPIOA_14 GPIO_ACTIVE_HIGH>;
162	};
163};
164
165&efuse {
166	sn: sn@32 {
167		reg = <0x32 0x20>;
168	};
169
170	eth_mac: eth-mac@0 {
171		reg = <0x0 0x6>;
172	};
173
174	bt_mac: bt-mac@6 {
175		reg = <0x6 0x6>;
176	};
177
178	wifi_mac: wifi-mac@c {
179		reg = <0xc 0x6>;
180	};
181
182	bid: bid@12 {
183		reg = <0x12 0x20>;
184	};
185};
186
187&ethmac {
188	status = "okay";
189	pinctrl-0 = <&eth_rmii_x_pins>;
190	pinctrl-names = "default";
191	phy-handle = <&eth_phy0>;
192	phy-mode = "rmii";
193
194	mdio {
195		compatible = "snps,dwmac-mdio";
196		#address-cells = <1>;
197		#size-cells = <0>;
198
199		/* ICPlus IP101A/G Ethernet PHY (vendor_id=0x0243, model_id=0x0c54) */
200		eth_phy0: ethernet-phy@0 {
201			/* compatible = "ethernet-phy-id0243.0c54";*/
202			max-speed = <100>;
203			reg = <0>;
204
205			reset-assert-us = <10000>;
206			reset-deassert-us = <10000>;
207			reset-gpios = <&gpio GPIOZ_5 GPIO_ACTIVE_LOW>;
208		};
209	};
210};
211
212/* Internal I2C bus (on CPU module) */
213&i2c1 {
214	status = "okay";
215	pinctrl-0 = <&i2c1_z_pins>;
216	pinctrl-names = "default";
217
218	/* RTC */
219	pcf8563: rtc@51 {
220		compatible = "nxp,pcf8563";
221		reg = <0x51>;
222		status = "okay";
223	};
224};
225
226/* Peripheral I2C bus (on motherboard) */
227&i2c_AO {
228	status = "okay";
229	pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
230	pinctrl-names = "default";
231};
232
233&pwm_ab {
234	status = "okay";
235	pinctrl-0 = <&pwm_a_x20_pins>;
236	pinctrl-names = "default";
237};
238
239/* wifi module */
240&sd_emmc_b {
241	status = "okay";
242	#address-cells = <1>;
243	#size-cells = <0>;
244
245	pinctrl-0 = <&sdio_pins>;
246	pinctrl-1 = <&sdio_clk_gate_pins>;
247	pinctrl-names = "default", "clk-gate";
248
249	bus-width = <4>;
250	cap-sd-highspeed;
251	max-frequency = <50000000>;
252	disable-wp;
253
254	mmc-pwrseq = <&sdio_pwrseq>;
255
256	vmmc-supply = <&vddao_3v3>;
257	vqmmc-supply = <&vddio_boot>;
258};
259
260/* emmc storage */
261&sd_emmc_c {
262	status = "okay";
263	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
264	pinctrl-1 = <&emmc_clk_gate_pins>;
265	pinctrl-names = "default", "clk-gate";
266
267	bus-width = <8>;
268	cap-mmc-highspeed;
269	max-frequency = <200000000>;
270	non-removable;
271	disable-wp;
272	mmc-ddr-1_8v;
273	mmc-hs200-1_8v;
274
275	mmc-pwrseq = <&emmc_pwrseq>;
276
277	vmmc-supply = <&vcc_3v3>;
278	vqmmc-supply = <&vccq_1v8>;
279};
280
281/* UART Bluetooth */
282&uart_B {
283	status = "okay";
284	pinctrl-0 = <&uart_b_z_pins>, <&uart_b_z_cts_rts_pins>;
285	pinctrl-names = "default";
286	uart-has-rtscts;
287};
288
289/* UART Console */
290&uart_AO {
291	status = "okay";
292	pinctrl-0 = <&uart_ao_a_pins>;
293	pinctrl-names = "default";
294};
295
296/* UART Wireless module */
297&uart_AO_B {
298	status = "okay";
299	pinctrl-0 = <&uart_ao_b_pins>;
300	pinctrl-names = "default";
301};
302
303&usb {
304	status = "okay";
305	vbus-supply = <&usb_pwr>;
306};
307
308&spicc1 {
309	status = "okay";
310	pinctrl-0 = <&spi1_x_pins>, <&spi1_ss0_x_pins>;
311	pinctrl-names = "default";
312};
313
314&gpio {
315	gpio-line-names =
316		"", "", "", "", "", // 0 - 4
317		"", "", "", "", "", // 5 - 9
318		"UserButton", "", "", "", "", // 10 - 14
319		"", "", "", "", "", // 15 - 19
320		"", "", "", "", "", // 20 - 24
321		"", "LedRed", "LedGreen", "Output3", "Output2", // 25 - 29
322		"Output1", "", "", "", "", // 30 - 34
323		"", "ZigBeeBOOT", "", "", "", // 35 - 39
324		"1Wire", "ZigBeeRESET", "", "Input4", "Input3", // 40 - 44
325		"Input2", "Input1", "", "", "", // 45 - 49
326		"", "", "", "", "", // 50 - 54
327		"", "", "", "", "", // 55 - 59
328		"", "", "", "", "", // 60 - 64
329		"", "", "", "", "", // 65 - 69
330		"", "", "", "", "", // 70 - 74
331		"", "", "", "", "", // 75 - 79
332		"", "", "", "", "", // 80 - 84
333		"", ""; // 85-86
334};
335
336&cpu0 {
337	#cooling-cells = <2>;
338};
339
340&cpu1 {
341	#cooling-cells = <2>;
342};
343
344&cpu2 {
345	#cooling-cells = <2>;
346};
347
348&cpu3 {
349	#cooling-cells = <2>;
350};
351