WIP FPC-III support
[linux/fpc-iii.git] / arch / arm64 / boot / dts / rockchip / rk3399-pinebook-pro.dts
blob06d48338c83622f5e3da4a938dde256bf56f7eb4
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  */
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"
17 / {
18         model = "Pine64 Pinebook Pro";
19         compatible = "pine64,pinebook-pro", "rockchip,rk3399";
21         chosen {
22                 stdout-path = "serial2:1500000n8";
23         };
25         backlight: edp-backlight {
26                 compatible = "pwm-backlight";
27                 power-supply = <&vcc_12v>;
28                 pwms = <&pwm0 0 740740 0>;
29         };
31         bat: battery {
32                 compatible = "simple-battery";
33                 charge-full-design-microamp-hours = <9800000>;
34                 voltage-max-design-microvolt = <4350000>;
35                 voltage-min-design-microvolt = <3000000>;
36         };
38         edp_panel: edp-panel {
39                 compatible = "boe,nv140fhmn49";
40                 backlight = <&backlight>;
41                 enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
42                 pinctrl-names = "default";
43                 pinctrl-0 = <&panel_en_pin>;
44                 power-supply = <&vcc3v3_panel>;
46                 ports {
47                         #address-cells = <1>;
48                         #size-cells = <0>;
50                         port@0 {
51                                 reg = <0>;
52                                 #address-cells = <1>;
53                                 #size-cells = <0>;
55                                 panel_in_edp: endpoint@0 {
56                                         reg = <0>;
57                                         remote-endpoint = <&edp_out_panel>;
58                                 };
59                         };
60                 };
61         };
63         /*
64          * Use separate nodes for gpio-keys to allow for selective deactivation
65          * of wakeup sources via sysfs without disabling the whole key
66          */
67         gpio-key-lid {
68                 compatible = "gpio-keys";
69                 pinctrl-names = "default";
70                 pinctrl-0 = <&lidbtn_pin>;
72                 lid {
73                         debounce-interval = <20>;
74                         gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>;
75                         label = "Lid";
76                         linux,code = <SW_LID>;
77                         linux,input-type = <EV_SW>;
78                         wakeup-event-action = <EV_ACT_DEASSERTED>;
79                         wakeup-source;
80                 };
81         };
83         gpio-key-power {
84                 compatible = "gpio-keys";
85                 pinctrl-names = "default";
86                 pinctrl-0 = <&pwrbtn_pin>;
88                 power {
89                         debounce-interval = <20>;
90                         gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
91                         label = "Power";
92                         linux,code = <KEY_POWER>;
93                         wakeup-source;
94                 };
95         };
97         leds {
98                 compatible = "gpio-leds";
99                 pinctrl-names = "default";
100                 pinctrl-0 = <&pwr_led_pin &slp_led_pin>;
102                 green_led: led-0 {
103                         color = <LED_COLOR_ID_GREEN>;
104                         default-state = "on";
105                         function = LED_FUNCTION_POWER;
106                         gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
107                         label = "green:power";
108                 };
110                 red_led: led-1 {
111                         color = <LED_COLOR_ID_RED>;
112                         default-state = "off";
113                         function = LED_FUNCTION_STANDBY;
114                         gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
115                         label = "red:standby";
116                         panic-indicator;
117                         retain-state-suspended;
118                 };
119         };
121         /* Power sequence for SDIO WiFi module */
122         sdio_pwrseq: sdio-pwrseq {
123                 compatible = "mmc-pwrseq-simple";
124                 clocks = <&rk808 1>;
125                 clock-names = "ext_clock";
126                 pinctrl-names = "default";
127                 pinctrl-0 = <&wifi_enable_h_pin>;
128                 post-power-on-delay-ms = <100>;
129                 power-off-delay-us = <500000>;
131                 /* WL_REG_ON on module */
132                 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
133         };
135         /* Audio components */
136         es8316-sound {
137                 compatible = "simple-audio-card";
138                 pinctrl-names = "default";
139                 pinctrl-0 = <&hp_det_pin>;
140                 simple-audio-card,name = "rockchip,es8316-codec";
141                 simple-audio-card,format = "i2s";
142                 simple-audio-card,mclk-fs = <256>;
144                 simple-audio-card,widgets =
145                         "Microphone", "Mic Jack",
146                         "Headphone", "Headphones",
147                         "Speaker", "Speaker";
148                 simple-audio-card,routing =
149                         "MIC1", "Mic Jack",
150                         "Headphones", "HPOL",
151                         "Headphones", "HPOR",
152                         "Speaker Amplifier INL", "HPOL",
153                         "Speaker Amplifier INR", "HPOR",
154                         "Speaker", "Speaker Amplifier OUTL",
155                         "Speaker", "Speaker Amplifier OUTR";
157                 simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
158                 simple-audio-card,aux-devs = <&speaker_amp>;
159                 simple-audio-card,pin-switches = "Speaker";
161                 simple-audio-card,cpu {
162                         sound-dai = <&i2s1>;
163                 };
165                 simple-audio-card,codec {
166                         sound-dai = <&es8316>;
167                 };
168         };
170         speaker_amp: speaker-amplifier {
171                 compatible = "simple-audio-amplifier";
172                 enable-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
173                 sound-name-prefix = "Speaker Amplifier";
174                 VCC-supply = <&pa_5v>;
175         };
177         /* Power tree */
178         /* Root power source */
179         vcc_sysin: vcc-sysin {
180                 compatible = "regulator-fixed";
181                 regulator-name = "vcc_sysin";
182                 regulator-always-on;
183                 regulator-boot-on;
184         };
186         /* Regulators supplied by vcc_sysin */
187         /* LCD backlight supply */
188         vcc_12v: vcc-12v {
189                 compatible = "regulator-fixed";
190                 regulator-name = "vcc_12v";
191                 regulator-always-on;
192                 regulator-boot-on;
193                 regulator-min-microvolt = <12000000>;
194                 regulator-max-microvolt = <12000000>;
195                 vin-supply = <&vcc_sysin>;
197                 regulator-state-mem {
198                         regulator-off-in-suspend;
199                 };
200         };
202         /* Main 3.3 V supply */
203         vcc3v3_sys: wifi_bat: vcc3v3-sys {
204                 compatible = "regulator-fixed";
205                 regulator-name = "vcc3v3_sys";
206                 regulator-always-on;
207                 regulator-boot-on;
208                 regulator-min-microvolt = <3300000>;
209                 regulator-max-microvolt = <3300000>;
210                 vin-supply = <&vcc_sysin>;
212                 regulator-state-mem {
213                         regulator-on-in-suspend;
214                 };
215         };
217         /* 5 V USB power supply */
218         vcc5v0_usb: pa_5v: vcc5v0-usb-regulator {
219                 compatible = "regulator-fixed";
220                 enable-active-high;
221                 gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
222                 pinctrl-names = "default";
223                 pinctrl-0 = <&pwr_5v_pin>;
224                 regulator-name = "vcc5v0_usb";
225                 regulator-always-on;
226                 regulator-min-microvolt = <5000000>;
227                 regulator-max-microvolt = <5000000>;
228                 vin-supply = <&vcc_sysin>;
230                 regulator-state-mem {
231                         regulator-off-in-suspend;
232                 };
233         };
235         /* RK3399 logic supply */
236         vdd_log: vdd-log {
237                 compatible = "pwm-regulator";
238                 pwms = <&pwm2 0 25000 1>;
239                 regulator-name = "vdd_log";
240                 regulator-always-on;
241                 regulator-boot-on;
242                 regulator-min-microvolt = <800000>;
243                 regulator-max-microvolt = <1400000>;
244                 vin-supply = <&vcc_sysin>;
246                 regulator-state-mem {
247                         regulator-on-in-suspend;
248                 };
249         };
251         /* Regulators supplied by vcc3v3_sys */
252         /* 0.9 V supply, always on */
253         vcc_0v9: vcc-0v9 {
254                 compatible = "regulator-fixed";
255                 regulator-name = "vcc_0v9";
256                 regulator-always-on;
257                 regulator-boot-on;
258                 regulator-min-microvolt = <900000>;
259                 regulator-max-microvolt = <900000>;
260                 vin-supply = <&vcc3v3_sys>;
261         };
263         /* S3 1.8 V supply, switched by vcc1v8_s3 */
264         vcca1v8_s3: vcc1v8-s3 {
265                 compatible = "regulator-fixed";
266                 regulator-name = "vcca1v8_s3";
267                 regulator-always-on;
268                 regulator-boot-on;
269                 regulator-min-microvolt = <1800000>;
270                 regulator-max-microvolt = <1800000>;
271                 vin-supply = <&vcc3v3_sys>;
272         };
274         /* micro SD card power */
275         vcc3v0_sd: vcc3v0-sd {
276                 compatible = "regulator-fixed";
277                 enable-active-high;
278                 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
279                 pinctrl-names = "default";
280                 pinctrl-0 = <&sdmmc0_pwr_h_pin>;
281                 regulator-name = "vcc3v0_sd";
282                 regulator-always-on;
283                 regulator-min-microvolt = <3000000>;
284                 regulator-max-microvolt = <3000000>;
285                 vin-supply = <&vcc3v3_sys>;
287                 regulator-state-mem {
288                         regulator-off-in-suspend;
289                 };
290         };
292         /* LCD panel power, called VCC3V3_S0 in schematic */
293         vcc3v3_panel: vcc3v3-panel {
294                 compatible = "regulator-fixed";
295                 enable-active-high;
296                 gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
297                 pinctrl-names = "default";
298                 pinctrl-0 = <&lcdvcc_en_pin>;
299                 regulator-name = "vcc3v3_panel";
300                 regulator-always-on;
301                 regulator-min-microvolt = <3300000>;
302                 regulator-max-microvolt = <3300000>;
303                 regulator-enable-ramp-delay = <100000>;
304                 vin-supply = <&vcc3v3_sys>;
306                 regulator-state-mem {
307                         regulator-off-in-suspend;
308                 };
309         };
311         /* M.2 adapter power, switched by vcc1v8_s3 */
312         vcc3v3_ssd: vcc3v3-ssd {
313                 compatible = "regulator-fixed";
314                 regulator-name = "vcc3v3_ssd";
315                 regulator-min-microvolt = <3300000>;
316                 regulator-max-microvolt = <3300000>;
317                 vin-supply = <&vcc3v3_sys>;
318         };
320         /* Regulators supplied by vcc5v0_usb */
321         /* USB 3 port power supply regulator  */
322         vcc5v0_otg: vcc5v0-otg {
323                 compatible = "regulator-fixed";
324                 enable-active-high;
325                 gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
326                 pinctrl-names = "default";
327                 pinctrl-0 = <&vcc5v0_host_en_pin>;
328                 regulator-name = "vcc5v0_otg";
329                 regulator-always-on;
330                 regulator-min-microvolt = <5000000>;
331                 regulator-max-microvolt = <5000000>;
332                 vin-supply = <&vcc5v0_usb>;
334                 regulator-state-mem {
335                         regulator-off-in-suspend;
336                 };
337         };
339         /* Regulators supplied by vcc5v0_usb */
340         /* Type C port power supply regulator */
341         vbus_5vout: vbus_typec: vbus-5vout {
342                 compatible = "regulator-fixed";
343                 enable-active-high;
344                 gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
345                 pinctrl-names = "default";
346                 pinctrl-0 = <&vcc5v0_typec0_en_pin>;
347                 regulator-name = "vbus_5vout";
348                 regulator-min-microvolt = <5000000>;
349                 regulator-max-microvolt = <5000000>;
350                 vin-supply = <&vcc5v0_usb>;
352                 regulator-state-mem {
353                         regulator-off-in-suspend;
354                 };
355         };
357         /* Regulators supplied by vcc_1v8 */
358         /* Primary 0.9 V LDO */
359         vcca0v9_s3: vcca0v9-s3 {
360                 compatible = "regulator-fixed";
361                 regulator-name = "vcc0v9_s3";
362                 regulator-min-microvolt = <5000000>;
363                 regulator-max-microvolt = <5000000>;
364                 vin-supply = <&vcc_1v8>;
366                 regulator-state-mem {
367                         regulator-on-in-suspend;
368                 };
369         };
371         mains_charger: dc-charger {
372                 compatible = "gpio-charger";
373                 charger-type = "mains";
374                 gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>;
376                 /* Also triggered by USB charger */
377                 pinctrl-names = "default";
378                 pinctrl-0 = <&dc_det_pin>;
379         };
382 &cdn_dp {
383         status = "okay";
386 &cpu_b0 {
387         cpu-supply = <&vdd_cpu_b>;
390 &cpu_b1 {
391         cpu-supply = <&vdd_cpu_b>;
394 &cpu_l0 {
395         cpu-supply = <&vdd_cpu_l>;
398 &cpu_l1 {
399         cpu-supply = <&vdd_cpu_l>;
402 &cpu_l2 {
403         cpu-supply = <&vdd_cpu_l>;
406 &cpu_l3 {
407         cpu-supply = <&vdd_cpu_l>;
410 &edp {
411         force-hpd;
412         pinctrl-names = "default";
413         pinctrl-0 = <&edp_hpd>;
414         status = "okay";
416         ports {
417                 edp_out: port@1 {
418                         reg = <1>;
419                         #address-cells = <1>;
420                         #size-cells = <0>;
422                         edp_out_panel: endpoint@0 {
423                                 reg = <0>;
424                                 remote-endpoint = <&panel_in_edp>;
425                         };
426                 };
427         };
430 &emmc_phy {
431         status = "okay";
434 &gpu {
435         mali-supply = <&vdd_gpu>;
436         status = "okay";
439 &hdmi_sound {
440         status = "okay";
443 &i2c0 {
444         clock-frequency = <400000>;
445         i2c-scl-falling-time-ns = <4>;
446         i2c-scl-rising-time-ns = <168>;
447         status = "okay";
449         rk808: pmic@1b {
450                 compatible = "rockchip,rk808";
451                 reg = <0x1b>;
452                 #clock-cells = <1>;
453                 clock-output-names = "xin32k", "rk808-clkout2";
454                 interrupt-parent = <&gpio3>;
455                 interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
456                 pinctrl-names = "default";
457                 pinctrl-0 = <&pmic_int_l_pin>;
458                 rockchip,system-power-controller;
459                 wakeup-source;
461                 vcc1-supply = <&vcc_sysin>;
462                 vcc2-supply = <&vcc_sysin>;
463                 vcc3-supply = <&vcc_sysin>;
464                 vcc4-supply = <&vcc_sysin>;
465                 vcc6-supply = <&vcc_sysin>;
466                 vcc7-supply = <&vcc_sysin>;
467                 vcc8-supply = <&vcc3v3_sys>;
468                 vcc9-supply = <&vcc_sysin>;
469                 vcc10-supply = <&vcc_sysin>;
470                 vcc11-supply = <&vcc_sysin>;
471                 vcc12-supply = <&vcc3v3_sys>;
472                 vcc13-supply = <&vcc_sysin>;
473                 vcc14-supply = <&vcc_sysin>;
475                 regulators {
476                         /* rk3399 center logic supply */
477                         vdd_center: DCDC_REG1 {
478                                 regulator-name = "vdd_center";
479                                 regulator-always-on;
480                                 regulator-boot-on;
481                                 regulator-min-microvolt = <750000>;
482                                 regulator-max-microvolt = <1350000>;
483                                 regulator-ramp-delay = <6001>;
485                                 regulator-state-mem {
486                                         regulator-off-in-suspend;
487                                 };
488                         };
490                         vdd_cpu_l: DCDC_REG2 {
491                                 regulator-name = "vdd_cpu_l";
492                                 regulator-always-on;
493                                 regulator-boot-on;
494                                 regulator-min-microvolt = <750000>;
495                                 regulator-max-microvolt = <1350000>;
496                                 regulator-ramp-delay = <6001>;
498                                 regulator-state-mem {
499                                         regulator-off-in-suspend;
500                                 };
501                         };
503                         vcc_ddr: DCDC_REG3 {
504                                 regulator-name = "vcc_ddr";
505                                 regulator-always-on;
506                                 regulator-boot-on;
508                                 regulator-state-mem {
509                                         regulator-on-in-suspend;
510                                 };
511                         };
513                         vcc_1v8: vcc_wl: DCDC_REG4 {
514                                 regulator-name = "vcc_1v8";
515                                 regulator-always-on;
516                                 regulator-boot-on;
517                                 regulator-min-microvolt = <1800000>;
518                                 regulator-max-microvolt = <1800000>;
520                                 regulator-state-mem {
521                                         regulator-on-in-suspend;
522                                         regulator-suspend-microvolt = <1800000>;
523                                 };
524                         };
526                         /* not used */
527                         LDO_REG1 {
528                         };
530                         /* not used */
531                         LDO_REG2 {
532                         };
534                         vcc1v8_pmupll: LDO_REG3 {
535                                 regulator-name = "vcc1v8_pmupll";
536                                 regulator-always-on;
537                                 regulator-boot-on;
538                                 regulator-min-microvolt = <1800000>;
539                                 regulator-max-microvolt = <1800000>;
541                                 regulator-state-mem {
542                                         regulator-on-in-suspend;
543                                         regulator-suspend-microvolt = <1800000>;
544                                 };
545                         };
547                         vcc_sdio: LDO_REG4 {
548                                 regulator-name = "vcc_sdio";
549                                 regulator-always-on;
550                                 regulator-boot-on;
551                                 regulator-min-microvolt = <1800000>;
552                                 regulator-max-microvolt = <3000000>;
554                                 regulator-state-mem {
555                                         regulator-on-in-suspend;
556                                         regulator-suspend-microvolt = <3000000>;
557                                 };
558                         };
560                         vcca3v0_codec: LDO_REG5 {
561                                 regulator-name = "vcca3v0_codec";
562                                 regulator-always-on;
563                                 regulator-boot-on;
564                                 regulator-min-microvolt = <3000000>;
565                                 regulator-max-microvolt = <3000000>;
567                                 regulator-state-mem {
568                                         regulator-off-in-suspend;
569                                 };
570                         };
572                         vcc_1v5: LDO_REG6 {
573                                 regulator-name = "vcc_1v5";
574                                 regulator-always-on;
575                                 regulator-boot-on;
576                                 regulator-min-microvolt = <1500000>;
577                                 regulator-max-microvolt = <1500000>;
579                                 regulator-state-mem {
580                                         regulator-on-in-suspend;
581                                         regulator-suspend-microvolt = <1500000>;
582                                 };
583                         };
585                         vcca1v8_codec: LDO_REG7 {
586                                 regulator-name = "vcca1v8_codec";
587                                 regulator-always-on;
588                                 regulator-boot-on;
589                                 regulator-min-microvolt = <1800000>;
590                                 regulator-max-microvolt = <1800000>;
592                                 regulator-state-mem {
593                                         regulator-off-in-suspend;
594                                 };
595                         };
597                         vcc_3v0: LDO_REG8 {
598                                 regulator-name = "vcc_3v0";
599                                 regulator-always-on;
600                                 regulator-boot-on;
601                                 regulator-min-microvolt = <3000000>;
602                                 regulator-max-microvolt = <3000000>;
604                                 regulator-state-mem {
605                                         regulator-on-in-suspend;
606                                         regulator-suspend-microvolt = <3000000>;
607                                 };
608                         };
610                         vcc3v3_s3: SWITCH_REG1 {
611                                 regulator-name = "vcc3v3_s3";
612                                 regulator-always-on;
613                                 regulator-boot-on;
615                                 regulator-state-mem {
616                                         regulator-off-in-suspend;
617                                 };
618                         };
620                         vcc3v3_s0: SWITCH_REG2 {
621                                 regulator-name = "vcc3v3_s0";
622                                 regulator-always-on;
623                                 regulator-boot-on;
625                                 regulator-state-mem {
626                                         regulator-off-in-suspend;
627                                 };
628                         };
629                 };
630         };
632         vdd_cpu_b: regulator@40 {
633                 compatible = "silergy,syr827";
634                 reg = <0x40>;
635                 fcs,suspend-voltage-selector = <1>;
636                 pinctrl-names = "default";
637                 pinctrl-0 = <&vsel1_pin>;
638                 regulator-name = "vdd_cpu_b";
639                 regulator-always-on;
640                 regulator-boot-on;
641                 regulator-min-microvolt = <712500>;
642                 regulator-max-microvolt = <1500000>;
643                 regulator-ramp-delay = <1000>;
644                 vin-supply = <&vcc_1v8>;
646                 regulator-state-mem {
647                         regulator-off-in-suspend;
648                 };
649         };
651         vdd_gpu: regulator@41 {
652                 compatible = "silergy,syr828";
653                 reg = <0x41>;
654                 fcs,suspend-voltage-selector = <1>;
655                 pinctrl-names = "default";
656                 pinctrl-0 = <&vsel2_pin>;
657                 regulator-name = "vdd_gpu";
658                 regulator-always-on;
659                 regulator-boot-on;
660                 regulator-min-microvolt = <712500>;
661                 regulator-max-microvolt = <1500000>;
662                 regulator-ramp-delay = <1000>;
663                 vin-supply = <&vcc_1v8>;
665                 regulator-state-mem {
666                         regulator-off-in-suspend;
667                 };
668         };
671 &i2c1 {
672         clock-frequency = <100000>;
673         i2c-scl-falling-time-ns = <4>;
674         i2c-scl-rising-time-ns = <168>;
675         status = "okay";
677         es8316: es8316@11 {
678                 compatible = "everest,es8316";
679                 reg = <0x11>;
680                 clocks = <&cru SCLK_I2S_8CH_OUT>;
681                 clock-names = "mclk";
682                 #sound-dai-cells = <0>;
683         };
686 &i2c3 {
687         i2c-scl-falling-time-ns = <15>;
688         i2c-scl-rising-time-ns = <450>;
689         status = "okay";
692 &i2c4 {
693         i2c-scl-falling-time-ns = <20>;
694         i2c-scl-rising-time-ns = <600>;
695         status = "okay";
697         fusb0: fusb30x@22 {
698                 compatible = "fcs,fusb302";
699                 reg = <0x22>;
700                 interrupt-parent = <&gpio1>;
701                 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
702                 pinctrl-names = "default";
703                 pinctrl-0 = <&fusb0_int_pin>;
704                 vbus-supply = <&vbus_typec>;
706                 connector {
707                         compatible = "usb-c-connector";
708                         data-role = "host";
709                         label = "USB-C";
710                         op-sink-microwatt = <1000000>;
711                         power-role = "dual";
712                         sink-pdos =
713                                 <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>;
714                         source-pdos =
715                                 <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>;
716                         try-power-role = "sink";
718                         ports {
719                                 #address-cells = <1>;
720                                 #size-cells = <0>;
722                                 port@0 {
723                                         reg = <0>;
725                                         usbc_hs: endpoint {
726                                                 remote-endpoint =
727                                                         <&u2phy0_typec_hs>;
728                                         };
729                                 };
731                                 port@1 {
732                                         reg = <1>;
734                                         usbc_ss: endpoint {
735                                                 remote-endpoint =
736                                                         <&tcphy0_typec_ss>;
737                                         };
738                                 };
740                                 port@2 {
741                                         reg = <2>;
743                                         usbc_dp: endpoint {
744                                                 remote-endpoint =
745                                                         <&tcphy0_typec_dp>;
746                                         };
747                                 };
748                         };
749                 };
750         };
752         cw2015@62 {
753                 compatible = "cellwise,cw2015";
754                 reg = <0x62>;
755                 cellwise,battery-profile = /bits/ 8 <
756                         0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
757                         0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
758                         0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
759                         0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
760                         0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
761                         0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
762                         0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
763                         0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
764                 >;
765                 cellwise,monitor-interval-ms = <5000>;
766                 monitored-battery = <&bat>;
767                 power-supplies = <&mains_charger>, <&fusb0>;
768         };
771 &i2s1 {
772         pinctrl-names = "default";
773         pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>;
774         rockchip,capture-channels = <8>;
775         rockchip,playback-channels = <8>;
776         status = "okay";
779 &io_domains {
780         audio-supply = <&vcc_3v0>;
781         gpio1830-supply = <&vcc_3v0>;
782         sdmmc-supply = <&vcc_sdio>;
783         status = "okay";
786 &pcie_phy {
787         status = "okay";
790 &pcie0 {
791         bus-scan-delay-ms = <1000>;
792         ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
793         max-link-speed = <2>;
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";
803 &pinctrl {
804         buttons {
805                 pwrbtn_pin: pwrbtn-pin {
806                         rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
807                 };
809                 lidbtn_pin: lidbtn-pin {
810                         rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
811                 };
812         };
814         dc-charger {
815                 dc_det_pin: dc-det-pin {
816                         rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
817                 };
818         };
820         es8316 {
821                 hp_det_pin: hp-det-pin {
822                         rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
823                 };
824         };
826         fusb302x {
827                 fusb0_int_pin: fusb0-int-pin {
828                         rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
829                 };
830         };
832         i2s1 {
833                 i2s_8ch_mclk_pin: i2s-8ch-mclk-pin {
834                         rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>;
835                 };
836         };
838         lcd-panel {
839                 lcdvcc_en_pin: lcdvcc-en-pin {
840                         rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
841                 };
843                 panel_en_pin: panel-en-pin {
844                         rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
845                 };
847                 lcd_panel_reset_pin: lcd-panel-reset-pin {
848                         rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
849                 };
850         };
852         leds {
853                 pwr_led_pin: pwr-led-pin {
854                         rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
855                 };
857                 slp_led_pin: slp-led-pin {
858                         rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
859                 };
860         };
862         pmic {
863                 pmic_int_l_pin: pmic-int-l-pin {
864                         rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>;
865                 };
867                 vsel1_pin: vsel1-pin {
868                         rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
869                 };
871                 vsel2_pin: vsel2-pin {
872                         rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
873                 };
874         };
876         sdcard {
877                 sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin {
878                         rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
879                 };
881         };
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         };
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         };
895         usb2 {
896                 pwr_5v_pin: pwr-5v-pin {
897                         rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
898                 };
900                 vcc5v0_host_en_pin: vcc5v0-host-en-pin {
901                         rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
902                 };
903         };
905         wireless-bluetooth {
906                 bt_wake_pin: bt-wake-pin {
907                         rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
908                 };
910                 bt_host_wake_pin: bt-host-wake-pin {
911                         rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
912                 };
914                 bt_reset_pin: bt-reset-pin {
915                         rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
916                 };
917         };
920 &pmu_io_domains {
921         pmu1830-supply = <&vcc_3v0>;
922         status = "okay";
925 &pwm0 {
926         status = "okay";
929 &pwm2 {
930         status = "okay";
933 &saradc {
934         vref-supply = <&vcca1v8_s3>;
935         status = "okay";
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";
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";
965 &sdhci {
966         bus-width = <8>;
967         mmc-hs200-1_8v;
968         non-removable;
969         status = "okay";
972 &spi1 {
973         max-freq = <10000000>;
974         status = "okay";
976         spiflash: flash@0 {
977                 compatible = "jedec,spi-nor";
978                 reg = <0>;
979                 m25p,fast-read;
980                 spi-max-frequency = <10000000>;
981         };
984 &tcphy0 {
985         status = "okay";
988 &tcphy0_dp {
989         port {
990                 tcphy0_typec_dp: endpoint {
991                         remote-endpoint = <&usbc_dp>;
992                 };
993         };
996 &tcphy0_usb3 {
997         port {
998                 tcphy0_typec_ss: endpoint {
999                         remote-endpoint = <&usbc_ss>;
1000                 };
1001         };
1004 &tcphy1 {
1005         status = "okay";
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";
1016 &u2phy0 {
1017         status = "okay";
1019         u2phy0_otg: otg-port {
1020                 status = "okay";
1021         };
1023         u2phy0_host: host-port {
1024                 phy-supply = <&vcc5v0_otg>;
1025                 status = "okay";
1026         };
1028         port {
1029                 u2phy0_typec_hs: endpoint {
1030                         remote-endpoint = <&usbc_hs>;
1031                 };
1032         };
1035 &u2phy1 {
1036         status = "okay";
1038         u2phy1_otg: otg-port {
1039                 status = "okay";
1040         };
1042         u2phy1_host: host-port {
1043                 phy-supply = <&vcc5v0_otg>;
1044                 status = "okay";
1045         };
1048 &uart0 {
1049         pinctrl-names = "default";
1050         pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
1051         uart-has-rtscts;
1052         status = "okay";
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         };
1069 &uart2 {
1070         status = "okay";
1073 &usb_host0_ehci {
1074         status = "okay";
1077 &usb_host0_ohci {
1078         status = "okay";
1081 &usb_host1_ehci {
1082         status = "okay";
1085 &usb_host1_ohci {
1086         status = "okay";
1089 &usbdrd3_0 {
1090         status = "okay";
1093 &usbdrd_dwc3_0 {
1094         dr_mode = "host";
1095         status = "okay";
1098 &usbdrd3_1 {
1099         status = "okay";
1102 &usbdrd_dwc3_1 {
1103         dr_mode = "host";
1104         status = "okay";
1107 &vopb {
1108         status = "okay";
1111 &vopb_mmu {
1112         status = "okay";
1115 &vopl {
1116         status = "okay";
1119 &vopl_mmu {
1120         status = "okay";