2 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
45 #include "rk3399.dtsi"
46 #include "rk3399-android-next.dtsi"
47 #include "rk3399-opp.dtsi"
48 #include <dt-bindings/sensor-dev.h>
49 #include <dt-bindings/pwm/pwm.h>
52 compatible = "rockchip,rk3399-mid", "rockchip,rk3399";
54 edp_panel: edp-panel {
55 compatible = "lg,lp079qx1-sp0v", "panel-simple";
56 backlight = <&backlight>;
57 power-supply = <&vcc3v3_s0>;
58 enable-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
60 panel_in_edp: endpoint {
61 remote-endpoint = <&edp_out_panel>;
66 hall_sensor: hall-mh248 {
67 compatible = "hall-mh248";
68 pinctrl-names = "default";
69 pinctrl-0 = <&mh248_irq_gpio>;
70 irq-gpio = <&gpio1 2 IRQ_TYPE_EDGE_BOTH>;
76 compatible = "regulator-fixed";
77 regulator-name = "vcc_sys";
80 regulator-min-microvolt = <3900000>;
81 regulator-max-microvolt = <3900000>;
84 vcc3v3_sys: vcc3v3-sys {
85 compatible = "regulator-fixed";
86 regulator-name = "vcc3v3_sys";
89 regulator-min-microvolt = <3300000>;
90 regulator-max-microvolt = <3300000>;
93 vcc5v0_host: vcc5v0-host-regulator {
94 compatible = "regulator-fixed";
96 gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
97 pinctrl-names = "default";
98 pinctrl-0 = <&host_vbus_drv>;
99 regulator-name = "vcc5v0_host";
104 compatible = "pwm-regulator";
105 pwms = <&pwm2 0 25000 0>;
106 rockchip,pwm_id= <2>;
107 rockchip,pwm_voltage = <900000>;
108 regulator-name = "vdd_log";
109 regulator-min-microvolt = <750000>;
110 regulator-max-microvolt = <1350000>;
115 backlight: backlight {
116 compatible = "pwm-backlight";
117 pwms = <&pwm0 0 25000 PWM_POLARITY_INVERTED>;
118 brightness-levels = <
119 0 1 51 52 52 53 53 54
120 54 55 55 56 56 57 57 58
121 58 59 59 60 61 61 62 63
122 63 64 65 65 66 67 67 68
123 69 69 70 71 71 72 73 73
124 74 75 75 76 77 77 78 79
125 79 80 80 81 81 82 83 83
126 84 85 86 86 87 88 89 89
127 90 91 92 92 93 94 95 95
128 96 97 98 98 99 100 101 101
129 102 103 104 104 105 106 107 107
130 108 109 110 110 111 112 113 113
131 114 115 116 116 117 118 119 119
132 120 121 122 122 123 124 125 125
133 126 127 128 128 129 130 131 131
134 132 133 134 134 135 136 137 137
135 138 139 140 140 141 142 143 143
136 144 145 146 146 147 148 149 149
137 150 151 152 152 153 154 155 155
138 156 157 158 158 159 160 161 161
139 162 163 164 164 165 166 167 167
140 168 169 170 170 171 172 173 173
141 174 175 176 176 177 178 179 179
142 180 181 182 182 183 184 185 185
143 186 187 188 188 189 190 191 191
144 216 217 218 218 219 220 221 221
145 222 223 224 224 225 226 227 227
146 228 229 230 230 231 232 233 233
147 234 235 236 236 237 238 239 239
148 240 241 242 242 243 244 245 245
149 246 247 248 248 249 250 251 251
150 252 253 254 254 255 255 255 255>;
151 default-brightness-level = <200>;
152 enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
155 vcc_phy: vcc-phy-regulator {
156 compatible = "regulator-fixed";
157 regulator-name = "vcc_phy";
163 compatible = "simple-audio-card";
164 simple-audio-card,format = "i2s";
165 simple-audio-card,name = "rockchip,es8316-codec";
166 simple-audio-card,mclk-fs = <256>;
167 simple-audio-card,widgets =
168 "Microphone", "Mic Jack",
169 "Headphone", "Headphone Jack";
170 simple-audio-card,routing =
171 "Mic Jack", "MICBIAS1",
173 "Headphone Jack", "HPOL",
174 "Headphone Jack", "HPOR";
175 simple-audio-card,cpu {
178 simple-audio-card,codec {
179 sound-dai = <&es8316>;
184 compatible = "simple-audio-card";
185 simple-audio-card,name = "rockchip,spdif";
186 simple-audio-card,cpu {
187 sound-dai = <&spdif>;
189 simple-audio-card,codec {
190 sound-dai = <&spdif_out>;
194 spdif_out: spdif-out {
195 compatible = "linux,spdif-dit";
196 #sound-dai-cells = <0>;
199 sdio_pwrseq: sdio-pwrseq {
200 compatible = "mmc-pwrseq-simple";
202 clock-names = "ext_clock";
203 pinctrl-names = "default";
204 pinctrl-0 = <&wifi_enable_h>;
207 * On the module itself this is one of these (depending
208 * on the actual card populated):
209 * - SDIO_RESET_L_WL_REG_ON
210 * - PDN (power down when low)
212 reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>; /* GPIO0_B2 */
216 compatible = "wlan-platdata";
217 rockchip,grf = <&grf>;
218 wifi_chip_type = "ap6354";
220 WIFI,host_wake_irq = <&gpio0 3 GPIO_ACTIVE_HIGH>; /* GPIO0_a3 */
225 compatible = "bluetooth-platdata";
227 clock-names = "ext_clock";
228 //wifi-bt-power-toggle;
229 uart_rts_gpios = <&gpio2 19 GPIO_ACTIVE_LOW>; /* GPIO2_C3 */
230 pinctrl-names = "default", "rts_gpio";
231 pinctrl-0 = <&uart0_rts>;
232 pinctrl-1 = <&uart0_gpios>;
233 //BT,power_gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; /* GPIOx_xx */
234 BT,reset_gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>; /* GPIO0_B1 */
235 BT,wake_gpio = <&gpio2 26 GPIO_ACTIVE_HIGH>; /* GPIO2_D2 */
236 BT,wake_host_irq = <&gpio0 4 GPIO_ACTIVE_HIGH>; /* GPIO0_A4 */
241 compatible = "rockchip,uboot-charge";
242 rockchip,uboot-charge-on = <0>;
243 rockchip,android-charge-on = <1>;
247 compatible = "rk-vibrator-gpio";
248 vibrator-gpio = <&gpio4 30 GPIO_ACTIVE_LOW>;
253 compatible = "rockchip_headset";
254 headset_gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
255 pinctrl-names = "default";
256 pinctrl-0 = <&hp_det>;
257 io-channels = <&saradc 2>;
262 compatible = "rockchip,key";
265 io-channels = <&saradc 1>;
270 rockchip,adc_value = <1>;
275 label = "volume down";
276 rockchip,adc_value = <170>;
280 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
289 rockchip,adc_value = <746>;
295 rockchip,adc_value = <355>;
301 rockchip,adc_value = <560>;
307 rockchip,adc_value = <450>;
312 clock-frequency = <50000000>;
313 clock-freq-min-max = <400000 150000000>;
321 vqmmc-supply = <&vcc_sd>;
322 pinctrl-names = "default";
323 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
328 clock-frequency = <150000000>;
329 clock-freq-min-max = <200000 150000000>;
335 keep-power-in-suspend;
336 mmc-pwrseq = <&sdio_pwrseq>;
339 pinctrl-names = "default";
340 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
354 keep-power-in-suspend;
355 mmc-hs400-enhanced-strobe;
361 rockchip,i2s-broken-burst-len;
362 rockchip,playback-channels = <8>;
363 rockchip,capture-channels = <8>;
364 #sound-dai-cells = <0>;
368 #sound-dai-cells = <0>;
373 #sound-dai-cells = <0>;
378 i2c-scl-rising-time-ns = <180>;
379 i2c-scl-falling-time-ns = <30>;
380 clock-frequency = <400000>;
382 vdd_cpu_b: syr837@40 {
383 compatible = "silergy,syr827";
385 vin-supply = <&vcc_sys>;
386 regulator-compatible = "fan53555-reg";
387 pinctrl-0 = <&vsel1_gpio>;
388 vsel-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
389 regulator-name = "vdd_cpu_b";
390 regulator-min-microvolt = <712500>;
391 regulator-max-microvolt = <1500000>;
392 regulator-ramp-delay = <1000>;
393 fcs,suspend-voltage-selector = <1>;
395 regulator-initial-state = <3>;
396 regulator-state-mem {
397 regulator-off-in-suspend;
402 compatible = "silergy,syr828";
405 vin-supply = <&vcc_sys>;
406 regulator-compatible = "fan53555-reg";
407 pinctrl-0 = <&vsel2_gpio>;
408 vsel-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
409 regulator-name = "vdd_gpu";
410 regulator-min-microvolt = <735000>;
411 regulator-max-microvolt = <1400000>;
412 regulator-ramp-delay = <1000>;
413 fcs,suspend-voltage-selector = <1>;
415 regulator-state-mem {
416 regulator-off-in-suspend;
421 compatible = "rockchip,rk818";
424 clock-output-names = "xin32k", "wifibt_32kin";
425 interrupt-parent = <&gpio1>;
426 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
427 pinctrl-names = "default";
428 pinctrl-0 = <&pmic_int_l>;
429 rockchip,system-power-controller;
430 rk818,support_dc_chg = <1>;/*1: dc chg; 0:usb chg*/
435 vcc1-supply = <&vcc_sys>;
436 vcc2-supply = <&vcc_sys>;
437 vcc3-supply = <&vcc_sys>;
438 vcc4-supply = <&vcc_sys>;
439 vcc6-supply = <&vcc_sys>;
440 vcc7-supply = <&vcc3v3_sys>;
441 vcc8-supply = <&vcc_sys>;
442 vcc9-supply = <&vcc3v3_sys>;
445 vdd_cpu_l: DCDC_REG1 {
446 regulator-name = "vdd_cpu_l";
449 regulator-min-microvolt = <750000>;
450 regulator-max-microvolt = <1350000>;
451 regulator-ramp-delay = <6001>;
452 regulator-state-mem {
453 regulator-off-in-suspend;
457 vdd_center: DCDC_REG2 {
458 regulator-name = "vdd_center";
461 regulator-min-microvolt = <800000>;
462 regulator-max-microvolt = <1350000>;
463 regulator-ramp-delay = <6001>;
464 regulator-state-mem {
465 regulator-off-in-suspend;
470 regulator-name = "vcc_ddr";
473 regulator-state-mem {
474 regulator-on-in-suspend;
479 regulator-name = "vcc_1v8";
482 regulator-min-microvolt = <1800000>;
483 regulator-max-microvolt = <1800000>;
484 regulator-state-mem {
485 regulator-on-in-suspend;
486 regulator-suspend-microvolt = <1800000>;
490 vcca3v0_codec: LDO_REG1 {
493 regulator-min-microvolt = <3000000>;
494 regulator-max-microvolt = <3000000>;
495 regulator-name = "vcca3v0_codec";
496 regulator-state-mem {
497 regulator-off-in-suspend;
501 vcc3v0_tp: LDO_REG2 {
504 regulator-min-microvolt = <3000000>;
505 regulator-max-microvolt = <3000000>;
506 regulator-name = "vcc3v0_tp";
507 regulator-state-mem {
508 regulator-off-in-suspend;
512 vcca1v8_codec: LDO_REG3 {
515 regulator-min-microvolt = <1800000>;
516 regulator-max-microvolt = <1800000>;
517 regulator-name = "vcca1v8_codec";
518 regulator-state-mem {
519 regulator-off-in-suspend;
523 vcc_power_on: LDO_REG4 {
526 regulator-min-microvolt = <3300000>;
527 regulator-max-microvolt = <3300000>;
528 regulator-name = "vcc_power_on";
529 regulator-state-mem {
530 regulator-on-in-suspend;
531 regulator-suspend-microvolt = <3300000>;
538 regulator-min-microvolt = <3000000>;
539 regulator-max-microvolt = <3000000>;
540 regulator-name = "vcc_3v0";
541 regulator-state-mem {
542 regulator-on-in-suspend;
543 regulator-suspend-microvolt = <3000000>;
550 regulator-min-microvolt = <1500000>;
551 regulator-max-microvolt = <1500000>;
552 regulator-name = "vcc_1v5";
553 regulator-state-mem {
554 regulator-on-in-suspend;
555 regulator-suspend-microvolt = <1500000>;
559 vcc1v8_dvp: LDO_REG7 {
562 regulator-min-microvolt = <1800000>;
563 regulator-max-microvolt = <1800000>;
564 regulator-name = "vcc1v8_dvp";
565 regulator-state-mem {
566 regulator-off-in-suspend;
570 vcc3v3_s3: LDO_REG8 {
573 regulator-min-microvolt = <3300000>;
574 regulator-max-microvolt = <3300000>;
575 regulator-name = "vcc3v3_s3";
576 regulator-state-mem {
577 regulator-off-in-suspend;
584 regulator-min-microvolt = <1800000>;
585 regulator-max-microvolt = <3300000>;
586 regulator-name = "vcc_sd";
587 regulator-state-mem {
588 regulator-on-in-suspend;
589 regulator-suspend-microvolt = <3300000>;
593 vcc3v3_s0: SWITCH_REG {
596 regulator-name = "vcc3v3_s0";
597 regulator-state-mem {
598 regulator-on-in-suspend;
604 compatible = "rk818-battery";
605 ocv_table = <3400 3675 3689 3716 3740 3756 3768 3780
606 3793 3807 3827 3853 3896 3937 3974 4007 4066
607 4110 4161 4217 4308>;
608 design_capacity = <7916>;
609 design_qmax = <8708>;
611 max_input_current = <3000>;
612 max_chrg_current = <3000>;
613 max_chrg_voltage = <4350>;
614 sleep_enter_current = <300>;
615 sleep_exit_current = <300>;
616 power_off_thresd = <3400>;
617 zero_algorithm_vol = <3950>;
618 fb_temperature = <105>;
620 max_soc_offset = <60>;
631 i2c-scl-rising-time-ns = <140>;
632 i2c-scl-falling-time-ns = <30>;
635 #sound-dai-cells = <0>;
636 compatible = "everest,es8316";
638 clocks = <&cru SCLK_I2S_8CH_OUT>;
639 clock-names = "mclk";
640 spk-con-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
646 i2c-scl-rising-time-ns = <345>;
647 i2c-scl-falling-time-ns = <11>;
648 clock-frequency = <400000>;
652 compatible = "lsm330_acc";
653 pinctrl-names = "default";
654 pinctrl-0 = <&lsm330a_irq_gpio>;
656 irq-gpio = <&gpio2 27 IRQ_TYPE_EDGE_RISING>;
657 type = <SENSOR_TYPE_ACCEL>;
659 poll_delay_ms = <30>;
660 power-off-in-suspend = <1>;
666 compatible = "lsm330_gyro";
667 pinctrl-names = "default";
668 pinctrl-0 = <&lsm330g_irq_gpio>;
670 irq-gpio = <&gpio1 20 IRQ_TYPE_EDGE_RISING>;
671 type = <SENSOR_TYPE_GYROSCOPE>;
673 power-off-in-suspend = <1>;
674 poll_delay_ms = <30>;
679 compatible = "invensense,mpu6500";
680 pinctrl-names = "default";
681 pinctrl-0 = <&mpu6500_irq_gpio>;
683 irq-gpio = <&gpio2 27 IRQ_TYPE_EDGE_RISING>;
684 mpu-int_config = <0x10>;
685 mpu-level_shifter = <0>;
686 mpu-orientation = <1 0 0 0 1 0 0 0 1>;
690 support-hw-poweroff = <1>;
696 compatible = "ak8963";
697 pinctrl-names = "default";
698 pinctrl-0 = <&ak8963_irq_gpio>;
700 type = <SENSOR_TYPE_COMPASS>;
701 irq-gpio = <&gpio2 28 IRQ_TYPE_EDGE_RISING>;
703 poll_delay_ms = <30>;
709 compatible = "capella,light_cm3218";
710 pinctrl-names = "default";
711 pinctrl-0 = <&cm3218_irq_gpio>;
713 type = <SENSOR_TYPE_LIGHT>;
714 irq-gpio = <&gpio4 24 IRQ_TYPE_EDGE_FALLING>;
716 poll_delay_ms = <30>;
720 compatible = "fairchild,fusb302";
722 pinctrl-names = "default";
723 pinctrl-0 = <&fusb0_int>;
724 int-n-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
731 i2c-scl-rising-time-ns = <150>;
732 i2c-scl-falling-time-ns = <30>;
733 clock-frequency = <400000>;
736 compatible = "goodix,gt9xx";
738 touch-gpio = <&gpio3 12 IRQ_TYPE_LEVEL_LOW>;
739 reset-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
743 tp-supply = <&vcc3v0_tp>;
750 bt656-supply = <&vcc1v8_dvp>;
751 audio-supply = <&vcca1v8_codec>;
752 sdmmc-supply = <&vcc_sd>;
753 gpio1830-supply = <&vcc_3v0>;
781 cpu-supply = <&vdd_cpu_l>;
785 cpu-supply = <&vdd_cpu_l>;
789 cpu-supply = <&vdd_cpu_l>;
793 cpu-supply = <&vdd_cpu_l>;
797 cpu-supply = <&vdd_cpu_b>;
801 cpu-supply = <&vdd_cpu_b>;
806 mali-supply = <&vdd_gpu>;
815 max-freq = <50000000>;
818 compatible = "inv-spi,mpu6500";
819 pinctrl-names = "default";
820 pinctrl-0 = <&mpu6500_irq_gpio>;
821 irq-gpio = <&gpio2 27 IRQ_TYPE_EDGE_RISING>;
823 spi-max-frequency = <1000000>;
826 mpu-int_config = <0x00>;
827 mpu-level_shifter = <0>;
828 mpu-orientation = <1 0 0 0 1 0 0 0 1>;
832 support-hw-poweroff = <1>;
843 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
844 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
852 u2phy0_otg: otg-port {
856 u2phy0_host: host-port {
857 phy-supply = <&vcc5v0_host>;
863 pinctrl-names = "default";
864 pinctrl-0 = <&uart0_xfer &uart0_cts>;
903 wifi_enable_h: wifi-enable-h {
904 rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
909 uart0_gpios: uart0-gpios {
910 rockchip,pins = <2 19 RK_FUNC_GPIO &pcfg_pull_none>;
915 pmic_int_l: pmic-int-l {
917 <1 21 RK_FUNC_GPIO &pcfg_pull_up>;
920 pmic_dvs2: pmic-dvs2 {
922 <1 18 RK_FUNC_GPIO &pcfg_pull_down>;
924 vsel1_gpio: vsel1-gpio {
926 <1 17 RK_FUNC_GPIO &pcfg_pull_down>;
928 vsel2_gpio: vsel2-gpio {
930 <1 14 RK_FUNC_GPIO &pcfg_pull_down>;
935 mh248_irq_gpio: mh248-irq-gpio {
936 rockchip,pins = <1 2 RK_FUNC_GPIO &pcfg_pull_up>;
942 rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_up>;
947 lsm330a_irq_gpio: lsm330a-irq-gpio {
948 rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
953 lsm330g_irq_gpio: lsm330g-irq-gpio {
954 rockchip,pins = <1 20 RK_FUNC_GPIO &pcfg_pull_none>;
959 mpu6500_irq_gpio: mpu6500-irq-gpio {
960 rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
965 ak8963_irq_gpio: ak8963-irq-gpio {
966 rockchip,pins = <2 28 RK_FUNC_GPIO &pcfg_pull_none>;
971 cm3218_irq_gpio: cm3218-irq-gpio {
972 rockchip,pins = <4 24 RK_FUNC_GPIO &pcfg_pull_up>;
977 host_vbus_drv: host-vbus-drv {
979 <4 25 RK_FUNC_GPIO &pcfg_pull_none>;
984 fusb0_int: fusb0-int {
986 <1 1 RK_FUNC_GPIO &pcfg_pull_up>;
996 #address-cells = <1>;
998 edp_out_panel: endpoint@0 {
1000 remote-endpoint = <&panel_in_edp>;
1008 pmu1830-supply = <&vcc_1v8>;
1013 logo,mode = "center";