162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * FriendlyElec NanoPC-T4 board device tree source
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
662306a36Sopenharmony_ci * (http://www.friendlyarm.com)
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Copyright (c) 2018 Collabora Ltd.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/dts-v1/;
1262306a36Sopenharmony_ci#include "rk3399-nanopi4.dtsi"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/ {
1562306a36Sopenharmony_ci	model = "FriendlyElec NanoPC-T4";
1662306a36Sopenharmony_ci	compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399";
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	vcc12v0_sys: vcc12v0-sys {
1962306a36Sopenharmony_ci		compatible = "regulator-fixed";
2062306a36Sopenharmony_ci		regulator-always-on;
2162306a36Sopenharmony_ci		regulator-boot-on;
2262306a36Sopenharmony_ci		regulator-max-microvolt = <12000000>;
2362306a36Sopenharmony_ci		regulator-min-microvolt = <12000000>;
2462306a36Sopenharmony_ci		regulator-name = "vcc12v0_sys";
2562306a36Sopenharmony_ci	};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	vcc5v0_host0: vcc5v0-host0 {
2862306a36Sopenharmony_ci		compatible = "regulator-fixed";
2962306a36Sopenharmony_ci		regulator-always-on;
3062306a36Sopenharmony_ci		regulator-boot-on;
3162306a36Sopenharmony_ci		regulator-name = "vcc5v0_host0";
3262306a36Sopenharmony_ci		vin-supply = <&vcc5v0_sys>;
3362306a36Sopenharmony_ci	};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	adc-keys {
3662306a36Sopenharmony_ci		compatible = "adc-keys";
3762306a36Sopenharmony_ci		io-channels = <&saradc 1>;
3862306a36Sopenharmony_ci		io-channel-names = "buttons";
3962306a36Sopenharmony_ci		keyup-threshold-microvolt = <1800000>;
4062306a36Sopenharmony_ci		poll-interval = <100>;
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci		button-recovery {
4362306a36Sopenharmony_ci			label = "Recovery";
4462306a36Sopenharmony_ci			linux,code = <KEY_VENDOR>;
4562306a36Sopenharmony_ci			press-threshold-microvolt = <18000>;
4662306a36Sopenharmony_ci		};
4762306a36Sopenharmony_ci	};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	ir-receiver {
5062306a36Sopenharmony_ci		compatible = "gpio-ir-receiver";
5162306a36Sopenharmony_ci		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
5262306a36Sopenharmony_ci		pinctrl-names = "default";
5362306a36Sopenharmony_ci		pinctrl-0 = <&ir_rx>;
5462306a36Sopenharmony_ci	};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	fan: pwm-fan {
5762306a36Sopenharmony_ci		compatible = "pwm-fan";
5862306a36Sopenharmony_ci		/*
5962306a36Sopenharmony_ci		 * With 20KHz PWM and an EVERCOOL EC4007H12SA fan, these levels
6062306a36Sopenharmony_ci		 * work out to 0, ~1200, ~3000, and 5000RPM respectively.
6162306a36Sopenharmony_ci		 */
6262306a36Sopenharmony_ci		cooling-levels = <0 12 18 255>;
6362306a36Sopenharmony_ci		#cooling-cells = <2>;
6462306a36Sopenharmony_ci		fan-supply = <&vcc12v0_sys>;
6562306a36Sopenharmony_ci		pwms = <&pwm1 0 50000 0>;
6662306a36Sopenharmony_ci	};
6762306a36Sopenharmony_ci};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci&cpu_thermal {
7062306a36Sopenharmony_ci	trips {
7162306a36Sopenharmony_ci		cpu_warm: cpu_warm {
7262306a36Sopenharmony_ci			temperature = <55000>;
7362306a36Sopenharmony_ci			hysteresis = <2000>;
7462306a36Sopenharmony_ci			type = "active";
7562306a36Sopenharmony_ci		};
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci		cpu_hot: cpu_hot {
7862306a36Sopenharmony_ci			temperature = <65000>;
7962306a36Sopenharmony_ci			hysteresis = <2000>;
8062306a36Sopenharmony_ci			type = "active";
8162306a36Sopenharmony_ci		};
8262306a36Sopenharmony_ci	};
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci	cooling-maps {
8562306a36Sopenharmony_ci		map2 {
8662306a36Sopenharmony_ci			trip = <&cpu_warm>;
8762306a36Sopenharmony_ci			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
8862306a36Sopenharmony_ci		};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci		map3 {
9162306a36Sopenharmony_ci			trip = <&cpu_hot>;
9262306a36Sopenharmony_ci			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
9362306a36Sopenharmony_ci		};
9462306a36Sopenharmony_ci	};
9562306a36Sopenharmony_ci};
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci&pcie0 {
9862306a36Sopenharmony_ci	ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
9962306a36Sopenharmony_ci	num-lanes = <4>;
10062306a36Sopenharmony_ci	vpcie3v3-supply = <&vcc3v3_sys>;
10162306a36Sopenharmony_ci};
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci&pinctrl {
10462306a36Sopenharmony_ci	ir {
10562306a36Sopenharmony_ci		ir_rx: ir-rx {
10662306a36Sopenharmony_ci			/* external pullup to VCC3V3_SYS, despite being 1.8V :/ */
10762306a36Sopenharmony_ci			rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>;
10862306a36Sopenharmony_ci		};
10962306a36Sopenharmony_ci	};
11062306a36Sopenharmony_ci};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci&sdhci {
11362306a36Sopenharmony_ci	mmc-hs400-1_8v;
11462306a36Sopenharmony_ci	mmc-hs400-enhanced-strobe;
11562306a36Sopenharmony_ci};
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci&u2phy0_host {
11862306a36Sopenharmony_ci	phy-supply = <&vcc5v0_host0>;
11962306a36Sopenharmony_ci};
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci&u2phy1_host {
12262306a36Sopenharmony_ci	phy-supply = <&vcc5v0_host0>;
12362306a36Sopenharmony_ci};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci&vcc5v0_sys {
12662306a36Sopenharmony_ci	vin-supply = <&vcc12v0_sys>;
12762306a36Sopenharmony_ci};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci&vcc3v3_sys {
13062306a36Sopenharmony_ci	vin-supply = <&vcc12v0_sys>;
13162306a36Sopenharmony_ci};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci&vbus_typec {
13462306a36Sopenharmony_ci	enable-active-high;
13562306a36Sopenharmony_ci	gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
13662306a36Sopenharmony_ci	vin-supply = <&vcc5v0_sys>;
13762306a36Sopenharmony_ci};
138