xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3318-a95x-z2.dts (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
16be33864SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
26be33864SEmmanuel Vadot
36be33864SEmmanuel Vadot/dts-v1/;
46be33864SEmmanuel Vadot#include <dt-bindings/input/input.h>
56be33864SEmmanuel Vadot#include "rk3328.dtsi"
66be33864SEmmanuel Vadot
76be33864SEmmanuel Vadot/ {
86be33864SEmmanuel Vadot	model = "A95X Z2";
96be33864SEmmanuel Vadot	compatible = "zkmagic,a95x-z2", "rockchip,rk3318";
106be33864SEmmanuel Vadot
112eb4d8dcSEmmanuel Vadot	aliases {
12*8d13bc63SEmmanuel Vadot		ethernet0 = &gmac2phy;
132eb4d8dcSEmmanuel Vadot		mmc0 = &sdmmc;
142eb4d8dcSEmmanuel Vadot		mmc1 = &sdio;
152eb4d8dcSEmmanuel Vadot		mmc2 = &emmc;
162eb4d8dcSEmmanuel Vadot	};
172eb4d8dcSEmmanuel Vadot
186be33864SEmmanuel Vadot	chosen {
196be33864SEmmanuel Vadot		stdout-path = "serial2:1500000n8";
206be33864SEmmanuel Vadot	};
216be33864SEmmanuel Vadot
226be33864SEmmanuel Vadot	adc-keys {
236be33864SEmmanuel Vadot		compatible = "adc-keys";
246be33864SEmmanuel Vadot		io-channels = <&saradc 0>;
256be33864SEmmanuel Vadot		io-channel-names = "buttons";
266be33864SEmmanuel Vadot		keyup-threshold-microvolt = <1800000>;
276be33864SEmmanuel Vadot		poll-interval = <100>;
286be33864SEmmanuel Vadot
297ef62cebSEmmanuel Vadot		button-recovery {
306be33864SEmmanuel Vadot			label = "recovery";
316be33864SEmmanuel Vadot			linux,code = <KEY_VENDOR>;
326be33864SEmmanuel Vadot			press-threshold-microvolt = <17000>;
336be33864SEmmanuel Vadot		};
346be33864SEmmanuel Vadot	};
356be33864SEmmanuel Vadot
366be33864SEmmanuel Vadot	ir-receiver {
376be33864SEmmanuel Vadot		compatible = "gpio-ir-receiver";
386be33864SEmmanuel Vadot		gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
396be33864SEmmanuel Vadot		pinctrl-0 = <&ir_int>;
406be33864SEmmanuel Vadot		pinctrl-names = "default";
416be33864SEmmanuel Vadot	};
426be33864SEmmanuel Vadot
436be33864SEmmanuel Vadot	leds {
446be33864SEmmanuel Vadot		compatible = "gpio-leds";
456be33864SEmmanuel Vadot		pinctrl-0 = <&cyx_led_pin>;
466be33864SEmmanuel Vadot		pinctrl-names = "default";
476be33864SEmmanuel Vadot
486be33864SEmmanuel Vadot		cyx_led: led-0 {
496be33864SEmmanuel Vadot			default-state = "on";
506be33864SEmmanuel Vadot			gpios = <&gpio2 RK_PC7 GPIO_ACTIVE_LOW>;
516be33864SEmmanuel Vadot			label = "CYX_LED";
526be33864SEmmanuel Vadot		};
536be33864SEmmanuel Vadot	};
546be33864SEmmanuel Vadot
556be33864SEmmanuel Vadot	sdio_pwrseq: sdio-pwrseq {
566be33864SEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
576be33864SEmmanuel Vadot		pinctrl-0 = <&wifi_enable_h>;
586be33864SEmmanuel Vadot		pinctrl-names = "default";
596be33864SEmmanuel Vadot		reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
606be33864SEmmanuel Vadot	};
616be33864SEmmanuel Vadot
626be33864SEmmanuel Vadot	spdif-sound {
636be33864SEmmanuel Vadot		compatible = "simple-audio-card";
646be33864SEmmanuel Vadot		simple-audio-card,name = "SPDIF";
656be33864SEmmanuel Vadot
666be33864SEmmanuel Vadot		simple-audio-card,cpu {
676be33864SEmmanuel Vadot			sound-dai = <&spdif>;
686be33864SEmmanuel Vadot		};
696be33864SEmmanuel Vadot
706be33864SEmmanuel Vadot		simple-audio-card,codec {
716be33864SEmmanuel Vadot			sound-dai = <&spdif_out>;
726be33864SEmmanuel Vadot		};
736be33864SEmmanuel Vadot	};
746be33864SEmmanuel Vadot
756be33864SEmmanuel Vadot	spdif_out: spdif-out {
766be33864SEmmanuel Vadot		compatible = "linux,spdif-dit";
776be33864SEmmanuel Vadot		#sound-dai-cells = <0>;
786be33864SEmmanuel Vadot	};
796be33864SEmmanuel Vadot
806be33864SEmmanuel Vadot	/* Power tree */
816be33864SEmmanuel Vadot	vccio_1v8: vccio-1v8-regulator {
826be33864SEmmanuel Vadot		compatible = "regulator-fixed";
836be33864SEmmanuel Vadot		regulator-name = "vccio_1v8";
846be33864SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
856be33864SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
866be33864SEmmanuel Vadot		regulator-always-on;
876be33864SEmmanuel Vadot	};
886be33864SEmmanuel Vadot
896be33864SEmmanuel Vadot	vccio_3v3: vccio-3v3-regulator {
906be33864SEmmanuel Vadot		compatible = "regulator-fixed";
916be33864SEmmanuel Vadot		regulator-name = "vccio_3v3";
926be33864SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
936be33864SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
946be33864SEmmanuel Vadot		regulator-always-on;
956be33864SEmmanuel Vadot	};
966be33864SEmmanuel Vadot
976be33864SEmmanuel Vadot	vcc_otg_vbus: otg-vbus-regulator {
986be33864SEmmanuel Vadot		compatible = "regulator-fixed";
996be33864SEmmanuel Vadot		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
1006be33864SEmmanuel Vadot		pinctrl-0 = <&otg_vbus_drv>;
1016be33864SEmmanuel Vadot		pinctrl-names = "default";
1026be33864SEmmanuel Vadot		regulator-name = "vcc_otg_vbus";
1036be33864SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
1046be33864SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
1056be33864SEmmanuel Vadot		enable-active-high;
1066be33864SEmmanuel Vadot	};
1076be33864SEmmanuel Vadot
1086be33864SEmmanuel Vadot	vcc_sd: sdmmc-regulator {
1096be33864SEmmanuel Vadot		compatible = "regulator-fixed";
1106be33864SEmmanuel Vadot		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
1116be33864SEmmanuel Vadot		pinctrl-0 = <&sdmmc0m1_pin>;
1126be33864SEmmanuel Vadot		pinctrl-names = "default";
1136be33864SEmmanuel Vadot		regulator-name = "vcc_sd";
1146be33864SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
1156be33864SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
1166be33864SEmmanuel Vadot		vin-supply = <&vccio_3v3>;
1176be33864SEmmanuel Vadot	};
1186be33864SEmmanuel Vadot
1196be33864SEmmanuel Vadot	vdd_arm: vdd-arm {
1206be33864SEmmanuel Vadot		compatible = "pwm-regulator";
1216be33864SEmmanuel Vadot		pwms = <&pwm0 0 5000 1>;
1226be33864SEmmanuel Vadot		regulator-name = "vdd_arm";
1236be33864SEmmanuel Vadot		regulator-min-microvolt = <950000>;
1246be33864SEmmanuel Vadot		regulator-max-microvolt = <1400000>;
1256be33864SEmmanuel Vadot		regulator-settling-time-up-us = <250>;
1266be33864SEmmanuel Vadot		regulator-always-on;
1276be33864SEmmanuel Vadot		regulator-boot-on;
1286be33864SEmmanuel Vadot	};
1296be33864SEmmanuel Vadot
1306be33864SEmmanuel Vadot	vdd_log: vdd-log {
1316be33864SEmmanuel Vadot		compatible = "pwm-regulator";
1326be33864SEmmanuel Vadot		pwms = <&pwm1 0 5000 1>;
1336be33864SEmmanuel Vadot		regulator-name = "vdd_log";
1346be33864SEmmanuel Vadot		regulator-min-microvolt = <900000>;
1356be33864SEmmanuel Vadot		regulator-max-microvolt = <1300000>;
1366be33864SEmmanuel Vadot		regulator-settling-time-up-us = <250>;
1376be33864SEmmanuel Vadot		regulator-always-on;
1386be33864SEmmanuel Vadot		regulator-boot-on;
1396be33864SEmmanuel Vadot	};
1406be33864SEmmanuel Vadot};
1416be33864SEmmanuel Vadot
1426be33864SEmmanuel Vadot&analog_sound {
1436be33864SEmmanuel Vadot	status = "okay";
1446be33864SEmmanuel Vadot};
1456be33864SEmmanuel Vadot
1466be33864SEmmanuel Vadot&codec {
1476be33864SEmmanuel Vadot	status = "okay";
1486be33864SEmmanuel Vadot};
1496be33864SEmmanuel Vadot
1506be33864SEmmanuel Vadot&cpu0 {
1516be33864SEmmanuel Vadot	cpu-supply = <&vdd_arm>;
1526be33864SEmmanuel Vadot};
1536be33864SEmmanuel Vadot
1546be33864SEmmanuel Vadot&cpu1 {
1556be33864SEmmanuel Vadot	cpu-supply = <&vdd_arm>;
1566be33864SEmmanuel Vadot};
1576be33864SEmmanuel Vadot
1586be33864SEmmanuel Vadot&cpu2 {
1596be33864SEmmanuel Vadot	cpu-supply = <&vdd_arm>;
1606be33864SEmmanuel Vadot};
1616be33864SEmmanuel Vadot
1626be33864SEmmanuel Vadot&cpu3 {
1636be33864SEmmanuel Vadot	cpu-supply = <&vdd_arm>;
1646be33864SEmmanuel Vadot};
1656be33864SEmmanuel Vadot
1666be33864SEmmanuel Vadot&cpu0_opp_table {
1676be33864SEmmanuel Vadot	opp-1200000000 {
1686be33864SEmmanuel Vadot		status = "disabled";
1696be33864SEmmanuel Vadot	};
1706be33864SEmmanuel Vadot
1716be33864SEmmanuel Vadot	opp-1296000000 {
1726be33864SEmmanuel Vadot		status = "disabled";
1736be33864SEmmanuel Vadot	};
1746be33864SEmmanuel Vadot};
1756be33864SEmmanuel Vadot
1766be33864SEmmanuel Vadot&emmc {
1776be33864SEmmanuel Vadot	bus-width = <8>;
1786be33864SEmmanuel Vadot	cap-mmc-highspeed;
1796be33864SEmmanuel Vadot	non-removable;
1806be33864SEmmanuel Vadot	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
1816be33864SEmmanuel Vadot	pinctrl-names = "default";
1826be33864SEmmanuel Vadot	status = "okay";
1836be33864SEmmanuel Vadot};
1846be33864SEmmanuel Vadot
1856be33864SEmmanuel Vadot&gmac2phy {
1866be33864SEmmanuel Vadot	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
1876be33864SEmmanuel Vadot	assigned-clock-rate = <50000000>;
1886be33864SEmmanuel Vadot	assigned-clocks = <&cru SCLK_MAC2PHY>;
1896be33864SEmmanuel Vadot	status = "okay";
1906be33864SEmmanuel Vadot};
1916be33864SEmmanuel Vadot
1926be33864SEmmanuel Vadot&gpu {
1936be33864SEmmanuel Vadot	mali-supply = <&vdd_log>;
1946be33864SEmmanuel Vadot};
1956be33864SEmmanuel Vadot
1966be33864SEmmanuel Vadot&hdmi {
1976be33864SEmmanuel Vadot	status = "okay";
1986be33864SEmmanuel Vadot};
1996be33864SEmmanuel Vadot
2006be33864SEmmanuel Vadot&hdmiphy {
2016be33864SEmmanuel Vadot	status = "okay";
2026be33864SEmmanuel Vadot};
2036be33864SEmmanuel Vadot
2046be33864SEmmanuel Vadot&hdmi_sound {
2056be33864SEmmanuel Vadot	status = "okay";
2066be33864SEmmanuel Vadot};
2076be33864SEmmanuel Vadot
2086be33864SEmmanuel Vadot&i2s0 {
2096be33864SEmmanuel Vadot	status = "okay";
2106be33864SEmmanuel Vadot};
2116be33864SEmmanuel Vadot
2126be33864SEmmanuel Vadot&i2s1 {
2136be33864SEmmanuel Vadot	status = "okay";
2146be33864SEmmanuel Vadot};
2156be33864SEmmanuel Vadot
2166be33864SEmmanuel Vadot&io_domains {
2176be33864SEmmanuel Vadot	pmuio-supply = <&vccio_3v3>;
2186be33864SEmmanuel Vadot	vccio1-supply = <&vccio_3v3>;
2196be33864SEmmanuel Vadot	vccio2-supply = <&vccio_1v8>;
2206be33864SEmmanuel Vadot	vccio3-supply = <&vccio_3v3>;
2216be33864SEmmanuel Vadot	vccio4-supply = <&vccio_1v8>;
2226be33864SEmmanuel Vadot	vccio5-supply = <&vccio_3v3>;
2236be33864SEmmanuel Vadot	vccio6-supply = <&vccio_3v3>;
2246be33864SEmmanuel Vadot	status = "okay";
2256be33864SEmmanuel Vadot};
2266be33864SEmmanuel Vadot
2276be33864SEmmanuel Vadot&pinctrl {
2286be33864SEmmanuel Vadot	ir {
2296be33864SEmmanuel Vadot		ir_int: ir-int {
2306be33864SEmmanuel Vadot			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
2316be33864SEmmanuel Vadot		};
2326be33864SEmmanuel Vadot	};
2336be33864SEmmanuel Vadot
2346be33864SEmmanuel Vadot	leds {
2356be33864SEmmanuel Vadot		cyx_led_pin: cyx-led-pin {
2366be33864SEmmanuel Vadot			rockchip,pins = <2 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
2376be33864SEmmanuel Vadot		};
2386be33864SEmmanuel Vadot	};
2396be33864SEmmanuel Vadot
2406be33864SEmmanuel Vadot	pwm0 {
2416be33864SEmmanuel Vadot		pwm0_pin_pull_up: pwm0-pin-pull-up {
2426be33864SEmmanuel Vadot			rockchip,pins = <2 RK_PA4 1 &pcfg_pull_up>;
2436be33864SEmmanuel Vadot		};
2446be33864SEmmanuel Vadot	};
2456be33864SEmmanuel Vadot
2466be33864SEmmanuel Vadot	pwm1 {
2476be33864SEmmanuel Vadot		pwm1_pin_pull_up: pwm1-pin-pull-up {
2486be33864SEmmanuel Vadot			rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up>;
2496be33864SEmmanuel Vadot		};
2506be33864SEmmanuel Vadot	};
2516be33864SEmmanuel Vadot
2526be33864SEmmanuel Vadot	sdio-pwrseq {
2536be33864SEmmanuel Vadot		wifi_enable_h: wifi-enable-h {
2546be33864SEmmanuel Vadot			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
2556be33864SEmmanuel Vadot		};
2566be33864SEmmanuel Vadot	};
2576be33864SEmmanuel Vadot
2586be33864SEmmanuel Vadot	sdmmc1 {
2596be33864SEmmanuel Vadot		clk_32k_out: clk-32k-out {
2606be33864SEmmanuel Vadot			rockchip,pins = <1 RK_PD4 1 &pcfg_pull_none>;
2616be33864SEmmanuel Vadot		};
2626be33864SEmmanuel Vadot	};
2636be33864SEmmanuel Vadot
2646be33864SEmmanuel Vadot	usb {
2656be33864SEmmanuel Vadot		host_vbus_drv: host-vbus-drv {
2666be33864SEmmanuel Vadot			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
2676be33864SEmmanuel Vadot		};
2686be33864SEmmanuel Vadot
2696be33864SEmmanuel Vadot		otg_vbus_drv: otg-vbus-drv {
2706be33864SEmmanuel Vadot			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
2716be33864SEmmanuel Vadot		};
2726be33864SEmmanuel Vadot	};
2736be33864SEmmanuel Vadot};
2746be33864SEmmanuel Vadot
2756be33864SEmmanuel Vadot&pwm0 {
2766be33864SEmmanuel Vadot	pinctrl-0 = <&pwm0_pin_pull_up>;
2776be33864SEmmanuel Vadot	pinctrl-names = "active";
2786be33864SEmmanuel Vadot	status = "okay";
2796be33864SEmmanuel Vadot};
2806be33864SEmmanuel Vadot
2816be33864SEmmanuel Vadot&pwm1 {
2826be33864SEmmanuel Vadot	pinctrl-0 = <&pwm1_pin_pull_up>;
2836be33864SEmmanuel Vadot	pinctrl-names = "active";
2846be33864SEmmanuel Vadot	status = "okay";
2856be33864SEmmanuel Vadot};
2866be33864SEmmanuel Vadot
2876be33864SEmmanuel Vadot&saradc {
2886be33864SEmmanuel Vadot	vref-supply = <&vccio_1v8>;
2896be33864SEmmanuel Vadot	status = "okay";
2906be33864SEmmanuel Vadot};
2916be33864SEmmanuel Vadot
2926be33864SEmmanuel Vadot&sdio {
2936be33864SEmmanuel Vadot	bus-width = <4>;
2946be33864SEmmanuel Vadot	cap-sd-highspeed;
2956be33864SEmmanuel Vadot	cap-sdio-irq;
2966be33864SEmmanuel Vadot	keep-power-in-suspend;
2976be33864SEmmanuel Vadot	max-frequency = <125000000>;
2986be33864SEmmanuel Vadot	mmc-pwrseq = <&sdio_pwrseq>;
2996be33864SEmmanuel Vadot	non-removable;
3006be33864SEmmanuel Vadot	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &clk_32k_out>;
3016be33864SEmmanuel Vadot	pinctrl-names = "default";
3026be33864SEmmanuel Vadot	sd-uhs-sdr104;
3036be33864SEmmanuel Vadot	status = "okay";
3046be33864SEmmanuel Vadot};
3056be33864SEmmanuel Vadot
3066be33864SEmmanuel Vadot&sdmmc {
3076be33864SEmmanuel Vadot	bus-width = <4>;
3086be33864SEmmanuel Vadot	cap-sd-highspeed;
3096be33864SEmmanuel Vadot	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
3106be33864SEmmanuel Vadot	pinctrl-names = "default";
3116be33864SEmmanuel Vadot	vmmc-supply = <&vcc_sd>;
3126be33864SEmmanuel Vadot	status = "okay";
3136be33864SEmmanuel Vadot};
3146be33864SEmmanuel Vadot
3156be33864SEmmanuel Vadot&spdif {
3166be33864SEmmanuel Vadot	pinctrl-0 = <&spdifm0_tx>;
3176be33864SEmmanuel Vadot	status = "okay";
3186be33864SEmmanuel Vadot};
3196be33864SEmmanuel Vadot
3206be33864SEmmanuel Vadot&soc_crit {
3216be33864SEmmanuel Vadot	temperature = <115000>; /* millicelsius */
3226be33864SEmmanuel Vadot};
3236be33864SEmmanuel Vadot
3246be33864SEmmanuel Vadot&target {
3256be33864SEmmanuel Vadot	temperature = <105000>; /* millicelsius */
3266be33864SEmmanuel Vadot};
3276be33864SEmmanuel Vadot
3286be33864SEmmanuel Vadot&threshold {
3296be33864SEmmanuel Vadot	temperature = <90000>; /* millicelsius */
3306be33864SEmmanuel Vadot};
3316be33864SEmmanuel Vadot
3326be33864SEmmanuel Vadot&tsadc {
3336be33864SEmmanuel Vadot	rockchip,hw-tshut-temp = <120000>;
3346be33864SEmmanuel Vadot	status = "okay";
3356be33864SEmmanuel Vadot};
3366be33864SEmmanuel Vadot
3376be33864SEmmanuel Vadot&u2phy {
3386be33864SEmmanuel Vadot	status = "okay";
3396be33864SEmmanuel Vadot};
3406be33864SEmmanuel Vadot
3416be33864SEmmanuel Vadot&u2phy_host {
3426be33864SEmmanuel Vadot	status = "okay";
3436be33864SEmmanuel Vadot};
3446be33864SEmmanuel Vadot
3456be33864SEmmanuel Vadot&u2phy_otg {
3466be33864SEmmanuel Vadot	phy-supply = <&vcc_otg_vbus>;
3476be33864SEmmanuel Vadot	status = "okay";
3486be33864SEmmanuel Vadot};
3496be33864SEmmanuel Vadot
3506be33864SEmmanuel Vadot&uart0 {
3516be33864SEmmanuel Vadot	pinctrl-0 = <&uart0_xfer &uart0_cts>;
3526be33864SEmmanuel Vadot	status = "okay";
3536be33864SEmmanuel Vadot};
3546be33864SEmmanuel Vadot
3556be33864SEmmanuel Vadot&uart2 {
3566be33864SEmmanuel Vadot	status = "okay";
3576be33864SEmmanuel Vadot};
3586be33864SEmmanuel Vadot
3596be33864SEmmanuel Vadot&usb20_otg {
3606be33864SEmmanuel Vadot	dr_mode = "host";
3616be33864SEmmanuel Vadot	status = "okay";
3626be33864SEmmanuel Vadot};
3636be33864SEmmanuel Vadot
3642eb4d8dcSEmmanuel Vadot&usbdrd3 {
3652eb4d8dcSEmmanuel Vadot	dr_mode = "host";
3662eb4d8dcSEmmanuel Vadot	status = "okay";
3672eb4d8dcSEmmanuel Vadot};
3682eb4d8dcSEmmanuel Vadot
3696be33864SEmmanuel Vadot&usb_host0_ehci {
3706be33864SEmmanuel Vadot	status = "okay";
3716be33864SEmmanuel Vadot};
3726be33864SEmmanuel Vadot
3736be33864SEmmanuel Vadot&usb_host0_ohci {
3746be33864SEmmanuel Vadot	status = "okay";
3756be33864SEmmanuel Vadot};
3766be33864SEmmanuel Vadot
3776be33864SEmmanuel Vadot&vop {
3786be33864SEmmanuel Vadot	status = "okay";
3796be33864SEmmanuel Vadot};
3806be33864SEmmanuel Vadot
3816be33864SEmmanuel Vadot&vop_mmu {
3826be33864SEmmanuel Vadot	status = "okay";
3836be33864SEmmanuel Vadot};
384