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