xref: /openbmc/linux/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts (revision 24f68eb5bf14a74027946970a18bc902e19d986a)
178a21c7dSMartijn Braam// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
278a21c7dSMartijn Braam/*
378a21c7dSMartijn Braam * Copyright (c) 2020 Martijn Braam <martijn@brixit.nl>
478a21c7dSMartijn Braam * Copyright (c) 2021 Kamil Trzciński <ayufan@ayufan.eu>
578a21c7dSMartijn Braam */
678a21c7dSMartijn Braam
778a21c7dSMartijn Braam/*
878a21c7dSMartijn Braam * PinePhone Pro datasheet:
978a21c7dSMartijn Braam * https://files.pine64.org/doc/PinePhonePro/PinephonePro-Schematic-V1.0-20211127.pdf
1078a21c7dSMartijn Braam */
1178a21c7dSMartijn Braam
1278a21c7dSMartijn Braam/dts-v1/;
13*d3150ed5SOndrej Jirman#include <dt-bindings/input/gpio-keys.h>
1478a21c7dSMartijn Braam#include <dt-bindings/input/linux-event-codes.h>
1578a21c7dSMartijn Braam#include "rk3399.dtsi"
1678a21c7dSMartijn Braam#include "rk3399-opp.dtsi"
1778a21c7dSMartijn Braam
1878a21c7dSMartijn Braam/ {
1978a21c7dSMartijn Braam	model = "Pine64 PinePhonePro";
2078a21c7dSMartijn Braam	compatible = "pine64,pinephone-pro", "rockchip,rk3399";
2178a21c7dSMartijn Braam	chassis-type = "handset";
2278a21c7dSMartijn Braam
2378a21c7dSMartijn Braam	aliases {
2478a21c7dSMartijn Braam		mmc0 = &sdio0;
2578a21c7dSMartijn Braam		mmc1 = &sdmmc;
2678a21c7dSMartijn Braam		mmc2 = &sdhci;
2778a21c7dSMartijn Braam	};
2878a21c7dSMartijn Braam
2978a21c7dSMartijn Braam	chosen {
3078a21c7dSMartijn Braam		stdout-path = "serial2:115200n8";
3178a21c7dSMartijn Braam	};
3278a21c7dSMartijn Braam
33*d3150ed5SOndrej Jirman	adc-keys {
34*d3150ed5SOndrej Jirman		compatible = "adc-keys";
35*d3150ed5SOndrej Jirman		io-channels = <&saradc 1>;
36*d3150ed5SOndrej Jirman		io-channel-names = "buttons";
37*d3150ed5SOndrej Jirman		keyup-threshold-microvolt = <1600000>;
38*d3150ed5SOndrej Jirman		poll-interval = <100>;
39*d3150ed5SOndrej Jirman
40*d3150ed5SOndrej Jirman		button-up {
41*d3150ed5SOndrej Jirman			label = "Volume Up";
42*d3150ed5SOndrej Jirman			linux,code = <KEY_VOLUMEUP>;
43*d3150ed5SOndrej Jirman			press-threshold-microvolt = <100000>;
44*d3150ed5SOndrej Jirman		};
45*d3150ed5SOndrej Jirman
46*d3150ed5SOndrej Jirman		button-down {
47*d3150ed5SOndrej Jirman			label = "Volume Down";
48*d3150ed5SOndrej Jirman			linux,code = <KEY_VOLUMEDOWN>;
49*d3150ed5SOndrej Jirman			press-threshold-microvolt = <600000>;
50*d3150ed5SOndrej Jirman		};
51*d3150ed5SOndrej Jirman	};
52*d3150ed5SOndrej Jirman
533e987e1fSMartijn Braam	backlight: backlight {
543e987e1fSMartijn Braam		compatible = "pwm-backlight";
553e987e1fSMartijn Braam		pwms = <&pwm0 0 50000 0>;
563e987e1fSMartijn Braam	};
573e987e1fSMartijn Braam
5878a21c7dSMartijn Braam	gpio-keys {
5978a21c7dSMartijn Braam		compatible = "gpio-keys";
6078a21c7dSMartijn Braam		pinctrl-names = "default";
6178a21c7dSMartijn Braam		pinctrl-0 = <&pwrbtn_pin>;
6278a21c7dSMartijn Braam
6378a21c7dSMartijn Braam		key-power {
6478a21c7dSMartijn Braam			debounce-interval = <20>;
6578a21c7dSMartijn Braam			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
6678a21c7dSMartijn Braam			label = "Power";
6778a21c7dSMartijn Braam			linux,code = <KEY_POWER>;
6878a21c7dSMartijn Braam			wakeup-source;
6978a21c7dSMartijn Braam		};
7078a21c7dSMartijn Braam	};
7178a21c7dSMartijn Braam
7278a21c7dSMartijn Braam	vcc_sys: vcc-sys-regulator {
7378a21c7dSMartijn Braam		compatible = "regulator-fixed";
7478a21c7dSMartijn Braam		regulator-name = "vcc_sys";
7578a21c7dSMartijn Braam		regulator-always-on;
7678a21c7dSMartijn Braam		regulator-boot-on;
7778a21c7dSMartijn Braam	};
7878a21c7dSMartijn Braam
7978a21c7dSMartijn Braam	vcc3v3_sys: vcc3v3-sys-regulator {
8078a21c7dSMartijn Braam		compatible = "regulator-fixed";
8178a21c7dSMartijn Braam		regulator-name = "vcc3v3_sys";
8278a21c7dSMartijn Braam		regulator-always-on;
8378a21c7dSMartijn Braam		regulator-boot-on;
8478a21c7dSMartijn Braam		regulator-min-microvolt = <3300000>;
8578a21c7dSMartijn Braam		regulator-max-microvolt = <3300000>;
8678a21c7dSMartijn Braam		vin-supply = <&vcc_sys>;
8778a21c7dSMartijn Braam	};
8878a21c7dSMartijn Braam
8978a21c7dSMartijn Braam	vcca1v8_s3: vcc1v8-s3-regulator {
9078a21c7dSMartijn Braam		compatible = "regulator-fixed";
9178a21c7dSMartijn Braam		regulator-name = "vcca1v8_s3";
9278a21c7dSMartijn Braam		regulator-min-microvolt = <1800000>;
9378a21c7dSMartijn Braam		regulator-max-microvolt = <1800000>;
9478a21c7dSMartijn Braam		vin-supply = <&vcc3v3_sys>;
9578a21c7dSMartijn Braam		regulator-always-on;
9678a21c7dSMartijn Braam		regulator-boot-on;
9778a21c7dSMartijn Braam	};
9878a21c7dSMartijn Braam
9978a21c7dSMartijn Braam	vcc1v8_codec: vcc1v8-codec-regulator {
10078a21c7dSMartijn Braam		compatible = "regulator-fixed";
10178a21c7dSMartijn Braam		enable-active-high;
10278a21c7dSMartijn Braam		gpio = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
10378a21c7dSMartijn Braam		pinctrl-names = "default";
10478a21c7dSMartijn Braam		pinctrl-0 = <&vcc1v8_codec_en>;
10578a21c7dSMartijn Braam		regulator-name = "vcc1v8_codec";
10678a21c7dSMartijn Braam		regulator-min-microvolt = <1800000>;
10778a21c7dSMartijn Braam		regulator-max-microvolt = <1800000>;
10878a21c7dSMartijn Braam		vin-supply = <&vcc3v3_sys>;
10978a21c7dSMartijn Braam	};
110a7e6dbd6STom Fitzhenry
111a7e6dbd6STom Fitzhenry	wifi_pwrseq: sdio-wifi-pwrseq {
112a7e6dbd6STom Fitzhenry		compatible = "mmc-pwrseq-simple";
113a7e6dbd6STom Fitzhenry		clocks = <&rk818 1>;
114a7e6dbd6STom Fitzhenry		clock-names = "ext_clock";
115a7e6dbd6STom Fitzhenry		pinctrl-names = "default";
116a7e6dbd6STom Fitzhenry		pinctrl-0 = <&wifi_enable_h_pin>;
117a7e6dbd6STom Fitzhenry		/*
118a7e6dbd6STom Fitzhenry		 * Wait between power-on and SDIO access for CYP43455
119a7e6dbd6STom Fitzhenry		 * POR circuit.
120a7e6dbd6STom Fitzhenry		 */
121a7e6dbd6STom Fitzhenry		post-power-on-delay-ms = <110>;
122a7e6dbd6STom Fitzhenry		/*
123a7e6dbd6STom Fitzhenry		 * Wait between consecutive toggles for CYP43455 CBUCK
124a7e6dbd6STom Fitzhenry		 * regulator discharge.
125a7e6dbd6STom Fitzhenry		 */
126a7e6dbd6STom Fitzhenry		power-off-delay-us = <10000>;
127a7e6dbd6STom Fitzhenry
128a7e6dbd6STom Fitzhenry		/* WL_REG_ON on module */
129a7e6dbd6STom Fitzhenry		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
130a7e6dbd6STom Fitzhenry	};
1313e987e1fSMartijn Braam
1323e987e1fSMartijn Braam	/* MIPI DSI panel 1.8v supply */
1333e987e1fSMartijn Braam	vcc1v8_lcd: vcc1v8-lcd {
1343e987e1fSMartijn Braam		compatible = "regulator-fixed";
1353e987e1fSMartijn Braam		enable-active-high;
1363e987e1fSMartijn Braam		regulator-name = "vcc1v8_lcd";
1373e987e1fSMartijn Braam		regulator-min-microvolt = <1800000>;
1383e987e1fSMartijn Braam		regulator-max-microvolt = <1800000>;
1393e987e1fSMartijn Braam		vin-supply = <&vcc3v3_sys>;
1403e987e1fSMartijn Braam		gpio = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
1413e987e1fSMartijn Braam	};
1423e987e1fSMartijn Braam
1433e987e1fSMartijn Braam	/* MIPI DSI panel 2.8v supply */
1443e987e1fSMartijn Braam	vcc2v8_lcd: vcc2v8-lcd {
1453e987e1fSMartijn Braam		compatible = "regulator-fixed";
1463e987e1fSMartijn Braam		enable-active-high;
1473e987e1fSMartijn Braam		regulator-name = "vcc2v8_lcd";
1483e987e1fSMartijn Braam		regulator-min-microvolt = <2800000>;
1493e987e1fSMartijn Braam		regulator-max-microvolt = <2800000>;
1503e987e1fSMartijn Braam		vin-supply = <&vcc3v3_sys>;
1513e987e1fSMartijn Braam		gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
1523e987e1fSMartijn Braam	};
15378a21c7dSMartijn Braam};
15478a21c7dSMartijn Braam
15533e24f07SJarrah Gosbell&cpu_alert0 {
15633e24f07SJarrah Gosbell	temperature = <65000>;
15733e24f07SJarrah Gosbell};
15833e24f07SJarrah Gosbell&cpu_alert1 {
15933e24f07SJarrah Gosbell	temperature = <68000>;
16033e24f07SJarrah Gosbell};
16133e24f07SJarrah Gosbell
16278a21c7dSMartijn Braam&cpu_l0 {
16378a21c7dSMartijn Braam	cpu-supply = <&vdd_cpu_l>;
16478a21c7dSMartijn Braam};
16578a21c7dSMartijn Braam
16678a21c7dSMartijn Braam&cpu_l1 {
16778a21c7dSMartijn Braam	cpu-supply = <&vdd_cpu_l>;
16878a21c7dSMartijn Braam};
16978a21c7dSMartijn Braam
17078a21c7dSMartijn Braam&cpu_l2 {
17178a21c7dSMartijn Braam	cpu-supply = <&vdd_cpu_l>;
17278a21c7dSMartijn Braam};
17378a21c7dSMartijn Braam
17478a21c7dSMartijn Braam&cpu_l3 {
17578a21c7dSMartijn Braam	cpu-supply = <&vdd_cpu_l>;
17678a21c7dSMartijn Braam};
17778a21c7dSMartijn Braam
17878a21c7dSMartijn Braam&cpu_b0 {
17978a21c7dSMartijn Braam	cpu-supply = <&vdd_cpu_b>;
18078a21c7dSMartijn Braam};
18178a21c7dSMartijn Braam
18278a21c7dSMartijn Braam&cpu_b1 {
18378a21c7dSMartijn Braam	cpu-supply = <&vdd_cpu_b>;
18478a21c7dSMartijn Braam};
18578a21c7dSMartijn Braam
18678a21c7dSMartijn Braam&emmc_phy {
18778a21c7dSMartijn Braam	status = "okay";
18878a21c7dSMartijn Braam};
18978a21c7dSMartijn Braam
1903e987e1fSMartijn Braam&gpu {
1913e987e1fSMartijn Braam	mali-supply = <&vdd_gpu>;
1923e987e1fSMartijn Braam	status = "okay";
1933e987e1fSMartijn Braam};
1943e987e1fSMartijn Braam
19578a21c7dSMartijn Braam&i2c0 {
19678a21c7dSMartijn Braam	clock-frequency = <400000>;
19778a21c7dSMartijn Braam	i2c-scl-rising-time-ns = <168>;
19878a21c7dSMartijn Braam	i2c-scl-falling-time-ns = <4>;
19978a21c7dSMartijn Braam	status = "okay";
20078a21c7dSMartijn Braam
20178a21c7dSMartijn Braam	rk818: pmic@1c {
20278a21c7dSMartijn Braam		compatible = "rockchip,rk818";
20378a21c7dSMartijn Braam		reg = <0x1c>;
20478a21c7dSMartijn Braam		interrupt-parent = <&gpio1>;
20578a21c7dSMartijn Braam		interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
20678a21c7dSMartijn Braam		#clock-cells = <1>;
20778a21c7dSMartijn Braam		clock-output-names = "xin32k", "rk808-clkout2";
20878a21c7dSMartijn Braam		pinctrl-names = "default";
20978a21c7dSMartijn Braam		pinctrl-0 = <&pmic_int_l>;
21078a21c7dSMartijn Braam		rockchip,system-power-controller;
21178a21c7dSMartijn Braam		wakeup-source;
21278a21c7dSMartijn Braam
21378a21c7dSMartijn Braam		vcc1-supply = <&vcc_sys>;
21478a21c7dSMartijn Braam		vcc2-supply = <&vcc_sys>;
21578a21c7dSMartijn Braam		vcc3-supply = <&vcc_sys>;
21678a21c7dSMartijn Braam		vcc4-supply = <&vcc_sys>;
21778a21c7dSMartijn Braam		vcc6-supply = <&vcc_sys>;
21878a21c7dSMartijn Braam		vcc7-supply = <&vcc3v3_sys>;
21978a21c7dSMartijn Braam		vcc8-supply = <&vcc_sys>;
22078a21c7dSMartijn Braam		vcc9-supply = <&vcc3v3_sys>;
22178a21c7dSMartijn Braam
22278a21c7dSMartijn Braam		regulators {
22378a21c7dSMartijn Braam			vdd_cpu_l: DCDC_REG1 {
22478a21c7dSMartijn Braam				regulator-name = "vdd_cpu_l";
22578a21c7dSMartijn Braam				regulator-always-on;
22678a21c7dSMartijn Braam				regulator-boot-on;
22778a21c7dSMartijn Braam				regulator-min-microvolt = <875000>;
22878a21c7dSMartijn Braam				regulator-max-microvolt = <975000>;
22978a21c7dSMartijn Braam				regulator-ramp-delay = <6001>;
23078a21c7dSMartijn Braam				regulator-state-mem {
23178a21c7dSMartijn Braam					regulator-off-in-suspend;
23278a21c7dSMartijn Braam				};
23378a21c7dSMartijn Braam			};
23478a21c7dSMartijn Braam
23578a21c7dSMartijn Braam			vdd_center: DCDC_REG2 {
23678a21c7dSMartijn Braam				regulator-name = "vdd_center";
23778a21c7dSMartijn Braam				regulator-always-on;
23878a21c7dSMartijn Braam				regulator-boot-on;
23978a21c7dSMartijn Braam				regulator-min-microvolt = <800000>;
24078a21c7dSMartijn Braam				regulator-max-microvolt = <1000000>;
24178a21c7dSMartijn Braam				regulator-ramp-delay = <6001>;
24278a21c7dSMartijn Braam				regulator-state-mem {
24378a21c7dSMartijn Braam					regulator-off-in-suspend;
24478a21c7dSMartijn Braam				};
24578a21c7dSMartijn Braam			};
24678a21c7dSMartijn Braam
24778a21c7dSMartijn Braam			vcc_ddr: DCDC_REG3 {
24878a21c7dSMartijn Braam				regulator-name = "vcc_ddr";
24978a21c7dSMartijn Braam				regulator-always-on;
25078a21c7dSMartijn Braam				regulator-boot-on;
25178a21c7dSMartijn Braam				regulator-state-mem {
25278a21c7dSMartijn Braam					regulator-on-in-suspend;
25378a21c7dSMartijn Braam				};
25478a21c7dSMartijn Braam			};
25578a21c7dSMartijn Braam
25678a21c7dSMartijn Braam			vcc_1v8: DCDC_REG4 {
25778a21c7dSMartijn Braam				regulator-name = "vcc_1v8";
25878a21c7dSMartijn Braam				regulator-always-on;
25978a21c7dSMartijn Braam				regulator-boot-on;
26078a21c7dSMartijn Braam				regulator-min-microvolt = <1800000>;
26178a21c7dSMartijn Braam				regulator-max-microvolt = <1800000>;
26278a21c7dSMartijn Braam				regulator-state-mem {
26378a21c7dSMartijn Braam					regulator-on-in-suspend;
26478a21c7dSMartijn Braam				};
26578a21c7dSMartijn Braam			};
26678a21c7dSMartijn Braam
26778a21c7dSMartijn Braam			vcca3v0_codec: LDO_REG1 {
26878a21c7dSMartijn Braam				regulator-name = "vcca3v0_codec";
26978a21c7dSMartijn Braam				regulator-min-microvolt = <3000000>;
27078a21c7dSMartijn Braam				regulator-max-microvolt = <3000000>;
27178a21c7dSMartijn Braam			};
27278a21c7dSMartijn Braam
27378a21c7dSMartijn Braam			vcc3v0_touch: LDO_REG2 {
27478a21c7dSMartijn Braam				regulator-name = "vcc3v0_touch";
27578a21c7dSMartijn Braam				regulator-min-microvolt = <3000000>;
27678a21c7dSMartijn Braam				regulator-max-microvolt = <3000000>;
27778a21c7dSMartijn Braam			};
27878a21c7dSMartijn Braam
27978a21c7dSMartijn Braam			vcca1v8_codec: LDO_REG3 {
28078a21c7dSMartijn Braam				regulator-name = "vcca1v8_codec";
28178a21c7dSMartijn Braam				regulator-min-microvolt = <1800000>;
28278a21c7dSMartijn Braam				regulator-max-microvolt = <1800000>;
28378a21c7dSMartijn Braam			};
28478a21c7dSMartijn Braam
28578a21c7dSMartijn Braam			rk818_pwr_on: LDO_REG4 {
28678a21c7dSMartijn Braam				regulator-name = "rk818_pwr_on";
28778a21c7dSMartijn Braam				regulator-always-on;
28878a21c7dSMartijn Braam				regulator-boot-on;
28978a21c7dSMartijn Braam				regulator-min-microvolt = <3300000>;
29078a21c7dSMartijn Braam				regulator-max-microvolt = <3300000>;
29178a21c7dSMartijn Braam				regulator-state-mem {
29278a21c7dSMartijn Braam					regulator-on-in-suspend;
29378a21c7dSMartijn Braam				};
29478a21c7dSMartijn Braam			};
29578a21c7dSMartijn Braam
29678a21c7dSMartijn Braam			vcc_3v0: LDO_REG5 {
29778a21c7dSMartijn Braam				regulator-name = "vcc_3v0";
29878a21c7dSMartijn Braam				regulator-always-on;
29978a21c7dSMartijn Braam				regulator-boot-on;
30078a21c7dSMartijn Braam				regulator-min-microvolt = <3000000>;
30178a21c7dSMartijn Braam				regulator-max-microvolt = <3000000>;
30278a21c7dSMartijn Braam				regulator-state-mem {
30378a21c7dSMartijn Braam					regulator-on-in-suspend;
30478a21c7dSMartijn Braam				};
30578a21c7dSMartijn Braam			};
30678a21c7dSMartijn Braam
30778a21c7dSMartijn Braam			vcc_1v5: LDO_REG6 {
30878a21c7dSMartijn Braam				regulator-name = "vcc_1v5";
30978a21c7dSMartijn Braam				regulator-always-on;
31078a21c7dSMartijn Braam				regulator-boot-on;
31178a21c7dSMartijn Braam				regulator-min-microvolt = <1500000>;
31278a21c7dSMartijn Braam				regulator-max-microvolt = <1500000>;
31378a21c7dSMartijn Braam				regulator-state-mem {
31478a21c7dSMartijn Braam					regulator-on-in-suspend;
31578a21c7dSMartijn Braam				};
31678a21c7dSMartijn Braam			};
31778a21c7dSMartijn Braam
31878a21c7dSMartijn Braam			vcc1v8_dvp: LDO_REG7 {
31978a21c7dSMartijn Braam				regulator-name = "vcc1v8_dvp";
32078a21c7dSMartijn Braam				regulator-min-microvolt = <1800000>;
32178a21c7dSMartijn Braam				regulator-max-microvolt = <1800000>;
32278a21c7dSMartijn Braam			};
32378a21c7dSMartijn Braam
32478a21c7dSMartijn Braam			vcc3v3_s3: LDO_REG8 {
32578a21c7dSMartijn Braam				regulator-name = "vcc3v3_s3";
32678a21c7dSMartijn Braam				regulator-always-on;
32778a21c7dSMartijn Braam				regulator-boot-on;
32878a21c7dSMartijn Braam				regulator-min-microvolt = <3300000>;
32978a21c7dSMartijn Braam				regulator-max-microvolt = <3300000>;
33078a21c7dSMartijn Braam				regulator-state-mem {
33178a21c7dSMartijn Braam					regulator-off-in-suspend;
33278a21c7dSMartijn Braam				};
33378a21c7dSMartijn Braam			};
33478a21c7dSMartijn Braam
33578a21c7dSMartijn Braam			vccio_sd: LDO_REG9 {
33678a21c7dSMartijn Braam				regulator-name = "vccio_sd";
33702474496SOndrej Jirman				regulator-min-microvolt = <1800000>;
33802474496SOndrej Jirman				regulator-max-microvolt = <3300000>;
33978a21c7dSMartijn Braam			};
34078a21c7dSMartijn Braam
34178a21c7dSMartijn Braam			vcc3v3_s0: SWITCH_REG {
34278a21c7dSMartijn Braam				regulator-name = "vcc3v3_s0";
34378a21c7dSMartijn Braam				regulator-always-on;
34478a21c7dSMartijn Braam				regulator-boot-on;
34578a21c7dSMartijn Braam				regulator-state-mem {
34678a21c7dSMartijn Braam					regulator-on-in-suspend;
34778a21c7dSMartijn Braam				};
34878a21c7dSMartijn Braam			};
34978a21c7dSMartijn Braam		};
35078a21c7dSMartijn Braam	};
35178a21c7dSMartijn Braam
35278a21c7dSMartijn Braam	vdd_cpu_b: regulator@40 {
35378a21c7dSMartijn Braam		compatible = "silergy,syr827";
35478a21c7dSMartijn Braam		reg = <0x40>;
35578a21c7dSMartijn Braam		fcs,suspend-voltage-selector = <1>;
35678a21c7dSMartijn Braam		pinctrl-names = "default";
35778a21c7dSMartijn Braam		pinctrl-0 = <&vsel1_pin>;
35878a21c7dSMartijn Braam		regulator-name = "vdd_cpu_b";
35978a21c7dSMartijn Braam		regulator-min-microvolt = <875000>;
36078a21c7dSMartijn Braam		regulator-max-microvolt = <1150000>;
36178a21c7dSMartijn Braam		regulator-ramp-delay = <1000>;
36278a21c7dSMartijn Braam		regulator-always-on;
36378a21c7dSMartijn Braam		regulator-boot-on;
36478a21c7dSMartijn Braam
36578a21c7dSMartijn Braam		regulator-state-mem {
36678a21c7dSMartijn Braam			regulator-off-in-suspend;
36778a21c7dSMartijn Braam		};
36878a21c7dSMartijn Braam	};
36978a21c7dSMartijn Braam
37078a21c7dSMartijn Braam	vdd_gpu: regulator@41 {
37178a21c7dSMartijn Braam		compatible = "silergy,syr828";
37278a21c7dSMartijn Braam		reg = <0x41>;
37378a21c7dSMartijn Braam		fcs,suspend-voltage-selector = <1>;
37478a21c7dSMartijn Braam		pinctrl-names = "default";
37578a21c7dSMartijn Braam		pinctrl-0 = <&vsel2_pin>;
37678a21c7dSMartijn Braam		regulator-name = "vdd_gpu";
37778a21c7dSMartijn Braam		regulator-min-microvolt = <875000>;
37878a21c7dSMartijn Braam		regulator-max-microvolt = <975000>;
37978a21c7dSMartijn Braam		regulator-ramp-delay = <1000>;
38078a21c7dSMartijn Braam		regulator-always-on;
38178a21c7dSMartijn Braam		regulator-boot-on;
38278a21c7dSMartijn Braam
38378a21c7dSMartijn Braam		regulator-state-mem {
38478a21c7dSMartijn Braam			regulator-off-in-suspend;
38578a21c7dSMartijn Braam		};
38678a21c7dSMartijn Braam	};
38778a21c7dSMartijn Braam};
38878a21c7dSMartijn Braam
38917a23ce9SMartijn Braam&i2c3 {
39017a23ce9SMartijn Braam	i2c-scl-rising-time-ns = <450>;
39117a23ce9SMartijn Braam	i2c-scl-falling-time-ns = <15>;
39217a23ce9SMartijn Braam	status = "okay";
39317a23ce9SMartijn Braam
39417a23ce9SMartijn Braam	touchscreen@14 {
39517a23ce9SMartijn Braam		compatible = "goodix,gt1158";
39617a23ce9SMartijn Braam		reg = <0x14>;
39717a23ce9SMartijn Braam		interrupt-parent = <&gpio3>;
39817a23ce9SMartijn Braam		interrupts = <RK_PB5 IRQ_TYPE_EDGE_RISING>;
39917a23ce9SMartijn Braam		irq-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
40017a23ce9SMartijn Braam		reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_HIGH>;
40117a23ce9SMartijn Braam		AVDD28-supply = <&vcc3v0_touch>;
40217a23ce9SMartijn Braam		VDDIO-supply = <&vcc3v0_touch>;
40317a23ce9SMartijn Braam		touchscreen-size-x = <720>;
40417a23ce9SMartijn Braam		touchscreen-size-y = <1440>;
40517a23ce9SMartijn Braam	};
40617a23ce9SMartijn Braam};
40717a23ce9SMartijn Braam
40878a21c7dSMartijn Braam&cluster0_opp {
40978a21c7dSMartijn Braam	opp04 {
41078a21c7dSMartijn Braam		status = "disabled";
41178a21c7dSMartijn Braam	};
41278a21c7dSMartijn Braam
41378a21c7dSMartijn Braam	opp05 {
41478a21c7dSMartijn Braam		status = "disabled";
41578a21c7dSMartijn Braam	};
41678a21c7dSMartijn Braam};
41778a21c7dSMartijn Braam
41878a21c7dSMartijn Braam&cluster1_opp {
41978a21c7dSMartijn Braam	opp06 {
42078a21c7dSMartijn Braam		opp-hz = /bits/ 64 <1500000000>;
42178a21c7dSMartijn Braam		opp-microvolt = <1100000 1100000 1150000>;
42278a21c7dSMartijn Braam	};
42378a21c7dSMartijn Braam
42478a21c7dSMartijn Braam	opp07 {
42578a21c7dSMartijn Braam		status = "disabled";
42678a21c7dSMartijn Braam	};
42778a21c7dSMartijn Braam};
42878a21c7dSMartijn Braam
42978a21c7dSMartijn Braam&io_domains {
43078a21c7dSMartijn Braam	bt656-supply = <&vcc1v8_dvp>;
43178a21c7dSMartijn Braam	audio-supply = <&vcca1v8_codec>;
43278a21c7dSMartijn Braam	sdmmc-supply = <&vccio_sd>;
43378a21c7dSMartijn Braam	gpio1830-supply = <&vcc_3v0>;
43478a21c7dSMartijn Braam	status = "okay";
43578a21c7dSMartijn Braam};
43678a21c7dSMartijn Braam
4373e987e1fSMartijn Braam&mipi_dsi {
4383e987e1fSMartijn Braam	status = "okay";
4393e987e1fSMartijn Braam	clock-master;
4403e987e1fSMartijn Braam
4413e987e1fSMartijn Braam	ports {
4423e987e1fSMartijn Braam		mipi_out: port@1 {
4433e987e1fSMartijn Braam			#address-cells = <0>;
4443e987e1fSMartijn Braam			#size-cells = <0>;
4453e987e1fSMartijn Braam			reg = <1>;
4463e987e1fSMartijn Braam
4473e987e1fSMartijn Braam			mipi_out_panel: endpoint {
4483e987e1fSMartijn Braam				remote-endpoint = <&mipi_in_panel>;
4493e987e1fSMartijn Braam			};
4503e987e1fSMartijn Braam		};
4513e987e1fSMartijn Braam	};
4523e987e1fSMartijn Braam
4533e987e1fSMartijn Braam	panel@0 {
4543e987e1fSMartijn Braam		compatible = "hannstar,hsd060bhw4";
4553e987e1fSMartijn Braam		reg = <0>;
4563e987e1fSMartijn Braam		backlight = <&backlight>;
4573e987e1fSMartijn Braam		reset-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_LOW>;
4583e987e1fSMartijn Braam		vcc-supply = <&vcc2v8_lcd>;
4593e987e1fSMartijn Braam		iovcc-supply = <&vcc1v8_lcd>;
4603e987e1fSMartijn Braam		pinctrl-names = "default";
4613e987e1fSMartijn Braam
4623e987e1fSMartijn Braam		port {
4633e987e1fSMartijn Braam			mipi_in_panel: endpoint {
4643e987e1fSMartijn Braam				remote-endpoint = <&mipi_out_panel>;
4653e987e1fSMartijn Braam			};
4663e987e1fSMartijn Braam		};
4673e987e1fSMartijn Braam	};
4683e987e1fSMartijn Braam};
4693e987e1fSMartijn Braam
47078a21c7dSMartijn Braam&pmu_io_domains {
47178a21c7dSMartijn Braam	pmu1830-supply = <&vcc_1v8>;
47278a21c7dSMartijn Braam	status = "okay";
47378a21c7dSMartijn Braam};
47478a21c7dSMartijn Braam
47578a21c7dSMartijn Braam&pinctrl {
47678a21c7dSMartijn Braam	buttons {
47778a21c7dSMartijn Braam		pwrbtn_pin: pwrbtn-pin {
47878a21c7dSMartijn Braam			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
47978a21c7dSMartijn Braam		};
48078a21c7dSMartijn Braam	};
48178a21c7dSMartijn Braam
48278a21c7dSMartijn Braam	pmic {
48378a21c7dSMartijn Braam		pmic_int_l: pmic-int-l {
48478a21c7dSMartijn Braam			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
48578a21c7dSMartijn Braam		};
48678a21c7dSMartijn Braam
48778a21c7dSMartijn Braam		vsel1_pin: vsel1-pin {
48878a21c7dSMartijn Braam			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
48978a21c7dSMartijn Braam		};
49078a21c7dSMartijn Braam
49178a21c7dSMartijn Braam		vsel2_pin: vsel2-pin {
49278a21c7dSMartijn Braam			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
49378a21c7dSMartijn Braam		};
49478a21c7dSMartijn Braam	};
49578a21c7dSMartijn Braam
496a7e6dbd6STom Fitzhenry	sdio-pwrseq {
497a7e6dbd6STom Fitzhenry		wifi_enable_h_pin: wifi-enable-h-pin {
498a7e6dbd6STom Fitzhenry			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
499a7e6dbd6STom Fitzhenry		};
500a7e6dbd6STom Fitzhenry	};
501a7e6dbd6STom Fitzhenry
50278a21c7dSMartijn Braam	sound {
50378a21c7dSMartijn Braam		vcc1v8_codec_en: vcc1v8-codec-en {
50478a21c7dSMartijn Braam			rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
50578a21c7dSMartijn Braam		};
50678a21c7dSMartijn Braam	};
507a7e6dbd6STom Fitzhenry
508a7e6dbd6STom Fitzhenry	wireless-bluetooth {
509a7e6dbd6STom Fitzhenry		bt_wake_pin: bt-wake-pin {
510a7e6dbd6STom Fitzhenry			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
511a7e6dbd6STom Fitzhenry		};
512a7e6dbd6STom Fitzhenry
513a7e6dbd6STom Fitzhenry		bt_host_wake_pin: bt-host-wake-pin {
514a7e6dbd6STom Fitzhenry			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
515a7e6dbd6STom Fitzhenry		};
516a7e6dbd6STom Fitzhenry
517a7e6dbd6STom Fitzhenry		bt_reset_pin: bt-reset-pin {
518a7e6dbd6STom Fitzhenry			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
519a7e6dbd6STom Fitzhenry		};
520a7e6dbd6STom Fitzhenry	};
521a7e6dbd6STom Fitzhenry};
522a7e6dbd6STom Fitzhenry
523a7e6dbd6STom Fitzhenry&sdio0 {
524a7e6dbd6STom Fitzhenry	bus-width = <4>;
525a7e6dbd6STom Fitzhenry	cap-sd-highspeed;
526a7e6dbd6STom Fitzhenry	cap-sdio-irq;
527a7e6dbd6STom Fitzhenry	disable-wp;
528a7e6dbd6STom Fitzhenry	keep-power-in-suspend;
529a7e6dbd6STom Fitzhenry	mmc-pwrseq = <&wifi_pwrseq>;
530a7e6dbd6STom Fitzhenry	non-removable;
531a7e6dbd6STom Fitzhenry	pinctrl-names = "default";
532a7e6dbd6STom Fitzhenry	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
533a7e6dbd6STom Fitzhenry	sd-uhs-sdr104;
534a7e6dbd6STom Fitzhenry	status = "okay";
53578a21c7dSMartijn Braam};
53678a21c7dSMartijn Braam
5373e987e1fSMartijn Braam&pwm0 {
5383e987e1fSMartijn Braam	status = "okay";
5393e987e1fSMartijn Braam};
5403e987e1fSMartijn Braam
541*d3150ed5SOndrej Jirman&saradc {
542*d3150ed5SOndrej Jirman	vref-supply = <&vcca1v8_s3>;
543*d3150ed5SOndrej Jirman	status = "okay";
544*d3150ed5SOndrej Jirman};
545*d3150ed5SOndrej Jirman
54678a21c7dSMartijn Braam&sdmmc {
54778a21c7dSMartijn Braam	bus-width = <4>;
54878a21c7dSMartijn Braam	cap-sd-highspeed;
54978a21c7dSMartijn Braam	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
55078a21c7dSMartijn Braam	disable-wp;
55178a21c7dSMartijn Braam	max-frequency = <150000000>;
55278a21c7dSMartijn Braam	pinctrl-names = "default";
55378a21c7dSMartijn Braam	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
55478a21c7dSMartijn Braam	vmmc-supply = <&vcc3v3_sys>;
55578a21c7dSMartijn Braam	vqmmc-supply = <&vccio_sd>;
55678a21c7dSMartijn Braam	status = "okay";
55778a21c7dSMartijn Braam};
55878a21c7dSMartijn Braam
55978a21c7dSMartijn Braam&sdhci {
56078a21c7dSMartijn Braam	bus-width = <8>;
56178a21c7dSMartijn Braam	mmc-hs200-1_8v;
56278a21c7dSMartijn Braam	non-removable;
56378a21c7dSMartijn Braam	status = "okay";
56478a21c7dSMartijn Braam};
56578a21c7dSMartijn Braam
56678a21c7dSMartijn Braam&tsadc {
56778a21c7dSMartijn Braam	rockchip,hw-tshut-mode = <1>;
56878a21c7dSMartijn Braam	rockchip,hw-tshut-polarity = <1>;
56978a21c7dSMartijn Braam	status = "okay";
57078a21c7dSMartijn Braam};
57178a21c7dSMartijn Braam
572a7e6dbd6STom Fitzhenry&uart0 {
573a7e6dbd6STom Fitzhenry	pinctrl-names = "default";
574a7e6dbd6STom Fitzhenry	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
575a7e6dbd6STom Fitzhenry	uart-has-rtscts;
576a7e6dbd6STom Fitzhenry	status = "okay";
577a7e6dbd6STom Fitzhenry
578a7e6dbd6STom Fitzhenry	bluetooth {
579a7e6dbd6STom Fitzhenry		compatible = "brcm,bcm4345c5";
580a7e6dbd6STom Fitzhenry		clocks = <&rk818 1>;
581a7e6dbd6STom Fitzhenry		clock-names = "lpo";
582a7e6dbd6STom Fitzhenry		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
583a7e6dbd6STom Fitzhenry		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
584a7e6dbd6STom Fitzhenry		max-speed = <1500000>;
585a7e6dbd6STom Fitzhenry		pinctrl-names = "default";
586a7e6dbd6STom Fitzhenry		pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
587a7e6dbd6STom Fitzhenry		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
588a7e6dbd6STom Fitzhenry		vbat-supply = <&vcc3v3_sys>;
589a7e6dbd6STom Fitzhenry		vddio-supply = <&vcc_1v8>;
590a7e6dbd6STom Fitzhenry	};
591a7e6dbd6STom Fitzhenry};
592a7e6dbd6STom Fitzhenry
59378a21c7dSMartijn Braam&uart2 {
59478a21c7dSMartijn Braam	status = "okay";
59578a21c7dSMartijn Braam};
5963e987e1fSMartijn Braam
5973e987e1fSMartijn Braam&vopb {
5983e987e1fSMartijn Braam	status = "okay";
5993e987e1fSMartijn Braam	assigned-clocks = <&cru DCLK_VOP0_DIV>, <&cru DCLK_VOP0>,
6003e987e1fSMartijn Braam			  <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
6013e987e1fSMartijn Braam	assigned-clock-rates = <0>, <0>, <400000000>, <100000000>;
6023e987e1fSMartijn Braam	assigned-clock-parents = <&cru PLL_GPLL>, <&cru DCLK_VOP0_DIV>;
6033e987e1fSMartijn Braam};
6043e987e1fSMartijn Braam
6053e987e1fSMartijn Braam&vopb_mmu {
6063e987e1fSMartijn Braam	status = "okay";
6073e987e1fSMartijn Braam};
6083e987e1fSMartijn Braam
6093e987e1fSMartijn Braam&vopl {
6103e987e1fSMartijn Braam	status = "okay";
6113e987e1fSMartijn Braam	assigned-clocks = <&cru DCLK_VOP1_DIV>, <&cru DCLK_VOP1>,
6123e987e1fSMartijn Braam			  <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
6133e987e1fSMartijn Braam	assigned-clock-rates = <0>, <0>, <400000000>, <100000000>;
6143e987e1fSMartijn Braam	assigned-clock-parents = <&cru PLL_GPLL>, <&cru DCLK_VOP1_DIV>;
6153e987e1fSMartijn Braam};
6163e987e1fSMartijn Braam
6173e987e1fSMartijn Braam&vopl_mmu {
6183e987e1fSMartijn Braam	status = "okay";
6193e987e1fSMartijn Braam};
620