18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci/dts-v1/;
78c2ecf20Sopenharmony_ci#include "rk3399-sapphire.dtsi"
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/ {
108c2ecf20Sopenharmony_ci	model = "Excavator-RK3399 Board";
118c2ecf20Sopenharmony_ci	compatible = "rockchip,rk3399-sapphire-excavator", "rockchip,rk3399";
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	adc-keys {
148c2ecf20Sopenharmony_ci		compatible = "adc-keys";
158c2ecf20Sopenharmony_ci		io-channels = <&saradc 1>;
168c2ecf20Sopenharmony_ci		io-channel-names = "buttons";
178c2ecf20Sopenharmony_ci		keyup-threshold-microvolt = <1800000>;
188c2ecf20Sopenharmony_ci		poll-interval = <100>;
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci		button-up {
218c2ecf20Sopenharmony_ci			label = "Volume Up";
228c2ecf20Sopenharmony_ci			linux,code = <KEY_VOLUMEUP>;
238c2ecf20Sopenharmony_ci			press-threshold-microvolt = <100000>;
248c2ecf20Sopenharmony_ci		};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci		button-down {
278c2ecf20Sopenharmony_ci			label = "Volume Down";
288c2ecf20Sopenharmony_ci			linux,code = <KEY_VOLUMEDOWN>;
298c2ecf20Sopenharmony_ci			press-threshold-microvolt = <300000>;
308c2ecf20Sopenharmony_ci		};
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci		back {
338c2ecf20Sopenharmony_ci			label = "Back";
348c2ecf20Sopenharmony_ci			linux,code = <KEY_BACK>;
358c2ecf20Sopenharmony_ci			press-threshold-microvolt = <985000>;
368c2ecf20Sopenharmony_ci		};
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci		menu {
398c2ecf20Sopenharmony_ci			label = "Menu";
408c2ecf20Sopenharmony_ci			linux,code = <KEY_MENU>;
418c2ecf20Sopenharmony_ci			press-threshold-microvolt = <1314000>;
428c2ecf20Sopenharmony_ci		};
438c2ecf20Sopenharmony_ci	};
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	backlight: backlight {
468c2ecf20Sopenharmony_ci		compatible = "pwm-backlight";
478c2ecf20Sopenharmony_ci		brightness-levels = <
488c2ecf20Sopenharmony_ci			  0   1   2   3   4   5   6   7
498c2ecf20Sopenharmony_ci			  8   9  10  11  12  13  14  15
508c2ecf20Sopenharmony_ci			 16  17  18  19  20  21  22  23
518c2ecf20Sopenharmony_ci			 24  25  26  27  28  29  30  31
528c2ecf20Sopenharmony_ci			 32  33  34  35  36  37  38  39
538c2ecf20Sopenharmony_ci			 40  41  42  43  44  45  46  47
548c2ecf20Sopenharmony_ci			 48  49  50  51  52  53  54  55
558c2ecf20Sopenharmony_ci			 56  57  58  59  60  61  62  63
568c2ecf20Sopenharmony_ci			 64  65  66  67  68  69  70  71
578c2ecf20Sopenharmony_ci			 72  73  74  75  76  77  78  79
588c2ecf20Sopenharmony_ci			 80  81  82  83  84  85  86  87
598c2ecf20Sopenharmony_ci			 88  89  90  91  92  93  94  95
608c2ecf20Sopenharmony_ci			 96  97  98  99 100 101 102 103
618c2ecf20Sopenharmony_ci			104 105 106 107 108 109 110 111
628c2ecf20Sopenharmony_ci			112 113 114 115 116 117 118 119
638c2ecf20Sopenharmony_ci			120 121 122 123 124 125 126 127
648c2ecf20Sopenharmony_ci			128 129 130 131 132 133 134 135
658c2ecf20Sopenharmony_ci			136 137 138 139 140 141 142 143
668c2ecf20Sopenharmony_ci			144 145 146 147 148 149 150 151
678c2ecf20Sopenharmony_ci			152 153 154 155 156 157 158 159
688c2ecf20Sopenharmony_ci			160 161 162 163 164 165 166 167
698c2ecf20Sopenharmony_ci			168 169 170 171 172 173 174 175
708c2ecf20Sopenharmony_ci			176 177 178 179 180 181 182 183
718c2ecf20Sopenharmony_ci			184 185 186 187 188 189 190 191
728c2ecf20Sopenharmony_ci			192 193 194 195 196 197 198 199
738c2ecf20Sopenharmony_ci			200 201 202 203 204 205 206 207
748c2ecf20Sopenharmony_ci			208 209 210 211 212 213 214 215
758c2ecf20Sopenharmony_ci			216 217 218 219 220 221 222 223
768c2ecf20Sopenharmony_ci			224 225 226 227 228 229 230 231
778c2ecf20Sopenharmony_ci			232 233 234 235 236 237 238 239
788c2ecf20Sopenharmony_ci			240 241 242 243 244 245 246 247
798c2ecf20Sopenharmony_ci			248 249 250 251 252 253 254 255>;
808c2ecf20Sopenharmony_ci		default-brightness-level = <200>;
818c2ecf20Sopenharmony_ci		enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
828c2ecf20Sopenharmony_ci		pwms = <&pwm0 0 25000 0>;
838c2ecf20Sopenharmony_ci		status = "okay";
848c2ecf20Sopenharmony_ci	};
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci	edp_panel: edp-panel {
878c2ecf20Sopenharmony_ci		compatible ="lg,lp079qx1-sp0v";
888c2ecf20Sopenharmony_ci		backlight = <&backlight>;
898c2ecf20Sopenharmony_ci		enable-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
908c2ecf20Sopenharmony_ci		pinctrl-names = "default";
918c2ecf20Sopenharmony_ci		pinctrl-0 = <&lcd_panel_reset>;
928c2ecf20Sopenharmony_ci		power-supply = <&vcc3v3_s0>;
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci		port {
958c2ecf20Sopenharmony_ci			panel_in_edp: endpoint {
968c2ecf20Sopenharmony_ci				remote-endpoint = <&edp_out_panel>;
978c2ecf20Sopenharmony_ci			};
988c2ecf20Sopenharmony_ci		};
998c2ecf20Sopenharmony_ci	};
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci	rt5651-sound {
1028c2ecf20Sopenharmony_ci		compatible = "simple-audio-card";
1038c2ecf20Sopenharmony_ci		simple-audio-card,name = "realtek,rt5651-codec";
1048c2ecf20Sopenharmony_ci		simple-audio-card,format = "i2s";
1058c2ecf20Sopenharmony_ci		simple-audio-card,mclk-fs = <256>;
1068c2ecf20Sopenharmony_ci		simple-audio-card,widgets =
1078c2ecf20Sopenharmony_ci			"Microphone", "Mic Jack",
1088c2ecf20Sopenharmony_ci			"Headphone", "Headphone Jack";
1098c2ecf20Sopenharmony_ci		simple-audio-card,routing =
1108c2ecf20Sopenharmony_ci			"Mic Jack", "MICBIAS1",
1118c2ecf20Sopenharmony_ci			"IN1P", "Mic Jack",
1128c2ecf20Sopenharmony_ci			"Headphone Jack", "HPOL",
1138c2ecf20Sopenharmony_ci			"Headphone Jack", "HPOR";
1148c2ecf20Sopenharmony_ci		simple-audio-card,cpu {
1158c2ecf20Sopenharmony_ci			sound-dai = <&i2s0>;
1168c2ecf20Sopenharmony_ci		};
1178c2ecf20Sopenharmony_ci		simple-audio-card,codec {
1188c2ecf20Sopenharmony_ci			sound-dai = <&rt5651>;
1198c2ecf20Sopenharmony_ci		};
1208c2ecf20Sopenharmony_ci	};
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci	sdio_pwrseq: sdio-pwrseq {
1238c2ecf20Sopenharmony_ci		compatible = "mmc-pwrseq-simple";
1248c2ecf20Sopenharmony_ci		clocks = <&rk808 1>;
1258c2ecf20Sopenharmony_ci		clock-names = "ext_clock";
1268c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1278c2ecf20Sopenharmony_ci		pinctrl-0 = <&wifi_enable_h>;
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci		/*
1308c2ecf20Sopenharmony_ci		 * On the module itself this is one of these (depending
1318c2ecf20Sopenharmony_ci		 * on the actual card populated):
1328c2ecf20Sopenharmony_ci		 * - SDIO_RESET_L_WL_REG_ON
1338c2ecf20Sopenharmony_ci		 * - PDN (power down when low)
1348c2ecf20Sopenharmony_ci		 */
1358c2ecf20Sopenharmony_ci		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
1368c2ecf20Sopenharmony_ci	};
1378c2ecf20Sopenharmony_ci};
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci&edp {
1408c2ecf20Sopenharmony_ci	status = "okay";
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci	ports {
1438c2ecf20Sopenharmony_ci		edp_out: port@1 {
1448c2ecf20Sopenharmony_ci			reg = <1>;
1458c2ecf20Sopenharmony_ci			#address-cells = <1>;
1468c2ecf20Sopenharmony_ci			#size-cells = <0>;
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci			edp_out_panel: endpoint@0 {
1498c2ecf20Sopenharmony_ci				reg = <0>;
1508c2ecf20Sopenharmony_ci				remote-endpoint = <&panel_in_edp>;
1518c2ecf20Sopenharmony_ci			};
1528c2ecf20Sopenharmony_ci		};
1538c2ecf20Sopenharmony_ci	};
1548c2ecf20Sopenharmony_ci};
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci&i2c1 {
1578c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
1588c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <15>;
1598c2ecf20Sopenharmony_ci	status = "okay";
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci	rt5651: rt5651@1a {
1628c2ecf20Sopenharmony_ci		compatible = "rockchip,rt5651";
1638c2ecf20Sopenharmony_ci		reg = <0x1a>;
1648c2ecf20Sopenharmony_ci		clocks = <&cru SCLK_I2S_8CH_OUT>;
1658c2ecf20Sopenharmony_ci		clock-names = "mclk";
1668c2ecf20Sopenharmony_ci		hp-det-gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>;
1678c2ecf20Sopenharmony_ci		spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
1688c2ecf20Sopenharmony_ci		#sound-dai-cells = <0>;
1698c2ecf20Sopenharmony_ci	};
1708c2ecf20Sopenharmony_ci};
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ci&i2c4 {
1738c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <600>;
1748c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <20>;
1758c2ecf20Sopenharmony_ci	status = "okay";
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ci	accelerometer@68 {
1788c2ecf20Sopenharmony_ci		compatible = "invensense,mpu6500";
1798c2ecf20Sopenharmony_ci		reg = <0x68>;
1808c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
1818c2ecf20Sopenharmony_ci		interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
1828c2ecf20Sopenharmony_ci	};
1838c2ecf20Sopenharmony_ci};
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci&i2s0 {
1868c2ecf20Sopenharmony_ci	rockchip,playback-channels = <8>;
1878c2ecf20Sopenharmony_ci	rockchip,capture-channels = <8>;
1888c2ecf20Sopenharmony_ci	status = "okay";
1898c2ecf20Sopenharmony_ci};
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ci&pcie_phy {
1928c2ecf20Sopenharmony_ci	status = "okay";
1938c2ecf20Sopenharmony_ci};
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci&pcie0 {
1968c2ecf20Sopenharmony_ci	ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
1978c2ecf20Sopenharmony_ci	num-lanes = <4>;
1988c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1998c2ecf20Sopenharmony_ci	pinctrl-0 = <&pcie_clkreqn_cpm>;
2008c2ecf20Sopenharmony_ci	status = "okay";
2018c2ecf20Sopenharmony_ci};
2028c2ecf20Sopenharmony_ci
2038c2ecf20Sopenharmony_ci&pinctrl {
2048c2ecf20Sopenharmony_ci	sdio-pwrseq {
2058c2ecf20Sopenharmony_ci		wifi_enable_h: wifi-enable-h {
2068c2ecf20Sopenharmony_ci			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
2078c2ecf20Sopenharmony_ci		};
2088c2ecf20Sopenharmony_ci	};
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_ci	lcd-panel {
2118c2ecf20Sopenharmony_ci		lcd_panel_reset: lcd-panel-reset {
2128c2ecf20Sopenharmony_ci			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
2138c2ecf20Sopenharmony_ci		};
2148c2ecf20Sopenharmony_ci	};
2158c2ecf20Sopenharmony_ci};
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci&sdio0 {
2188c2ecf20Sopenharmony_ci	bus-width = <4>;
2198c2ecf20Sopenharmony_ci	cap-sd-highspeed;
2208c2ecf20Sopenharmony_ci	cap-sdio-irq;
2218c2ecf20Sopenharmony_ci	clock-frequency = <50000000>;
2228c2ecf20Sopenharmony_ci	keep-power-in-suspend;
2238c2ecf20Sopenharmony_ci	max-frequency = <50000000>;
2248c2ecf20Sopenharmony_ci	mmc-pwrseq = <&sdio_pwrseq>;
2258c2ecf20Sopenharmony_ci	non-removable;
2268c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2278c2ecf20Sopenharmony_ci	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
2288c2ecf20Sopenharmony_ci	sd-uhs-sdr104;
2298c2ecf20Sopenharmony_ci	status = "okay";
2308c2ecf20Sopenharmony_ci};
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci&spdif {
2338c2ecf20Sopenharmony_ci	status = "okay";
2348c2ecf20Sopenharmony_ci};
235