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