162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/dts-v1/;
762306a36Sopenharmony_ci#include "rk3399-sapphire.dtsi"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/ {
1062306a36Sopenharmony_ci	model = "Excavator-RK3399 Board";
1162306a36Sopenharmony_ci	compatible = "rockchip,rk3399-sapphire-excavator", "rockchip,rk3399";
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	aliases {
1462306a36Sopenharmony_ci		mmc2 = &sdio0;
1562306a36Sopenharmony_ci	};
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	adc-keys {
1862306a36Sopenharmony_ci		compatible = "adc-keys";
1962306a36Sopenharmony_ci		io-channels = <&saradc 1>;
2062306a36Sopenharmony_ci		io-channel-names = "buttons";
2162306a36Sopenharmony_ci		keyup-threshold-microvolt = <1800000>;
2262306a36Sopenharmony_ci		poll-interval = <100>;
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci		button-up {
2562306a36Sopenharmony_ci			label = "Volume Up";
2662306a36Sopenharmony_ci			linux,code = <KEY_VOLUMEUP>;
2762306a36Sopenharmony_ci			press-threshold-microvolt = <100000>;
2862306a36Sopenharmony_ci		};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci		button-down {
3162306a36Sopenharmony_ci			label = "Volume Down";
3262306a36Sopenharmony_ci			linux,code = <KEY_VOLUMEDOWN>;
3362306a36Sopenharmony_ci			press-threshold-microvolt = <300000>;
3462306a36Sopenharmony_ci		};
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci		button-back {
3762306a36Sopenharmony_ci			label = "Back";
3862306a36Sopenharmony_ci			linux,code = <KEY_BACK>;
3962306a36Sopenharmony_ci			press-threshold-microvolt = <985000>;
4062306a36Sopenharmony_ci		};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci		button-menu {
4362306a36Sopenharmony_ci			label = "Menu";
4462306a36Sopenharmony_ci			linux,code = <KEY_MENU>;
4562306a36Sopenharmony_ci			press-threshold-microvolt = <1314000>;
4662306a36Sopenharmony_ci		};
4762306a36Sopenharmony_ci	};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	backlight: backlight {
5062306a36Sopenharmony_ci		compatible = "pwm-backlight";
5162306a36Sopenharmony_ci		brightness-levels = <
5262306a36Sopenharmony_ci			  0   1   2   3   4   5   6   7
5362306a36Sopenharmony_ci			  8   9  10  11  12  13  14  15
5462306a36Sopenharmony_ci			 16  17  18  19  20  21  22  23
5562306a36Sopenharmony_ci			 24  25  26  27  28  29  30  31
5662306a36Sopenharmony_ci			 32  33  34  35  36  37  38  39
5762306a36Sopenharmony_ci			 40  41  42  43  44  45  46  47
5862306a36Sopenharmony_ci			 48  49  50  51  52  53  54  55
5962306a36Sopenharmony_ci			 56  57  58  59  60  61  62  63
6062306a36Sopenharmony_ci			 64  65  66  67  68  69  70  71
6162306a36Sopenharmony_ci			 72  73  74  75  76  77  78  79
6262306a36Sopenharmony_ci			 80  81  82  83  84  85  86  87
6362306a36Sopenharmony_ci			 88  89  90  91  92  93  94  95
6462306a36Sopenharmony_ci			 96  97  98  99 100 101 102 103
6562306a36Sopenharmony_ci			104 105 106 107 108 109 110 111
6662306a36Sopenharmony_ci			112 113 114 115 116 117 118 119
6762306a36Sopenharmony_ci			120 121 122 123 124 125 126 127
6862306a36Sopenharmony_ci			128 129 130 131 132 133 134 135
6962306a36Sopenharmony_ci			136 137 138 139 140 141 142 143
7062306a36Sopenharmony_ci			144 145 146 147 148 149 150 151
7162306a36Sopenharmony_ci			152 153 154 155 156 157 158 159
7262306a36Sopenharmony_ci			160 161 162 163 164 165 166 167
7362306a36Sopenharmony_ci			168 169 170 171 172 173 174 175
7462306a36Sopenharmony_ci			176 177 178 179 180 181 182 183
7562306a36Sopenharmony_ci			184 185 186 187 188 189 190 191
7662306a36Sopenharmony_ci			192 193 194 195 196 197 198 199
7762306a36Sopenharmony_ci			200 201 202 203 204 205 206 207
7862306a36Sopenharmony_ci			208 209 210 211 212 213 214 215
7962306a36Sopenharmony_ci			216 217 218 219 220 221 222 223
8062306a36Sopenharmony_ci			224 225 226 227 228 229 230 231
8162306a36Sopenharmony_ci			232 233 234 235 236 237 238 239
8262306a36Sopenharmony_ci			240 241 242 243 244 245 246 247
8362306a36Sopenharmony_ci			248 249 250 251 252 253 254 255>;
8462306a36Sopenharmony_ci		default-brightness-level = <200>;
8562306a36Sopenharmony_ci		enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
8662306a36Sopenharmony_ci		pwms = <&pwm0 0 25000 0>;
8762306a36Sopenharmony_ci		status = "okay";
8862306a36Sopenharmony_ci	};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci	edp_panel: edp-panel {
9162306a36Sopenharmony_ci		compatible = "lg,lp079qx1-sp0v";
9262306a36Sopenharmony_ci		backlight = <&backlight>;
9362306a36Sopenharmony_ci		enable-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
9462306a36Sopenharmony_ci		pinctrl-names = "default";
9562306a36Sopenharmony_ci		pinctrl-0 = <&lcd_panel_reset>;
9662306a36Sopenharmony_ci		power-supply = <&vcc3v3_s0>;
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci		port {
9962306a36Sopenharmony_ci			panel_in_edp: endpoint {
10062306a36Sopenharmony_ci				remote-endpoint = <&edp_out_panel>;
10162306a36Sopenharmony_ci			};
10262306a36Sopenharmony_ci		};
10362306a36Sopenharmony_ci	};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci	rt5651-sound {
10662306a36Sopenharmony_ci		compatible = "simple-audio-card";
10762306a36Sopenharmony_ci		simple-audio-card,name = "realtek,rt5651-codec";
10862306a36Sopenharmony_ci		simple-audio-card,format = "i2s";
10962306a36Sopenharmony_ci		simple-audio-card,mclk-fs = <256>;
11062306a36Sopenharmony_ci		simple-audio-card,widgets =
11162306a36Sopenharmony_ci			"Microphone", "Mic Jack",
11262306a36Sopenharmony_ci			"Headphone", "Headphone Jack";
11362306a36Sopenharmony_ci		simple-audio-card,routing =
11462306a36Sopenharmony_ci			"Mic Jack", "MICBIAS1",
11562306a36Sopenharmony_ci			"IN1P", "Mic Jack",
11662306a36Sopenharmony_ci			"Headphone Jack", "HPOL",
11762306a36Sopenharmony_ci			"Headphone Jack", "HPOR";
11862306a36Sopenharmony_ci		simple-audio-card,cpu {
11962306a36Sopenharmony_ci			sound-dai = <&i2s0>;
12062306a36Sopenharmony_ci		};
12162306a36Sopenharmony_ci		simple-audio-card,codec {
12262306a36Sopenharmony_ci			sound-dai = <&rt5651>;
12362306a36Sopenharmony_ci		};
12462306a36Sopenharmony_ci	};
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci	sdio_pwrseq: sdio-pwrseq {
12762306a36Sopenharmony_ci		compatible = "mmc-pwrseq-simple";
12862306a36Sopenharmony_ci		clocks = <&rk808 1>;
12962306a36Sopenharmony_ci		clock-names = "ext_clock";
13062306a36Sopenharmony_ci		pinctrl-names = "default";
13162306a36Sopenharmony_ci		pinctrl-0 = <&wifi_enable_h>;
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci		/*
13462306a36Sopenharmony_ci		 * On the module itself this is one of these (depending
13562306a36Sopenharmony_ci		 * on the actual card populated):
13662306a36Sopenharmony_ci		 * - SDIO_RESET_L_WL_REG_ON
13762306a36Sopenharmony_ci		 * - PDN (power down when low)
13862306a36Sopenharmony_ci		 */
13962306a36Sopenharmony_ci		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
14062306a36Sopenharmony_ci	};
14162306a36Sopenharmony_ci};
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci&edp {
14462306a36Sopenharmony_ci	status = "okay";
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci	ports {
14762306a36Sopenharmony_ci		edp_out: port@1 {
14862306a36Sopenharmony_ci			reg = <1>;
14962306a36Sopenharmony_ci			#address-cells = <1>;
15062306a36Sopenharmony_ci			#size-cells = <0>;
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci			edp_out_panel: endpoint@0 {
15362306a36Sopenharmony_ci				reg = <0>;
15462306a36Sopenharmony_ci				remote-endpoint = <&panel_in_edp>;
15562306a36Sopenharmony_ci			};
15662306a36Sopenharmony_ci		};
15762306a36Sopenharmony_ci	};
15862306a36Sopenharmony_ci};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci&i2c1 {
16162306a36Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
16262306a36Sopenharmony_ci	i2c-scl-falling-time-ns = <15>;
16362306a36Sopenharmony_ci	status = "okay";
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci	rt5651: rt5651@1a {
16662306a36Sopenharmony_ci		compatible = "rockchip,rt5651";
16762306a36Sopenharmony_ci		reg = <0x1a>;
16862306a36Sopenharmony_ci		clocks = <&cru SCLK_I2S_8CH_OUT>;
16962306a36Sopenharmony_ci		clock-names = "mclk";
17062306a36Sopenharmony_ci		hp-det-gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>;
17162306a36Sopenharmony_ci		spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
17262306a36Sopenharmony_ci		#sound-dai-cells = <0>;
17362306a36Sopenharmony_ci	};
17462306a36Sopenharmony_ci};
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci&i2c4 {
17762306a36Sopenharmony_ci	i2c-scl-rising-time-ns = <600>;
17862306a36Sopenharmony_ci	i2c-scl-falling-time-ns = <20>;
17962306a36Sopenharmony_ci	status = "okay";
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci	accelerometer@68 {
18262306a36Sopenharmony_ci		compatible = "invensense,mpu6500";
18362306a36Sopenharmony_ci		reg = <0x68>;
18462306a36Sopenharmony_ci		interrupt-parent = <&gpio1>;
18562306a36Sopenharmony_ci		interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
18662306a36Sopenharmony_ci	};
18762306a36Sopenharmony_ci};
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci&i2s0 {
19062306a36Sopenharmony_ci	rockchip,playback-channels = <8>;
19162306a36Sopenharmony_ci	rockchip,capture-channels = <8>;
19262306a36Sopenharmony_ci	status = "okay";
19362306a36Sopenharmony_ci};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci&pcie_phy {
19662306a36Sopenharmony_ci	status = "okay";
19762306a36Sopenharmony_ci};
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci&pcie0 {
20062306a36Sopenharmony_ci	ep-gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_HIGH>;
20162306a36Sopenharmony_ci	num-lanes = <4>;
20262306a36Sopenharmony_ci	pinctrl-names = "default";
20362306a36Sopenharmony_ci	pinctrl-0 = <&pcie_clkreqn_cpm>;
20462306a36Sopenharmony_ci	status = "okay";
20562306a36Sopenharmony_ci};
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci&pinctrl {
20862306a36Sopenharmony_ci	sdio-pwrseq {
20962306a36Sopenharmony_ci		wifi_enable_h: wifi-enable-h {
21062306a36Sopenharmony_ci			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
21162306a36Sopenharmony_ci		};
21262306a36Sopenharmony_ci	};
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ci	lcd-panel {
21562306a36Sopenharmony_ci		lcd_panel_reset: lcd-panel-reset {
21662306a36Sopenharmony_ci			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
21762306a36Sopenharmony_ci		};
21862306a36Sopenharmony_ci	};
21962306a36Sopenharmony_ci};
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci&sdio0 {
22262306a36Sopenharmony_ci	bus-width = <4>;
22362306a36Sopenharmony_ci	cap-sd-highspeed;
22462306a36Sopenharmony_ci	cap-sdio-irq;
22562306a36Sopenharmony_ci	clock-frequency = <50000000>;
22662306a36Sopenharmony_ci	keep-power-in-suspend;
22762306a36Sopenharmony_ci	max-frequency = <50000000>;
22862306a36Sopenharmony_ci	mmc-pwrseq = <&sdio_pwrseq>;
22962306a36Sopenharmony_ci	non-removable;
23062306a36Sopenharmony_ci	pinctrl-names = "default";
23162306a36Sopenharmony_ci	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
23262306a36Sopenharmony_ci	sd-uhs-sdr104;
23362306a36Sopenharmony_ci	status = "okay";
23462306a36Sopenharmony_ci};
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci&spdif {
23762306a36Sopenharmony_ci	status = "okay";
23862306a36Sopenharmony_ci};
239