cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

rk3399-pinebook-pro.dts (22960B)


      1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2/*
      3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
      4 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
      5 * Copyright (c) 2020 Tobias Schramm <t.schramm@manjaro.org>
      6 */
      7
      8/dts-v1/;
      9#include <dt-bindings/input/gpio-keys.h>
     10#include <dt-bindings/input/linux-event-codes.h>
     11#include <dt-bindings/pwm/pwm.h>
     12#include <dt-bindings/usb/pd.h>
     13#include <dt-bindings/leds/common.h>
     14#include "rk3399.dtsi"
     15#include "rk3399-opp.dtsi"
     16
     17/ {
     18	model = "Pine64 Pinebook Pro";
     19	compatible = "pine64,pinebook-pro", "rockchip,rk3399";
     20	chassis-type = "laptop";
     21
     22	aliases {
     23		mmc0 = &sdio0;
     24		mmc1 = &sdmmc;
     25		mmc2 = &sdhci;
     26	};
     27
     28	chosen {
     29		stdout-path = "serial2:1500000n8";
     30	};
     31
     32	backlight: edp-backlight {
     33		compatible = "pwm-backlight";
     34		power-supply = <&vcc_12v>;
     35		pwms = <&pwm0 0 740740 0>;
     36	};
     37
     38	bat: battery {
     39		compatible = "simple-battery";
     40		charge-full-design-microamp-hours = <9800000>;
     41		voltage-max-design-microvolt = <4350000>;
     42		voltage-min-design-microvolt = <3000000>;
     43	};
     44
     45	edp_panel: edp-panel {
     46		compatible = "boe,nv140fhmn49";
     47		backlight = <&backlight>;
     48		enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
     49		pinctrl-names = "default";
     50		pinctrl-0 = <&panel_en_pin>;
     51		power-supply = <&vcc3v3_panel>;
     52
     53		ports {
     54			#address-cells = <1>;
     55			#size-cells = <0>;
     56
     57			port@0 {
     58				reg = <0>;
     59				#address-cells = <1>;
     60				#size-cells = <0>;
     61
     62				panel_in_edp: endpoint@0 {
     63					reg = <0>;
     64					remote-endpoint = <&edp_out_panel>;
     65				};
     66			};
     67		};
     68	};
     69
     70	/*
     71	 * Use separate nodes for gpio-keys to allow for selective deactivation
     72	 * of wakeup sources via sysfs without disabling the whole key
     73	 */
     74	gpio-key-lid {
     75		compatible = "gpio-keys";
     76		pinctrl-names = "default";
     77		pinctrl-0 = <&lidbtn_pin>;
     78
     79		lid {
     80			debounce-interval = <20>;
     81			gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>;
     82			label = "Lid";
     83			linux,code = <SW_LID>;
     84			linux,input-type = <EV_SW>;
     85			wakeup-event-action = <EV_ACT_DEASSERTED>;
     86			wakeup-source;
     87		};
     88	};
     89
     90	gpio-key-power {
     91		compatible = "gpio-keys";
     92		pinctrl-names = "default";
     93		pinctrl-0 = <&pwrbtn_pin>;
     94
     95		power {
     96			debounce-interval = <20>;
     97			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
     98			label = "Power";
     99			linux,code = <KEY_POWER>;
    100			wakeup-source;
    101		};
    102	};
    103
    104	leds {
    105		compatible = "gpio-leds";
    106		pinctrl-names = "default";
    107		pinctrl-0 = <&pwr_led_pin &slp_led_pin>;
    108
    109		green_led: led-0 {
    110			color = <LED_COLOR_ID_GREEN>;
    111			default-state = "on";
    112			function = LED_FUNCTION_POWER;
    113			gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
    114			label = "green:power";
    115		};
    116
    117		red_led: led-1 {
    118			color = <LED_COLOR_ID_RED>;
    119			default-state = "off";
    120			function = LED_FUNCTION_STANDBY;
    121			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
    122			label = "red:standby";
    123			panic-indicator;
    124			retain-state-suspended;
    125		};
    126	};
    127
    128	/* Power sequence for SDIO WiFi module */
    129	sdio_pwrseq: sdio-pwrseq {
    130		compatible = "mmc-pwrseq-simple";
    131		clocks = <&rk808 1>;
    132		clock-names = "ext_clock";
    133		pinctrl-names = "default";
    134		pinctrl-0 = <&wifi_enable_h_pin>;
    135		post-power-on-delay-ms = <100>;
    136		power-off-delay-us = <500000>;
    137
    138		/* WL_REG_ON on module */
    139		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
    140	};
    141
    142	/* Audio components */
    143	es8316-sound {
    144		compatible = "simple-audio-card";
    145		pinctrl-names = "default";
    146		pinctrl-0 = <&hp_det_pin>;
    147		simple-audio-card,name = "rockchip,es8316-codec";
    148		simple-audio-card,format = "i2s";
    149		simple-audio-card,mclk-fs = <256>;
    150
    151		simple-audio-card,widgets =
    152			"Microphone", "Mic Jack",
    153			"Headphone", "Headphones",
    154			"Speaker", "Speaker";
    155		simple-audio-card,routing =
    156			"MIC1", "Mic Jack",
    157			"Headphones", "HPOL",
    158			"Headphones", "HPOR",
    159			"Speaker Amplifier INL", "HPOL",
    160			"Speaker Amplifier INR", "HPOR",
    161			"Speaker", "Speaker Amplifier OUTL",
    162			"Speaker", "Speaker Amplifier OUTR";
    163
    164		simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
    165		simple-audio-card,aux-devs = <&speaker_amp>;
    166		simple-audio-card,pin-switches = "Speaker";
    167
    168		simple-audio-card,cpu {
    169			sound-dai = <&i2s1>;
    170		};
    171
    172		simple-audio-card,codec {
    173			sound-dai = <&es8316>;
    174		};
    175	};
    176
    177	speaker_amp: speaker-amplifier {
    178		compatible = "simple-audio-amplifier";
    179		enable-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
    180		sound-name-prefix = "Speaker Amplifier";
    181		VCC-supply = <&pa_5v>;
    182	};
    183
    184	/* Power tree */
    185	/* Root power source */
    186	vcc_sysin: vcc-sysin {
    187		compatible = "regulator-fixed";
    188		regulator-name = "vcc_sysin";
    189		regulator-always-on;
    190		regulator-boot-on;
    191	};
    192
    193	/* Regulators supplied by vcc_sysin */
    194	/* LCD backlight supply */
    195	vcc_12v: vcc-12v {
    196		compatible = "regulator-fixed";
    197		regulator-name = "vcc_12v";
    198		regulator-always-on;
    199		regulator-boot-on;
    200		regulator-min-microvolt = <12000000>;
    201		regulator-max-microvolt = <12000000>;
    202		vin-supply = <&vcc_sysin>;
    203
    204		regulator-state-mem {
    205			regulator-off-in-suspend;
    206		};
    207	};
    208
    209	/* Main 3.3 V supply */
    210	vcc3v3_sys: wifi_bat: vcc3v3-sys {
    211		compatible = "regulator-fixed";
    212		regulator-name = "vcc3v3_sys";
    213		regulator-always-on;
    214		regulator-boot-on;
    215		regulator-min-microvolt = <3300000>;
    216		regulator-max-microvolt = <3300000>;
    217		vin-supply = <&vcc_sysin>;
    218
    219		regulator-state-mem {
    220			regulator-on-in-suspend;
    221		};
    222	};
    223
    224	/* 5 V USB power supply */
    225	vcc5v0_usb: pa_5v: vcc5v0-usb-regulator {
    226		compatible = "regulator-fixed";
    227		enable-active-high;
    228		gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
    229		pinctrl-names = "default";
    230		pinctrl-0 = <&pwr_5v_pin>;
    231		regulator-name = "vcc5v0_usb";
    232		regulator-always-on;
    233		regulator-min-microvolt = <5000000>;
    234		regulator-max-microvolt = <5000000>;
    235		vin-supply = <&vcc_sysin>;
    236
    237		regulator-state-mem {
    238			regulator-off-in-suspend;
    239		};
    240	};
    241
    242	/* RK3399 logic supply */
    243	vdd_log: vdd-log {
    244		compatible = "pwm-regulator";
    245		pwms = <&pwm2 0 25000 1>;
    246		pwm-supply = <&vcc_sysin>;
    247		regulator-name = "vdd_log";
    248		regulator-always-on;
    249		regulator-boot-on;
    250		regulator-min-microvolt = <800000>;
    251		regulator-max-microvolt = <1400000>;
    252
    253		regulator-state-mem {
    254			regulator-on-in-suspend;
    255		};
    256	};
    257
    258	/* Regulators supplied by vcc3v3_sys */
    259	/* 0.9 V supply, always on */
    260	vcc_0v9: vcc-0v9 {
    261		compatible = "regulator-fixed";
    262		regulator-name = "vcc_0v9";
    263		regulator-always-on;
    264		regulator-boot-on;
    265		regulator-min-microvolt = <900000>;
    266		regulator-max-microvolt = <900000>;
    267		vin-supply = <&vcc3v3_sys>;
    268	};
    269
    270	/* S3 1.8 V supply, switched by vcc1v8_s3 */
    271	vcca1v8_s3: vcc1v8-s3 {
    272		compatible = "regulator-fixed";
    273		regulator-name = "vcca1v8_s3";
    274		regulator-always-on;
    275		regulator-boot-on;
    276		regulator-min-microvolt = <1800000>;
    277		regulator-max-microvolt = <1800000>;
    278		vin-supply = <&vcc3v3_sys>;
    279	};
    280
    281	/* micro SD card power */
    282	vcc3v0_sd: vcc3v0-sd {
    283		compatible = "regulator-fixed";
    284		enable-active-high;
    285		gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
    286		pinctrl-names = "default";
    287		pinctrl-0 = <&sdmmc0_pwr_h_pin>;
    288		regulator-name = "vcc3v0_sd";
    289		regulator-always-on;
    290		regulator-min-microvolt = <3000000>;
    291		regulator-max-microvolt = <3000000>;
    292		vin-supply = <&vcc3v3_sys>;
    293
    294		regulator-state-mem {
    295			regulator-off-in-suspend;
    296		};
    297	};
    298
    299	/* LCD panel power, called VCC3V3_S0 in schematic */
    300	vcc3v3_panel: vcc3v3-panel {
    301		compatible = "regulator-fixed";
    302		enable-active-high;
    303		gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
    304		pinctrl-names = "default";
    305		pinctrl-0 = <&lcdvcc_en_pin>;
    306		regulator-name = "vcc3v3_panel";
    307		regulator-always-on;
    308		regulator-min-microvolt = <3300000>;
    309		regulator-max-microvolt = <3300000>;
    310		regulator-enable-ramp-delay = <100000>;
    311		vin-supply = <&vcc3v3_sys>;
    312
    313		regulator-state-mem {
    314			regulator-off-in-suspend;
    315		};
    316	};
    317
    318	/* M.2 adapter power, switched by vcc1v8_s3 */
    319	vcc3v3_ssd: vcc3v3-ssd {
    320		compatible = "regulator-fixed";
    321		regulator-name = "vcc3v3_ssd";
    322		regulator-min-microvolt = <3300000>;
    323		regulator-max-microvolt = <3300000>;
    324		vin-supply = <&vcc3v3_sys>;
    325	};
    326
    327	/* Regulators supplied by vcc5v0_usb */
    328	/* USB 3 port power supply regulator  */
    329	vcc5v0_otg: vcc5v0-otg {
    330		compatible = "regulator-fixed";
    331		enable-active-high;
    332		gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
    333		pinctrl-names = "default";
    334		pinctrl-0 = <&vcc5v0_host_en_pin>;
    335		regulator-name = "vcc5v0_otg";
    336		regulator-always-on;
    337		regulator-min-microvolt = <5000000>;
    338		regulator-max-microvolt = <5000000>;
    339		vin-supply = <&vcc5v0_usb>;
    340
    341		regulator-state-mem {
    342			regulator-off-in-suspend;
    343		};
    344	};
    345
    346	/* Regulators supplied by vcc5v0_usb */
    347	/* Type C port power supply regulator */
    348	vbus_5vout: vbus_typec: vbus-5vout {
    349		compatible = "regulator-fixed";
    350		enable-active-high;
    351		gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
    352		pinctrl-names = "default";
    353		pinctrl-0 = <&vcc5v0_typec0_en_pin>;
    354		regulator-name = "vbus_5vout";
    355		regulator-min-microvolt = <5000000>;
    356		regulator-max-microvolt = <5000000>;
    357		vin-supply = <&vcc5v0_usb>;
    358
    359		regulator-state-mem {
    360			regulator-off-in-suspend;
    361		};
    362	};
    363
    364	/* Regulators supplied by vcc_1v8 */
    365	/* Primary 0.9 V LDO */
    366	vcca0v9_s3: vcca0v9-s3 {
    367		compatible = "regulator-fixed";
    368		regulator-name = "vcc0v9_s3";
    369		regulator-min-microvolt = <5000000>;
    370		regulator-max-microvolt = <5000000>;
    371		vin-supply = <&vcc_1v8>;
    372
    373		regulator-state-mem {
    374			regulator-on-in-suspend;
    375		};
    376	};
    377
    378	mains_charger: dc-charger {
    379		compatible = "gpio-charger";
    380		charger-type = "mains";
    381		gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
    382
    383		/* Also triggered by USB charger */
    384		pinctrl-names = "default";
    385		pinctrl-0 = <&dc_det_pin>;
    386	};
    387};
    388
    389&cpu_b0 {
    390	cpu-supply = <&vdd_cpu_b>;
    391};
    392
    393&cpu_b1 {
    394	cpu-supply = <&vdd_cpu_b>;
    395};
    396
    397&cpu_l0 {
    398	cpu-supply = <&vdd_cpu_l>;
    399};
    400
    401&cpu_l1 {
    402	cpu-supply = <&vdd_cpu_l>;
    403};
    404
    405&cpu_l2 {
    406	cpu-supply = <&vdd_cpu_l>;
    407};
    408
    409&cpu_l3 {
    410	cpu-supply = <&vdd_cpu_l>;
    411};
    412
    413&edp {
    414	force-hpd;
    415	pinctrl-names = "default";
    416	pinctrl-0 = <&edp_hpd>;
    417	status = "okay";
    418
    419	ports {
    420		edp_out: port@1 {
    421			reg = <1>;
    422			#address-cells = <1>;
    423			#size-cells = <0>;
    424
    425			edp_out_panel: endpoint@0 {
    426				reg = <0>;
    427				remote-endpoint = <&panel_in_edp>;
    428			};
    429		};
    430	};
    431};
    432
    433&emmc_phy {
    434	status = "okay";
    435};
    436
    437&gpu {
    438	mali-supply = <&vdd_gpu>;
    439	status = "okay";
    440};
    441
    442&hdmi_sound {
    443	status = "okay";
    444};
    445
    446&i2c0 {
    447	clock-frequency = <400000>;
    448	i2c-scl-falling-time-ns = <4>;
    449	i2c-scl-rising-time-ns = <168>;
    450	status = "okay";
    451
    452	rk808: pmic@1b {
    453		compatible = "rockchip,rk808";
    454		reg = <0x1b>;
    455		#clock-cells = <1>;
    456		clock-output-names = "xin32k", "rk808-clkout2";
    457		interrupt-parent = <&gpio3>;
    458		interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
    459		pinctrl-names = "default";
    460		pinctrl-0 = <&pmic_int_l_pin>;
    461		rockchip,system-power-controller;
    462		wakeup-source;
    463
    464		vcc1-supply = <&vcc_sysin>;
    465		vcc2-supply = <&vcc_sysin>;
    466		vcc3-supply = <&vcc_sysin>;
    467		vcc4-supply = <&vcc_sysin>;
    468		vcc6-supply = <&vcc_sysin>;
    469		vcc7-supply = <&vcc_sysin>;
    470		vcc8-supply = <&vcc3v3_sys>;
    471		vcc9-supply = <&vcc_sysin>;
    472		vcc10-supply = <&vcc_sysin>;
    473		vcc11-supply = <&vcc_sysin>;
    474		vcc12-supply = <&vcc3v3_sys>;
    475
    476		regulators {
    477			/* rk3399 center logic supply */
    478			vdd_center: DCDC_REG1 {
    479				regulator-name = "vdd_center";
    480				regulator-always-on;
    481				regulator-boot-on;
    482				regulator-min-microvolt = <750000>;
    483				regulator-max-microvolt = <1350000>;
    484				regulator-ramp-delay = <6001>;
    485
    486				regulator-state-mem {
    487					regulator-off-in-suspend;
    488				};
    489			};
    490
    491			vdd_cpu_l: DCDC_REG2 {
    492				regulator-name = "vdd_cpu_l";
    493				regulator-always-on;
    494				regulator-boot-on;
    495				regulator-min-microvolt = <750000>;
    496				regulator-max-microvolt = <1350000>;
    497				regulator-ramp-delay = <6001>;
    498
    499				regulator-state-mem {
    500					regulator-off-in-suspend;
    501				};
    502			};
    503
    504			vcc_ddr: DCDC_REG3 {
    505				regulator-name = "vcc_ddr";
    506				regulator-always-on;
    507				regulator-boot-on;
    508
    509				regulator-state-mem {
    510					regulator-on-in-suspend;
    511				};
    512			};
    513
    514			vcc_1v8: vcc_wl: DCDC_REG4 {
    515				regulator-name = "vcc_1v8";
    516				regulator-always-on;
    517				regulator-boot-on;
    518				regulator-min-microvolt = <1800000>;
    519				regulator-max-microvolt = <1800000>;
    520
    521				regulator-state-mem {
    522					regulator-on-in-suspend;
    523					regulator-suspend-microvolt = <1800000>;
    524				};
    525			};
    526
    527			/* not used */
    528			LDO_REG1 {
    529			};
    530
    531			/* not used */
    532			LDO_REG2 {
    533			};
    534
    535			vcc1v8_pmupll: LDO_REG3 {
    536				regulator-name = "vcc1v8_pmupll";
    537				regulator-always-on;
    538				regulator-boot-on;
    539				regulator-min-microvolt = <1800000>;
    540				regulator-max-microvolt = <1800000>;
    541
    542				regulator-state-mem {
    543					regulator-on-in-suspend;
    544					regulator-suspend-microvolt = <1800000>;
    545				};
    546			};
    547
    548			vcc_sdio: LDO_REG4 {
    549				regulator-name = "vcc_sdio";
    550				regulator-always-on;
    551				regulator-boot-on;
    552				regulator-min-microvolt = <1800000>;
    553				regulator-max-microvolt = <3000000>;
    554
    555				regulator-state-mem {
    556					regulator-on-in-suspend;
    557					regulator-suspend-microvolt = <3000000>;
    558				};
    559			};
    560
    561			vcca3v0_codec: LDO_REG5 {
    562				regulator-name = "vcca3v0_codec";
    563				regulator-always-on;
    564				regulator-boot-on;
    565				regulator-min-microvolt = <3000000>;
    566				regulator-max-microvolt = <3000000>;
    567
    568				regulator-state-mem {
    569					regulator-off-in-suspend;
    570				};
    571			};
    572
    573			vcc_1v5: LDO_REG6 {
    574				regulator-name = "vcc_1v5";
    575				regulator-always-on;
    576				regulator-boot-on;
    577				regulator-min-microvolt = <1500000>;
    578				regulator-max-microvolt = <1500000>;
    579
    580				regulator-state-mem {
    581					regulator-on-in-suspend;
    582					regulator-suspend-microvolt = <1500000>;
    583				};
    584			};
    585
    586			vcca1v8_codec: LDO_REG7 {
    587				regulator-name = "vcca1v8_codec";
    588				regulator-always-on;
    589				regulator-boot-on;
    590				regulator-min-microvolt = <1800000>;
    591				regulator-max-microvolt = <1800000>;
    592
    593				regulator-state-mem {
    594					regulator-off-in-suspend;
    595				};
    596			};
    597
    598			vcc_3v0: LDO_REG8 {
    599				regulator-name = "vcc_3v0";
    600				regulator-always-on;
    601				regulator-boot-on;
    602				regulator-min-microvolt = <3000000>;
    603				regulator-max-microvolt = <3000000>;
    604
    605				regulator-state-mem {
    606					regulator-on-in-suspend;
    607					regulator-suspend-microvolt = <3000000>;
    608				};
    609			};
    610
    611			vcc3v3_s3: SWITCH_REG1 {
    612				regulator-name = "vcc3v3_s3";
    613				regulator-always-on;
    614				regulator-boot-on;
    615
    616				regulator-state-mem {
    617					regulator-off-in-suspend;
    618				};
    619			};
    620
    621			vcc3v3_s0: SWITCH_REG2 {
    622				regulator-name = "vcc3v3_s0";
    623				regulator-always-on;
    624				regulator-boot-on;
    625
    626				regulator-state-mem {
    627					regulator-off-in-suspend;
    628				};
    629			};
    630		};
    631	};
    632
    633	vdd_cpu_b: regulator@40 {
    634		compatible = "silergy,syr827";
    635		reg = <0x40>;
    636		fcs,suspend-voltage-selector = <1>;
    637		pinctrl-names = "default";
    638		pinctrl-0 = <&vsel1_pin>;
    639		regulator-name = "vdd_cpu_b";
    640		regulator-always-on;
    641		regulator-boot-on;
    642		regulator-min-microvolt = <712500>;
    643		regulator-max-microvolt = <1500000>;
    644		regulator-ramp-delay = <1000>;
    645		vin-supply = <&vcc_1v8>;
    646
    647		regulator-state-mem {
    648			regulator-off-in-suspend;
    649		};
    650	};
    651
    652	vdd_gpu: regulator@41 {
    653		compatible = "silergy,syr828";
    654		reg = <0x41>;
    655		fcs,suspend-voltage-selector = <1>;
    656		pinctrl-names = "default";
    657		pinctrl-0 = <&vsel2_pin>;
    658		regulator-name = "vdd_gpu";
    659		regulator-always-on;
    660		regulator-boot-on;
    661		regulator-min-microvolt = <712500>;
    662		regulator-max-microvolt = <1500000>;
    663		regulator-ramp-delay = <1000>;
    664		vin-supply = <&vcc_1v8>;
    665
    666		regulator-state-mem {
    667			regulator-off-in-suspend;
    668		};
    669	};
    670};
    671
    672&i2c1 {
    673	clock-frequency = <100000>;
    674	i2c-scl-falling-time-ns = <4>;
    675	i2c-scl-rising-time-ns = <168>;
    676	status = "okay";
    677
    678	es8316: es8316@11 {
    679		compatible = "everest,es8316";
    680		reg = <0x11>;
    681		clocks = <&cru SCLK_I2S_8CH_OUT>;
    682		clock-names = "mclk";
    683		#sound-dai-cells = <0>;
    684	};
    685};
    686
    687&i2c3 {
    688	i2c-scl-falling-time-ns = <15>;
    689	i2c-scl-rising-time-ns = <450>;
    690	status = "okay";
    691};
    692
    693&i2c4 {
    694	i2c-scl-falling-time-ns = <20>;
    695	i2c-scl-rising-time-ns = <600>;
    696	status = "okay";
    697
    698	fusb0: fusb30x@22 {
    699		compatible = "fcs,fusb302";
    700		reg = <0x22>;
    701		interrupt-parent = <&gpio1>;
    702		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
    703		pinctrl-names = "default";
    704		pinctrl-0 = <&fusb0_int_pin>;
    705		vbus-supply = <&vbus_typec>;
    706
    707		connector {
    708			compatible = "usb-c-connector";
    709			data-role = "dual";
    710			label = "USB-C";
    711			op-sink-microwatt = <1000000>;
    712			power-role = "dual";
    713			sink-pdos =
    714				<PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
    715			source-pdos =
    716				<PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
    717			try-power-role = "sink";
    718
    719			ports {
    720				#address-cells = <1>;
    721				#size-cells = <0>;
    722
    723				port@0 {
    724					reg = <0>;
    725
    726					usbc_hs: endpoint {
    727						remote-endpoint =
    728							<&u2phy0_typec_hs>;
    729					};
    730				};
    731
    732				port@1 {
    733					reg = <1>;
    734
    735					usbc_ss: endpoint {
    736						remote-endpoint =
    737							<&tcphy0_typec_ss>;
    738					};
    739				};
    740
    741				port@2 {
    742					reg = <2>;
    743
    744					usbc_dp: endpoint {
    745						remote-endpoint =
    746							<&tcphy0_typec_dp>;
    747					};
    748				};
    749			};
    750		};
    751	};
    752
    753	cw2015@62 {
    754		compatible = "cellwise,cw2015";
    755		reg = <0x62>;
    756		cellwise,battery-profile = /bits/ 8 <
    757			0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
    758			0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
    759			0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
    760			0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
    761			0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
    762			0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
    763			0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
    764			0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
    765		>;
    766		cellwise,monitor-interval-ms = <5000>;
    767		monitored-battery = <&bat>;
    768		power-supplies = <&mains_charger>, <&fusb0>;
    769	};
    770};
    771
    772&i2s1 {
    773	pinctrl-names = "default";
    774	pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
    775	rockchip,capture-channels = <8>;
    776	rockchip,playback-channels = <8>;
    777	status = "okay";
    778};
    779
    780&io_domains {
    781	audio-supply = <&vcc_3v0>;
    782	gpio1830-supply = <&vcc_3v0>;
    783	sdmmc-supply = <&vcc_sdio>;
    784	status = "okay";
    785};
    786
    787&pcie_phy {
    788	status = "okay";
    789};
    790
    791&pcie0 {
    792	bus-scan-delay-ms = <1000>;
    793	ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
    794	num-lanes = <4>;
    795	pinctrl-names = "default";
    796	pinctrl-0 = <&pcie_clkreqn_cpm>;
    797	vpcie0v9-supply = <&vcca0v9_s3>;
    798	vpcie1v8-supply = <&vcca1v8_s3>;
    799	vpcie3v3-supply = <&vcc3v3_ssd>;
    800	status = "okay";
    801};
    802
    803&pinctrl {
    804	buttons {
    805		pwrbtn_pin: pwrbtn-pin {
    806			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
    807		};
    808
    809		lidbtn_pin: lidbtn-pin {
    810			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
    811		};
    812	};
    813
    814	dc-charger {
    815		dc_det_pin: dc-det-pin {
    816			rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
    817		};
    818	};
    819
    820	es8316 {
    821		hp_det_pin: hp-det-pin {
    822			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
    823		};
    824	};
    825
    826	fusb302x {
    827		fusb0_int_pin: fusb0-int-pin {
    828			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
    829		};
    830	};
    831
    832	i2s1 {
    833		i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
    834			rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
    835		};
    836	};
    837
    838	lcd-panel {
    839		lcdvcc_en_pin: lcdvcc-en-pin {
    840			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
    841		};
    842
    843		panel_en_pin: panel-en-pin {
    844			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
    845		};
    846
    847		lcd_panel_reset_pin: lcd-panel-reset-pin {
    848			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
    849		};
    850	};
    851
    852	leds {
    853		pwr_led_pin: pwr-led-pin {
    854			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
    855		};
    856
    857		slp_led_pin: slp-led-pin {
    858			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
    859		};
    860	};
    861
    862	pmic {
    863		pmic_int_l_pin: pmic-int-l-pin {
    864			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
    865		};
    866
    867		vsel1_pin: vsel1-pin {
    868			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
    869		};
    870
    871		vsel2_pin: vsel2-pin {
    872			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
    873		};
    874	};
    875
    876	sdcard {
    877		sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin {
    878			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
    879		};
    880
    881	};
    882
    883	sdio-pwrseq {
    884		wifi_enable_h_pin: wifi-enable-h-pin {
    885			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
    886		};
    887	};
    888
    889	usb-typec {
    890		vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin {
    891			rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
    892		};
    893	};
    894
    895	usb2 {
    896		pwr_5v_pin: pwr-5v-pin {
    897			rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
    898		};
    899
    900		vcc5v0_host_en_pin: vcc5v0-host-en-pin {
    901			rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
    902		};
    903	};
    904
    905	wireless-bluetooth {
    906		bt_wake_pin: bt-wake-pin {
    907			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
    908		};
    909
    910		bt_host_wake_pin: bt-host-wake-pin {
    911			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
    912		};
    913
    914		bt_reset_pin: bt-reset-pin {
    915			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
    916		};
    917	};
    918};
    919
    920&pmu_io_domains {
    921	pmu1830-supply = <&vcc_3v0>;
    922	status = "okay";
    923};
    924
    925&pwm0 {
    926	status = "okay";
    927};
    928
    929&pwm2 {
    930	status = "okay";
    931};
    932
    933&saradc {
    934	vref-supply = <&vcca1v8_s3>;
    935	status = "okay";
    936};
    937
    938&sdmmc {
    939	bus-width = <4>;
    940	cap-mmc-highspeed;
    941	cap-sd-highspeed;
    942	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
    943	disable-wp;
    944	pinctrl-names = "default";
    945	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
    946	sd-uhs-sdr104;
    947	vmmc-supply = <&vcc3v0_sd>;
    948	vqmmc-supply = <&vcc_sdio>;
    949	status = "okay";
    950};
    951
    952&sdio0 {
    953	bus-width = <4>;
    954	cap-sd-highspeed;
    955	cap-sdio-irq;
    956	keep-power-in-suspend;
    957	mmc-pwrseq = <&sdio_pwrseq>;
    958	non-removable;
    959	pinctrl-names = "default";
    960	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
    961	sd-uhs-sdr104;
    962	status = "okay";
    963};
    964
    965&sdhci {
    966	bus-width = <8>;
    967	mmc-hs200-1_8v;
    968	non-removable;
    969	status = "okay";
    970};
    971
    972&spi1 {
    973	max-freq = <10000000>;
    974	status = "okay";
    975
    976	spiflash: flash@0 {
    977		compatible = "jedec,spi-nor";
    978		reg = <0>;
    979		m25p,fast-read;
    980		spi-max-frequency = <10000000>;
    981	};
    982};
    983
    984&tcphy0 {
    985	status = "okay";
    986};
    987
    988&tcphy0_dp {
    989	port {
    990		tcphy0_typec_dp: endpoint {
    991			remote-endpoint = <&usbc_dp>;
    992		};
    993	};
    994};
    995
    996&tcphy0_usb3 {
    997	port {
    998		tcphy0_typec_ss: endpoint {
    999			remote-endpoint = <&usbc_ss>;
   1000		};
   1001	};
   1002};
   1003
   1004&tcphy1 {
   1005	status = "okay";
   1006};
   1007
   1008&tsadc {
   1009	/* tshut mode 0:CRU 1:GPIO */
   1010	rockchip,hw-tshut-mode = <1>;
   1011	/* tshut polarity 0:LOW 1:HIGH */
   1012	rockchip,hw-tshut-polarity = <1>;
   1013	status = "okay";
   1014};
   1015
   1016&u2phy0 {
   1017	status = "okay";
   1018
   1019	u2phy0_otg: otg-port {
   1020		status = "okay";
   1021	};
   1022
   1023	u2phy0_host: host-port {
   1024		phy-supply = <&vcc5v0_otg>;
   1025		status = "okay";
   1026	};
   1027
   1028	port {
   1029		u2phy0_typec_hs: endpoint {
   1030			remote-endpoint = <&usbc_hs>;
   1031		};
   1032	};
   1033};
   1034
   1035&u2phy1 {
   1036	status = "okay";
   1037
   1038	u2phy1_otg: otg-port {
   1039		status = "okay";
   1040	};
   1041
   1042	u2phy1_host: host-port {
   1043		phy-supply = <&vcc5v0_otg>;
   1044		status = "okay";
   1045	};
   1046};
   1047
   1048&uart0 {
   1049	pinctrl-names = "default";
   1050	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
   1051	uart-has-rtscts;
   1052	status = "okay";
   1053
   1054	bluetooth {
   1055		compatible = "brcm,bcm4345c5";
   1056		clocks = <&rk808 1>;
   1057		clock-names = "lpo";
   1058		device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
   1059		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
   1060		max-speed = <1500000>;
   1061		pinctrl-names = "default";
   1062		pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>;
   1063		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
   1064		vbat-supply = <&wifi_bat>;
   1065		vddio-supply = <&vcc_wl>;
   1066	};
   1067};
   1068
   1069&uart2 {
   1070	status = "okay";
   1071};
   1072
   1073&usb_host0_ehci {
   1074	status = "okay";
   1075};
   1076
   1077&usb_host0_ohci {
   1078	status = "okay";
   1079};
   1080
   1081&usb_host1_ehci {
   1082	status = "okay";
   1083};
   1084
   1085&usb_host1_ohci {
   1086	status = "okay";
   1087};
   1088
   1089&usbdrd3_0 {
   1090	status = "okay";
   1091};
   1092
   1093&usbdrd_dwc3_0 {
   1094	dr_mode = "host";
   1095	status = "okay";
   1096};
   1097
   1098&usbdrd3_1 {
   1099	status = "okay";
   1100};
   1101
   1102&usbdrd_dwc3_1 {
   1103	dr_mode = "host";
   1104	status = "okay";
   1105};
   1106
   1107&vopb {
   1108	status = "okay";
   1109};
   1110
   1111&vopb_mmu {
   1112	status = "okay";
   1113};
   1114
   1115&vopl {
   1116	status = "okay";
   1117};
   1118
   1119&vopl_mmu {
   1120	status = "okay";
   1121};