1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * FriendlyElec NanoPC-T4 board device tree source
4 *
5 * Copyright (c) 2018 FriendlyElec Computer Tech. Co., Ltd.
6 * (http://www.friendlyarm.com)
7 *
8 * Copyright (c) 2018 Collabora Ltd.
9 */
10
11/dts-v1/;
12#include "rk3399-nanopi4.dtsi"
13
14/ {
15	model = "FriendlyElec NanoPC-T4";
16	compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399";
17
18	vcc12v0_sys: vcc12v0-sys {
19		compatible = "regulator-fixed";
20		regulator-always-on;
21		regulator-boot-on;
22		regulator-max-microvolt = <12000000>;
23		regulator-min-microvolt = <12000000>;
24		regulator-name = "vcc12v0_sys";
25	};
26
27	vcc5v0_host0: vcc5v0-host0 {
28		compatible = "regulator-fixed";
29		regulator-always-on;
30		regulator-boot-on;
31		regulator-name = "vcc5v0_host0";
32		vin-supply = <&vcc5v0_sys>;
33	};
34
35	adc-keys {
36		compatible = "adc-keys";
37		io-channels = <&saradc 1>;
38		io-channel-names = "buttons";
39		keyup-threshold-microvolt = <1800000>;
40		poll-interval = <100>;
41
42		recovery {
43			label = "Recovery";
44			linux,code = <KEY_VENDOR>;
45			press-threshold-microvolt = <18000>;
46		};
47	};
48
49	ir-receiver {
50		compatible = "gpio-ir-receiver";
51		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_LOW>;
52		pinctrl-names = "default";
53		pinctrl-0 = <&ir_rx>;
54	};
55
56	fan: pwm-fan {
57		compatible = "pwm-fan";
58		/*
59		 * With 20KHz PWM and an EVERCOOL EC4007H12SA fan, these levels
60		 * work out to 0, ~1200, ~3000, and 5000RPM respectively.
61		 */
62		cooling-levels = <0 12 18 255>;
63		#cooling-cells = <2>;
64		fan-supply = <&vcc12v0_sys>;
65		pwms = <&pwm1 0 50000 0>;
66	};
67};
68
69&cpu_thermal {
70	trips {
71		cpu_warm: cpu_warm {
72			temperature = <55000>;
73			hysteresis = <2000>;
74			type = "active";
75		};
76
77		cpu_hot: cpu_hot {
78			temperature = <65000>;
79			hysteresis = <2000>;
80			type = "active";
81		};
82	};
83
84	cooling-maps {
85		map2 {
86			trip = <&cpu_warm>;
87			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
88		};
89
90		map3 {
91			trip = <&cpu_hot>;
92			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
93		};
94	};
95};
96
97&gpu_thermal {
98	trips {
99		gpu_warm: gpu_warm {
100			temperature = <55000>;
101			hysteresis = <2000>;
102			type = "active";
103		};
104
105		gpu_hot: gpu_hot {
106			temperature = <65000>;
107			hysteresis = <2000>;
108			type = "active";
109		};
110	};
111	cooling-maps {
112		map1 {
113			trip = <&gpu_warm>;
114			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
115		};
116
117		map2 {
118			trip = <&gpu_hot>;
119			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
120		};
121	};
122};
123
124&pinctrl {
125	ir {
126		ir_rx: ir-rx {
127			/* external pullup to VCC3V3_SYS, despite being 1.8V :/ */
128			rockchip,pins = <0 RK_PA6 1 &pcfg_pull_none>;
129		};
130	};
131};
132
133&sdhci {
134	mmc-hs400-1_8v;
135	mmc-hs400-enhanced-strobe;
136};
137
138&u2phy0_host {
139	phy-supply = <&vcc5v0_host0>;
140};
141
142&u2phy1_host {
143	phy-supply = <&vcc5v0_host0>;
144};
145
146&vcc5v0_sys {
147	vin-supply = <&vcc12v0_sys>;
148};
149
150&vcc3v3_sys {
151	vin-supply = <&vcc12v0_sys>;
152};
153
154&vbus_typec {
155	enable-active-high;
156	gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
157	vin-supply = <&vcc5v0_sys>;
158};
159