18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * FriendlyElec NanoPC-T4 board device tree source
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
68c2ecf20Sopenharmony_ci * (http://www.friendlyarm.com)
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Copyright (c) 2018 Collabora Ltd.
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/dts-v1/;
128c2ecf20Sopenharmony_ci#include "rk3399-nanopi4.dtsi"
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci/ {
158c2ecf20Sopenharmony_ci	model = "FriendlyElec NanoPC-T4";
168c2ecf20Sopenharmony_ci	compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399";
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci	vcc12v0_sys: vcc12v0-sys {
198c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
208c2ecf20Sopenharmony_ci		regulator-always-on;
218c2ecf20Sopenharmony_ci		regulator-boot-on;
228c2ecf20Sopenharmony_ci		regulator-max-microvolt = <12000000>;
238c2ecf20Sopenharmony_ci		regulator-min-microvolt = <12000000>;
248c2ecf20Sopenharmony_ci		regulator-name = "vcc12v0_sys";
258c2ecf20Sopenharmony_ci	};
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	vcc5v0_host0: vcc5v0-host0 {
288c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
298c2ecf20Sopenharmony_ci		regulator-always-on;
308c2ecf20Sopenharmony_ci		regulator-boot-on;
318c2ecf20Sopenharmony_ci		regulator-name = "vcc5v0_host0";
328c2ecf20Sopenharmony_ci		vin-supply = <&vcc5v0_sys>;
338c2ecf20Sopenharmony_ci	};
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	adc-keys {
368c2ecf20Sopenharmony_ci		compatible = "adc-keys";
378c2ecf20Sopenharmony_ci		io-channels = <&saradc 1>;
388c2ecf20Sopenharmony_ci		io-channel-names = "buttons";
398c2ecf20Sopenharmony_ci		keyup-threshold-microvolt = <1800000>;
408c2ecf20Sopenharmony_ci		poll-interval = <100>;
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci		recovery {
438c2ecf20Sopenharmony_ci			label = "Recovery";
448c2ecf20Sopenharmony_ci			linux,code = <KEY_VENDOR>;
458c2ecf20Sopenharmony_ci			press-threshold-microvolt = <18000>;
468c2ecf20Sopenharmony_ci		};
478c2ecf20Sopenharmony_ci	};
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci	ir-receiver {
508c2ecf20Sopenharmony_ci		compatible = "gpio-ir-receiver";
518c2ecf20Sopenharmony_ci		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
528c2ecf20Sopenharmony_ci		pinctrl-names = "default";
538c2ecf20Sopenharmony_ci		pinctrl-0 = <&ir_rx>;
548c2ecf20Sopenharmony_ci	};
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	fan: pwm-fan {
578c2ecf20Sopenharmony_ci		compatible = "pwm-fan";
588c2ecf20Sopenharmony_ci		/*
598c2ecf20Sopenharmony_ci		 * With 20KHz PWM and an EVERCOOL EC4007H12SA fan, these levels
608c2ecf20Sopenharmony_ci		 * work out to 0, ~1200, ~3000, and 5000RPM respectively.
618c2ecf20Sopenharmony_ci		 */
628c2ecf20Sopenharmony_ci		cooling-levels = <0 12 18 255>;
638c2ecf20Sopenharmony_ci		#cooling-cells = <2>;
648c2ecf20Sopenharmony_ci		fan-supply = <&vcc12v0_sys>;
658c2ecf20Sopenharmony_ci		pwms = <&pwm1 0 50000 0>;
668c2ecf20Sopenharmony_ci	};
678c2ecf20Sopenharmony_ci};
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci&cpu_thermal {
708c2ecf20Sopenharmony_ci	trips {
718c2ecf20Sopenharmony_ci		cpu_warm: cpu_warm {
728c2ecf20Sopenharmony_ci			temperature = <55000>;
738c2ecf20Sopenharmony_ci			hysteresis = <2000>;
748c2ecf20Sopenharmony_ci			type = "active";
758c2ecf20Sopenharmony_ci		};
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci		cpu_hot: cpu_hot {
788c2ecf20Sopenharmony_ci			temperature = <65000>;
798c2ecf20Sopenharmony_ci			hysteresis = <2000>;
808c2ecf20Sopenharmony_ci			type = "active";
818c2ecf20Sopenharmony_ci		};
828c2ecf20Sopenharmony_ci	};
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	cooling-maps {
858c2ecf20Sopenharmony_ci		map2 {
868c2ecf20Sopenharmony_ci			trip = <&cpu_warm>;
878c2ecf20Sopenharmony_ci			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
888c2ecf20Sopenharmony_ci		};
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci		map3 {
918c2ecf20Sopenharmony_ci			trip = <&cpu_hot>;
928c2ecf20Sopenharmony_ci			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
938c2ecf20Sopenharmony_ci		};
948c2ecf20Sopenharmony_ci	};
958c2ecf20Sopenharmony_ci};
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci&pcie0 {
988c2ecf20Sopenharmony_ci	num-lanes = <4>;
998c2ecf20Sopenharmony_ci	vpcie3v3-supply = <&vcc3v3_sys>;
1008c2ecf20Sopenharmony_ci};
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci&pinctrl {
1038c2ecf20Sopenharmony_ci	ir {
1048c2ecf20Sopenharmony_ci		ir_rx: ir-rx {
1058c2ecf20Sopenharmony_ci			/* external pullup to VCC3V3_SYS, despite being 1.8V :/ */
1068c2ecf20Sopenharmony_ci			rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>;
1078c2ecf20Sopenharmony_ci		};
1088c2ecf20Sopenharmony_ci	};
1098c2ecf20Sopenharmony_ci};
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci&sdhci {
1128c2ecf20Sopenharmony_ci	mmc-hs400-1_8v;
1138c2ecf20Sopenharmony_ci	mmc-hs400-enhanced-strobe;
1148c2ecf20Sopenharmony_ci};
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci&u2phy0_host {
1178c2ecf20Sopenharmony_ci	phy-supply = <&vcc5v0_host0>;
1188c2ecf20Sopenharmony_ci};
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci&u2phy1_host {
1218c2ecf20Sopenharmony_ci	phy-supply = <&vcc5v0_host0>;
1228c2ecf20Sopenharmony_ci};
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci&vcc5v0_sys {
1258c2ecf20Sopenharmony_ci	vin-supply = <&vcc12v0_sys>;
1268c2ecf20Sopenharmony_ci};
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ci&vcc3v3_sys {
1298c2ecf20Sopenharmony_ci	vin-supply = <&vcc12v0_sys>;
1308c2ecf20Sopenharmony_ci};
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci&vbus_typec {
1338c2ecf20Sopenharmony_ci	enable-active-high;
1348c2ecf20Sopenharmony_ci	gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
1358c2ecf20Sopenharmony_ci	vin-supply = <&vcc5v0_sys>;
1368c2ecf20Sopenharmony_ci};
137