162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2022 Vyacheslav Bocharov <adeep@lexina.in>
462306a36Sopenharmony_ci * Copyright (c) 2022 JetHome
562306a36Sopenharmony_ci * Author: Vyacheslav Bocharov <adeep@lexina.in>
662306a36Sopenharmony_ci * Author: Aleksandr Kazantsev <ak@tvip.ru>
762306a36Sopenharmony_ci * Author: Alexey Shevelkin <ash@tvip.ru>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/dts-v1/;
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include "meson-axg.dtsi"
1362306a36Sopenharmony_ci#include <dt-bindings/input/input.h>
1462306a36Sopenharmony_ci#include <dt-bindings/thermal/thermal.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci/ {
1762306a36Sopenharmony_ci	aliases {
1862306a36Sopenharmony_ci		serial0 = &uart_AO;   /* Console */
1962306a36Sopenharmony_ci		serial2 = &uart_AO_B; /* External UART (Wireless Module) */
2062306a36Sopenharmony_ci		ethernet0 = &ethmac;
2162306a36Sopenharmony_ci	};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	chosen {
2462306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
2562306a36Sopenharmony_ci	};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	reserved-memory {
2862306a36Sopenharmony_ci		linux,cma {
2962306a36Sopenharmony_ci			size = <0x0 0x400000>;
3062306a36Sopenharmony_ci		};
3162306a36Sopenharmony_ci	};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	emmc_pwrseq: emmc-pwrseq {
3462306a36Sopenharmony_ci		compatible = "mmc-pwrseq-emmc";
3562306a36Sopenharmony_ci		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
3662306a36Sopenharmony_ci	};
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	vcc_3v3: regulator-vcc_3v3 {
3962306a36Sopenharmony_ci		compatible = "regulator-fixed";
4062306a36Sopenharmony_ci		regulator-name = "VCC_3V3";
4162306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
4262306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
4362306a36Sopenharmony_ci		vin-supply = <&vddao_3v3>;
4462306a36Sopenharmony_ci		regulator-always-on;
4562306a36Sopenharmony_ci	};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	vcc_5v: regulator-vcc_5v {
4862306a36Sopenharmony_ci		compatible = "regulator-fixed";
4962306a36Sopenharmony_ci		regulator-name = "VCC5V";
5062306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
5162306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
5262306a36Sopenharmony_ci		regulator-always-on;
5362306a36Sopenharmony_ci	};
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci	vddao_3v3: regulator-vddao_3v3 {
5662306a36Sopenharmony_ci		compatible = "regulator-fixed";
5762306a36Sopenharmony_ci		regulator-name = "VDDAO_3V3";
5862306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
5962306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
6062306a36Sopenharmony_ci		vin-supply = <&vcc_5v>;
6162306a36Sopenharmony_ci		regulator-always-on;
6262306a36Sopenharmony_ci	};
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	vddio_ao18: regulator-vddio_ao18 {
6562306a36Sopenharmony_ci		compatible = "regulator-fixed";
6662306a36Sopenharmony_ci		regulator-name = "VDDIO_AO18";
6762306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
6862306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
6962306a36Sopenharmony_ci		vin-supply = <&vddao_3v3>;
7062306a36Sopenharmony_ci		regulator-always-on;
7162306a36Sopenharmony_ci	};
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	vddio_boot: regulator-vddio_boot {
7462306a36Sopenharmony_ci		compatible = "regulator-fixed";
7562306a36Sopenharmony_ci		regulator-name = "VDDIO_BOOT";
7662306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
7762306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
7862306a36Sopenharmony_ci		vin-supply = <&vddao_3v3>;
7962306a36Sopenharmony_ci		regulator-always-on;
8062306a36Sopenharmony_ci	};
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci	vccq_1v8: regulator-vccq_1v8 {
8362306a36Sopenharmony_ci		compatible = "regulator-fixed";
8462306a36Sopenharmony_ci		regulator-name = "VCCQ_1V8";
8562306a36Sopenharmony_ci		regulator-min-microvolt = <1800000>;
8662306a36Sopenharmony_ci		regulator-max-microvolt = <1800000>;
8762306a36Sopenharmony_ci		vin-supply = <&vddao_3v3>;
8862306a36Sopenharmony_ci		regulator-always-on;
8962306a36Sopenharmony_ci	};
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci	usb_pwr: regulator-usb_pwr {
9262306a36Sopenharmony_ci		compatible = "regulator-fixed";
9362306a36Sopenharmony_ci		regulator-name = "USB_PWR";
9462306a36Sopenharmony_ci		regulator-min-microvolt = <5000000>;
9562306a36Sopenharmony_ci		regulator-max-microvolt = <5000000>;
9662306a36Sopenharmony_ci		vin-supply = <&vcc_5v>;
9762306a36Sopenharmony_ci		regulator-always-on;
9862306a36Sopenharmony_ci	};
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci	sdio_pwrseq: sdio-pwrseq {
10162306a36Sopenharmony_ci		compatible = "mmc-pwrseq-simple";
10262306a36Sopenharmony_ci		reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
10362306a36Sopenharmony_ci		clocks = <&wifi32k>;
10462306a36Sopenharmony_ci		clock-names = "ext_clock";
10562306a36Sopenharmony_ci	};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci	wifi32k: wifi32k {
10862306a36Sopenharmony_ci		compatible = "pwm-clock";
10962306a36Sopenharmony_ci		#clock-cells = <0>;
11062306a36Sopenharmony_ci		clock-frequency = <32768>;
11162306a36Sopenharmony_ci		pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
11262306a36Sopenharmony_ci	};
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci	thermal-zones {
11562306a36Sopenharmony_ci		cpu_thermal: cpu-thermal {
11662306a36Sopenharmony_ci			polling-delay-passive = <250>;
11762306a36Sopenharmony_ci			polling-delay = <1000>;
11862306a36Sopenharmony_ci			thermal-sensors = <&scpi_sensors 0>;
11962306a36Sopenharmony_ci			trips {
12062306a36Sopenharmony_ci				cpu_passive: cpu-passive {
12162306a36Sopenharmony_ci					temperature = <70000>; /* millicelsius */
12262306a36Sopenharmony_ci					hysteresis = <2000>; /* millicelsius */
12362306a36Sopenharmony_ci					type = "passive";
12462306a36Sopenharmony_ci				};
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci				cpu_hot: cpu-hot {
12762306a36Sopenharmony_ci					temperature = <80000>; /* millicelsius */
12862306a36Sopenharmony_ci					hysteresis = <2000>; /* millicelsius */
12962306a36Sopenharmony_ci					type = "hot";
13062306a36Sopenharmony_ci				};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci				cpu_critical: cpu-critical {
13362306a36Sopenharmony_ci					temperature = <100000>; /* millicelsius */
13462306a36Sopenharmony_ci					hysteresis = <2000>; /* millicelsius */
13562306a36Sopenharmony_ci					type = "critical";
13662306a36Sopenharmony_ci				};
13762306a36Sopenharmony_ci			};
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci			cpu_cooling_maps: cooling-maps {
14062306a36Sopenharmony_ci				map0 {
14162306a36Sopenharmony_ci					trip = <&cpu_passive>;
14262306a36Sopenharmony_ci					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
14362306a36Sopenharmony_ci							<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
14462306a36Sopenharmony_ci							<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
14562306a36Sopenharmony_ci							<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
14662306a36Sopenharmony_ci				};
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci				map1 {
14962306a36Sopenharmony_ci					trip = <&cpu_hot>;
15062306a36Sopenharmony_ci					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
15162306a36Sopenharmony_ci							<&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
15262306a36Sopenharmony_ci							<&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
15362306a36Sopenharmony_ci							<&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
15462306a36Sopenharmony_ci				};
15562306a36Sopenharmony_ci			};
15662306a36Sopenharmony_ci		};
15762306a36Sopenharmony_ci	};
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci	onewire {
16062306a36Sopenharmony_ci		compatible = "w1-gpio";
16162306a36Sopenharmony_ci		gpios = <&gpio GPIOA_14 GPIO_ACTIVE_HIGH>;
16262306a36Sopenharmony_ci	};
16362306a36Sopenharmony_ci};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci&efuse {
16662306a36Sopenharmony_ci	sn: sn@32 {
16762306a36Sopenharmony_ci		reg = <0x32 0x20>;
16862306a36Sopenharmony_ci	};
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci	eth_mac: eth-mac@0 {
17162306a36Sopenharmony_ci		reg = <0x0 0x6>;
17262306a36Sopenharmony_ci	};
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci	bt_mac: bt-mac@6 {
17562306a36Sopenharmony_ci		reg = <0x6 0x6>;
17662306a36Sopenharmony_ci	};
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci	wifi_mac: wifi-mac@c {
17962306a36Sopenharmony_ci		reg = <0xc 0x6>;
18062306a36Sopenharmony_ci	};
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci	bid: bid@12 {
18362306a36Sopenharmony_ci		reg = <0x12 0x20>;
18462306a36Sopenharmony_ci	};
18562306a36Sopenharmony_ci};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci&ethmac {
18862306a36Sopenharmony_ci	status = "okay";
18962306a36Sopenharmony_ci	pinctrl-0 = <&eth_rmii_x_pins>;
19062306a36Sopenharmony_ci	pinctrl-names = "default";
19162306a36Sopenharmony_ci	phy-handle = <&eth_phy0>;
19262306a36Sopenharmony_ci	phy-mode = "rmii";
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci	mdio {
19562306a36Sopenharmony_ci		compatible = "snps,dwmac-mdio";
19662306a36Sopenharmony_ci		#address-cells = <1>;
19762306a36Sopenharmony_ci		#size-cells = <0>;
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci		/* ICPlus IP101A/G Ethernet PHY (vendor_id=0x0243, model_id=0x0c54) */
20062306a36Sopenharmony_ci		eth_phy0: ethernet-phy@0 {
20162306a36Sopenharmony_ci			/* compatible = "ethernet-phy-id0243.0c54";*/
20262306a36Sopenharmony_ci			max-speed = <100>;
20362306a36Sopenharmony_ci			reg = <0>;
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci			reset-assert-us = <10000>;
20662306a36Sopenharmony_ci			reset-deassert-us = <10000>;
20762306a36Sopenharmony_ci			reset-gpios = <&gpio GPIOZ_5 GPIO_ACTIVE_LOW>;
20862306a36Sopenharmony_ci		};
20962306a36Sopenharmony_ci	};
21062306a36Sopenharmony_ci};
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci/* Internal I2C bus (on CPU module) */
21362306a36Sopenharmony_ci&i2c1 {
21462306a36Sopenharmony_ci	status = "okay";
21562306a36Sopenharmony_ci	pinctrl-0 = <&i2c1_z_pins>;
21662306a36Sopenharmony_ci	pinctrl-names = "default";
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci	/* RTC */
21962306a36Sopenharmony_ci	pcf8563: rtc@51 {
22062306a36Sopenharmony_ci		compatible = "nxp,pcf8563";
22162306a36Sopenharmony_ci		reg = <0x51>;
22262306a36Sopenharmony_ci		status = "okay";
22362306a36Sopenharmony_ci	};
22462306a36Sopenharmony_ci};
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ci/* Peripheral I2C bus (on motherboard) */
22762306a36Sopenharmony_ci&i2c_AO {
22862306a36Sopenharmony_ci	status = "okay";
22962306a36Sopenharmony_ci	pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
23062306a36Sopenharmony_ci	pinctrl-names = "default";
23162306a36Sopenharmony_ci};
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci&pwm_ab {
23462306a36Sopenharmony_ci	status = "okay";
23562306a36Sopenharmony_ci	pinctrl-0 = <&pwm_a_x20_pins>;
23662306a36Sopenharmony_ci	pinctrl-names = "default";
23762306a36Sopenharmony_ci};
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci/* wifi module */
24062306a36Sopenharmony_ci&sd_emmc_b {
24162306a36Sopenharmony_ci	status = "okay";
24262306a36Sopenharmony_ci	#address-cells = <1>;
24362306a36Sopenharmony_ci	#size-cells = <0>;
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_ci	pinctrl-0 = <&sdio_pins>;
24662306a36Sopenharmony_ci	pinctrl-1 = <&sdio_clk_gate_pins>;
24762306a36Sopenharmony_ci	pinctrl-names = "default", "clk-gate";
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci	bus-width = <4>;
25062306a36Sopenharmony_ci	cap-sd-highspeed;
25162306a36Sopenharmony_ci	max-frequency = <50000000>;
25262306a36Sopenharmony_ci	disable-wp;
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci	mmc-pwrseq = <&sdio_pwrseq>;
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ci	vmmc-supply = <&vddao_3v3>;
25762306a36Sopenharmony_ci	vqmmc-supply = <&vddio_boot>;
25862306a36Sopenharmony_ci};
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ci/* emmc storage */
26162306a36Sopenharmony_ci&sd_emmc_c {
26262306a36Sopenharmony_ci	status = "okay";
26362306a36Sopenharmony_ci	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
26462306a36Sopenharmony_ci	pinctrl-1 = <&emmc_clk_gate_pins>;
26562306a36Sopenharmony_ci	pinctrl-names = "default", "clk-gate";
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ci	bus-width = <8>;
26862306a36Sopenharmony_ci	cap-mmc-highspeed;
26962306a36Sopenharmony_ci	max-frequency = <200000000>;
27062306a36Sopenharmony_ci	non-removable;
27162306a36Sopenharmony_ci	disable-wp;
27262306a36Sopenharmony_ci	mmc-ddr-1_8v;
27362306a36Sopenharmony_ci	mmc-hs200-1_8v;
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci	mmc-pwrseq = <&emmc_pwrseq>;
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci	vmmc-supply = <&vcc_3v3>;
27862306a36Sopenharmony_ci	vqmmc-supply = <&vccq_1v8>;
27962306a36Sopenharmony_ci};
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ci/* UART Bluetooth */
28262306a36Sopenharmony_ci&uart_B {
28362306a36Sopenharmony_ci	status = "okay";
28462306a36Sopenharmony_ci	pinctrl-0 = <&uart_b_z_pins>, <&uart_b_z_cts_rts_pins>;
28562306a36Sopenharmony_ci	pinctrl-names = "default";
28662306a36Sopenharmony_ci	uart-has-rtscts;
28762306a36Sopenharmony_ci};
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ci/* UART Console */
29062306a36Sopenharmony_ci&uart_AO {
29162306a36Sopenharmony_ci	status = "okay";
29262306a36Sopenharmony_ci	pinctrl-0 = <&uart_ao_a_pins>;
29362306a36Sopenharmony_ci	pinctrl-names = "default";
29462306a36Sopenharmony_ci};
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_ci/* UART Wireless module */
29762306a36Sopenharmony_ci&uart_AO_B {
29862306a36Sopenharmony_ci	status = "okay";
29962306a36Sopenharmony_ci	pinctrl-0 = <&uart_ao_b_pins>;
30062306a36Sopenharmony_ci	pinctrl-names = "default";
30162306a36Sopenharmony_ci};
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci&usb {
30462306a36Sopenharmony_ci	status = "okay";
30562306a36Sopenharmony_ci	vbus-supply = <&usb_pwr>;
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci&spicc1 {
30962306a36Sopenharmony_ci	status = "okay";
31062306a36Sopenharmony_ci	pinctrl-0 = <&spi1_x_pins>, <&spi1_ss0_x_pins>;
31162306a36Sopenharmony_ci	pinctrl-names = "default";
31262306a36Sopenharmony_ci};
31362306a36Sopenharmony_ci
31462306a36Sopenharmony_ci&gpio {
31562306a36Sopenharmony_ci	gpio-line-names =
31662306a36Sopenharmony_ci		"", "", "", "", "", // 0 - 4
31762306a36Sopenharmony_ci		"", "", "", "", "", // 5 - 9
31862306a36Sopenharmony_ci		"UserButton", "", "", "", "", // 10 - 14
31962306a36Sopenharmony_ci		"", "", "", "", "", // 15 - 19
32062306a36Sopenharmony_ci		"", "", "", "", "", // 20 - 24
32162306a36Sopenharmony_ci		"", "LedRed", "LedGreen", "Output3", "Output2", // 25 - 29
32262306a36Sopenharmony_ci		"Output1", "", "", "", "", // 30 - 34
32362306a36Sopenharmony_ci		"", "ZigBeeBOOT", "", "", "", // 35 - 39
32462306a36Sopenharmony_ci		"1Wire", "ZigBeeRESET", "", "Input4", "Input3", // 40 - 44
32562306a36Sopenharmony_ci		"Input2", "Input1", "", "", "", // 45 - 49
32662306a36Sopenharmony_ci		"", "", "", "", "", // 50 - 54
32762306a36Sopenharmony_ci		"", "", "", "", "", // 55 - 59
32862306a36Sopenharmony_ci		"", "", "", "", "", // 60 - 64
32962306a36Sopenharmony_ci		"", "", "", "", "", // 65 - 69
33062306a36Sopenharmony_ci		"", "", "", "", "", // 70 - 74
33162306a36Sopenharmony_ci		"", "", "", "", "", // 75 - 79
33262306a36Sopenharmony_ci		"", "", "", "", "", // 80 - 84
33362306a36Sopenharmony_ci		"", ""; // 85-86
33462306a36Sopenharmony_ci};
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ci&cpu0 {
33762306a36Sopenharmony_ci	#cooling-cells = <2>;
33862306a36Sopenharmony_ci};
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ci&cpu1 {
34162306a36Sopenharmony_ci	#cooling-cells = <2>;
34262306a36Sopenharmony_ci};
34362306a36Sopenharmony_ci
34462306a36Sopenharmony_ci&cpu2 {
34562306a36Sopenharmony_ci	#cooling-cells = <2>;
34662306a36Sopenharmony_ci};
34762306a36Sopenharmony_ci
34862306a36Sopenharmony_ci&cpu3 {
34962306a36Sopenharmony_ci	#cooling-cells = <2>;
35062306a36Sopenharmony_ci};
351