#include "rk3399.dtsi"
#include "rk3399-android.dtsi"
+#include "rk3399-opp.dtsi"
#include <dt-bindings/sensor-dev.h>
+#include <dt-bindings/pwm/pwm.h>
/ {
compatible = "rockchip,rk3399-mid", "rockchip,rk3399";
+ hall_sensor: hall-mh248 {
+ compatible = "hall-mh248";
+ pinctrl-names = "default";
+ pinctrl-0 = <&mh248_irq_gpio>;
+ irq-gpio = <&gpio1 2 IRQ_TYPE_EDGE_BOTH>;
+ hall-active = <1>;
+ status = "okay";
+ };
+
vcc_sys: vcc-sys {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
backlight: backlight {
compatible = "pwm-backlight";
- pwms = <&pwm0 0 25000 0>;
+ pwms = <&vop0_pwm 0 25000 PWM_POLARITY_INVERTED>;
brightness-levels = <
- 255 254 253 252 251 250 249 248 247 246 245 244
- 243 242 241 240 239 238 237 236 235 234 233 232
- 231 230 229 228 227 226 225 224 223 222 221 220
- 219 218 217 216 215 214 213 212 211 210 209 208
- 207 206 205 204 203 202 201 200 199 198 197 196
- 195 194 193 192 191 190 189 188 187 186 185 184
- 183 182 181 180 179 178 177 176 175 174 173 172
- 171 170 169 168 167 166 165 164 163 162 161 160
- 159 158 157 156 155 154 153 152 151 150 149 148
- 147 146 145 144 143 142 141 140 139 138 137 136
- 135 134 133 132 131 130 129 128 127 126 125 124
- 123 122 121 120 119 118 117 116 115 114 113 112
- 111 110 109 108 107 106 105 104 103 102 101 100
- 99 98 97 96 95 94 93 92 91 90 89 88
- 87 86 85 84 83 82 81 80 79 78 77 76
- 75 74 73 72 71 70 69 68 67 66 65 64
- 63 62 61 60 59 58 57 56 55 54 53 52
- 51 50 49 48 47 46 45 44 43 42 41 40
- 39 38 37 36 35 34 33 32 31 30 29 28
- 27 26 25 24 23 22 21 20 19 18 17 16
- 15 14 13 12 11 10 9 8 7 6 5 4
- 3 2 1 0>;
+ 0 1 51 52 52 53 53 54
+ 54 55 55 56 56 57 57 58
+ 58 59 59 60 61 61 62 63
+ 63 64 65 65 66 67 67 68
+ 69 69 70 71 71 72 73 73
+ 74 75 75 76 77 77 78 79
+ 79 80 80 81 81 82 83 83
+ 84 85 86 86 87 88 89 89
+ 90 91 92 92 93 94 95 95
+ 96 97 98 98 99 100 101 101
+ 102 103 104 104 105 106 107 107
+ 108 109 110 110 111 112 113 113
+ 114 115 116 116 117 118 119 119
+ 120 121 122 122 123 124 125 125
+ 126 127 128 128 129 130 131 131
+ 132 133 134 134 135 136 137 137
+ 138 139 140 140 141 142 143 143
+ 144 145 146 146 147 148 149 149
+ 150 151 152 152 153 154 155 155
+ 156 157 158 158 159 160 161 161
+ 162 163 164 164 165 166 167 167
+ 168 169 170 170 171 172 173 173
+ 174 175 176 176 177 178 179 179
+ 180 181 182 182 183 184 185 185
+ 186 187 188 188 189 190 191 191
+ 216 217 218 218 219 220 221 221
+ 222 223 224 224 225 226 227 227
+ 228 229 230 230 231 232 233 233
+ 234 235 236 236 237 238 239 239
+ 240 241 242 242 243 244 245 245
+ 246 247 248 248 249 250 251 251
+ 252 253 254 254 255 255 255 255>;
default-brightness-level = <200>;
enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
};
wireless-bluetooth {
compatible = "bluetooth-platdata";
+ clocks = <&rk818 1>;
+ clock-names = "ext_clock";
//wifi-bt-power-toggle;
uart_rts_gpios = <&gpio2 19 GPIO_ACTIVE_LOW>; /* GPIO2_C3 */
pinctrl-names = "default", "rts_gpio";
BT,wake_host_irq = <&gpio0 4 GPIO_ACTIVE_HIGH>; /* GPIO0_A4 */
status = "okay";
};
+
+ uboot-charge {
+ compatible = "rockchip,uboot-charge";
+ rockchip,uboot-charge-on = <0>;
+ rockchip,android-charge-on = <1>;
+ };
+
+ vibrator {
+ compatible = "rk-vibrator-gpio";
+ vibrator-gpio = <&gpio4 30 GPIO_ACTIVE_LOW>;
+ status = "okay";
+ };
+
+ rk_headset {
+ compatible = "rockchip_headset";
+ headset_gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&hp_det>;
+ io-channels = <&saradc 2>;
+ };
+};
+
+&rk_key {
+ compatible = "rockchip,key";
+ status = "okay";
+
+ io-channels = <&saradc 1>;
+
+ vol-up-key {
+ linux,code = <114>;
+ label = "volume up";
+ rockchip,adc_value = <1>;
+ };
+
+ vol-down-key {
+ linux,code = <115>;
+ label = "volume down";
+ rockchip,adc_value = <170>;
+ };
+
+ power-key {
+ gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
+ linux,code = <116>;
+ label = "power";
+ gpio-key,wakeup;
+ };
+
+ menu-key {
+ linux,code = <59>;
+ label = "menu";
+ rockchip,adc_value = <746>;
+ };
+
+ home-key {
+ linux,code = <102>;
+ label = "home";
+ rockchip,adc_value = <355>;
+ };
+
+ back-key {
+ linux,code = <158>;
+ label = "back";
+ rockchip,adc_value = <560>;
+ };
+
+ camera-key {
+ linux,code = <212>;
+ label = "camera";
+ rockchip,adc_value = <450>;
+ };
};
&sdmmc {
cap-sd-highspeed;
disable-wp;
num-slots = <1>;
- sd-uhs-sdr104;
+ //sd-uhs-sdr104;
vqmmc-supply = <&vcc_sd>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
};
&emmc_phy {
- freq-sel = <200000000>;
- dr-sel = <50>;
- opdelay = <4>;
status = "okay";
};
mmc-hs400-1_8v;
supports-emmc;
non-removable;
+ keep-power-in-suspend;
mmc-hs400-enhanced-strobe;
status = "okay";
};
i2c-scl-falling-time-ns = <30>;
clock-frequency = <400000>;
- xz3216: dcdc@60 {
- compatible = "xz3216";
- reg = <0x60>;
- status = "okay";
- regulators {
- #address-cells = <1>;
- #size-cells = <0>;
- vdd_cpu_b: regulator@0 {
- reg = <0>;
- vin-supply = <&vcc_sys>;
- regulator-compatible = "xz_dcdc1";
- regulator-name = "vdd_cpu_b";
- regulator-min-microvolt = <712500>;
- regulator-max-microvolt = <1500000>;
- regulator-ramp-delay = <1000>;
- fcs,suspend-voltage-selector = <1>;
- regulator-always-on;
- regulator-boot-on;
- regulator-state-mem {
- regulator-off-in-suspend;
- };
- };
+ vdd_cpu_b: syr837@40 {
+ compatible = "silergy,syr827";
+ reg = <0x40>;
+ vin-supply = <&vcc_sys>;
+ regulator-compatible = "fan53555-reg";
+ pinctrl-0 = <&vsel1_gpio>;
+ vsel-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
+ regulator-name = "vdd_cpu_b";
+ regulator-min-microvolt = <712500>;
+ regulator-max-microvolt = <1500000>;
+ regulator-ramp-delay = <1000>;
+ fcs,suspend-voltage-selector = <1>;
+ regulator-always-on;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-off-in-suspend;
};
};
reg = <0x41>;
vin-supply = <&vcc_sys>;
regulator-compatible = "fan53555-reg";
+ pinctrl-0 = <&vsel2_gpio>;
+ vsel-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
regulator-name = "vdd_gpu";
regulator-min-microvolt = <735000>;
regulator-max-microvolt = <1400000>;
regulator-ramp-delay = <1000>;
fcs,suspend-voltage-selector = <1>;
- regulator-always-on;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
rockchip,system-power-controller;
rk818,support_dc_chg = <1>;/*1: dc chg; 0:usb chg*/
wakeup-source;
+ extcon = <&fusb0>;
#clock-cells = <1>;
vcc1-supply = <&vcc_sys>;
regulator-max-microvolt = <1350000>;
regulator-ramp-delay = <6001>;
regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <1000000>;
+ regulator-off-in-suspend;
};
};
regulator-max-microvolt = <3000000>;
regulator-name = "vcc_3v0";
regulator-state-mem {
- regulator-off-in-suspend;
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <3000000>;
};
};
regulator-max-microvolt = <1500000>;
regulator-name = "vcc_1v5";
regulator-state-mem {
- regulator-off-in-suspend;
+ regulator-on-in-suspend;
+ regulator-suspend-microvolt = <1500000>;
};
};
regulator-max-microvolt = <3300000>;
regulator-name = "vcc3v3_s3";
regulator-state-mem {
- regulator-on-in-suspend;
- regulator-suspend-microvolt = <3300000>;
+ regulator-off-in-suspend;
};
};
vcc_sd: LDO_REG9 {
regulator-always-on;
regulator-boot-on;
- regulator-min-microvolt = <3000000>;
- regulator-max-microvolt = <3000000>;
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
regulator-name = "vcc_sd";
regulator-state-mem {
regulator-on-in-suspend;
- regulator-suspend-microvolt = <3000000>;
+ regulator-suspend-microvolt = <3300000>;
};
};
};
battery {
+ compatible = "rk818-battery";
ocv_table = <3400 3675 3689 3716 3740 3756 3768 3780
3793 3807 3827 3853 3896 3937 3974 4007 4066
4110 4161 4217 4308>;
design_capacity = <7916>;
design_qmax = <8708>;
- bat_res = <100>;
+ bat_res = <65>;
max_input_current = <3000>;
- max_chrg_current = <4500>;
+ max_chrg_current = <3000>;
max_chrg_voltage = <4350>;
sleep_enter_current = <300>;
sleep_exit_current = <300>;
power_off_thresd = <3400>;
zero_algorithm_vol = <3950>;
- fb_temperature = <115>;
+ fb_temperature = <105>;
+ sample_res = <20>;
max_soc_offset = <60>;
energy_mode = <0>;
monitor_sec = <5>;
virtual_power = <0>;
power_dc2otg = <0>;
- dc_det_adc = <0>;
};
};
};
es8316: es8316@10 {
#sound-dai-cells = <0>;
compatible = "everest,es8316";
- reg = <0x10>;
- pinctrl-names = "default";
- pinctrl-0 = <&hp_det>;
+ reg = <0x11>;
clocks = <&cru SCLK_I2S_8CH_OUT>;
clock-names = "mclk";
spk-con-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
- hp-det-gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
};
};
i2c-scl-falling-time-ns = <11>;
clock-frequency = <400000>;
- mpu6500@68 {
+ lsm330_accel@1e {
status = "okay";
+ compatible = "lsm330_acc";
+ pinctrl-names = "default";
+ pinctrl-0 = <&lsm330a_irq_gpio>;
+ reg = <0x1e>;
+ irq-gpio = <&gpio2 27 IRQ_TYPE_EDGE_RISING>;
+ type = <SENSOR_TYPE_ACCEL>;
+ irq_enable = <1>;
+ poll_delay_ms = <30>;
+ power-off-in-suspend = <1>;
+ layout = <4>;
+ };
+
+ lsm330_gyro@6a {
+ status = "okay";
+ compatible = "lsm330_gyro";
+ pinctrl-names = "default";
+ pinctrl-0 = <&lsm330g_irq_gpio>;
+ reg = <0x6a>;
+ irq-gpio = <&gpio1 20 IRQ_TYPE_EDGE_RISING>;
+ type = <SENSOR_TYPE_GYROSCOPE>;
+ irq_enable = <0>;
+ power-off-in-suspend = <1>;
+ poll_delay_ms = <30>;
+ };
+
+ mpu6500@68 {
+ status = "disabled";
compatible = "invensense,mpu6500";
pinctrl-names = "default";
pinctrl-0 = <&mpu6500_irq_gpio>;
orientation-x= <1>;
orientation-y= <1>;
orientation-z= <0>;
+ support-hw-poweroff = <1>;
mpu-debug = <1>;
};
layout = <3>;
};
- sensor@20 {
- status = "disabled";
+ sensor@10 {
+ status = "okay";
compatible = "capella,light_cm3218";
pinctrl-names = "default";
pinctrl-0 = <&cm3218_irq_gpio>;
- reg = <0x20>;
+ reg = <0x10>;
type = <SENSOR_TYPE_LIGHT>;
- irq-gpio = <&gpio4 24 IRQ_TYPE_EDGE_RISING>;
+ irq-gpio = <&gpio4 24 IRQ_TYPE_EDGE_FALLING>;
irq_enable = <1>;
poll_delay_ms = <30>;
};
+
+ fusb0: fusb30x@22 {
+ compatible = "fairchild,fusb302";
+ reg = <0x22>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&fusb0_int>;
+ int-n-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+ };
};
&i2c5 {
orientation-x= <1>;
orientation-y= <0>;
orientation-z= <1>;
+ support-hw-poweroff = <1>;
mpu-debug = <1>;
};
};
+&tcphy0 {
+ extcon = <&fusb0>;
+ status = "okay";
+};
+
&tsadc {
rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
status = "okay";
};
-&u2phy1 {
+&u2phy0 {
status = "okay";
+ extcon = <&fusb0>;
- u2phy1_host: host-port {
+ u2phy0_otg: otg-port {
+ status = "okay";
+ };
+
+ u2phy0_host: host-port {
phy-supply = <&vcc5v0_host>;
status = "okay";
};
status = "okay";
};
-&usb_host1_ehci {
- status = "okay";
-};
-
-&usb_host1_ohci {
- status = "okay";
-};
-
&usbdrd3_0 {
+ extcon = <&fusb0>;
status = "okay";
};
status = "okay";
};
-&usbdrd3_1 {
- status = "okay";
-};
-
-&usbdrd_dwc3_1 {
- status = "okay";
-};
-
-&pwm0 {
+&vop0_pwm {
+ assigned-clocks = <&cru SCLK_VOP0_PWM>;
+ assigned-clock-rates = <50000000>;
status = "okay";
};
rockchip,pins =
<1 18 RK_FUNC_GPIO &pcfg_pull_down>;
};
+ vsel1_gpio: vsel1-gpio {
+ rockchip,pins =
+ <1 17 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ vsel2_gpio: vsel2-gpio {
+ rockchip,pins =
+ <1 14 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ };
+
+ hallsensor {
+ mh248_irq_gpio: mh248-irq-gpio {
+ rockchip,pins = <1 2 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
};
headphone {
};
};
+ lsm330_a {
+ lsm330a_irq_gpio: lsm330a-irq-gpio {
+ rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
+ lsm330_g {
+ lsm330g_irq_gpio: lsm330g-irq-gpio {
+ rockchip,pins = <1 20 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+
mpu6500 {
mpu6500_irq_gpio: mpu6500-irq-gpio {
rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
cm3218 {
cm3218_irq_gpio: cm3218-irq-gpio {
- rockchip,pins = <4 24 RK_FUNC_GPIO &pcfg_pull_none>;
+ rockchip,pins = <4 24 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
<4 25 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
+
+ fusb30x {
+ fusb0_int: fusb0-int {
+ rockchip,pins =
+ <1 1 RK_FUNC_GPIO &pcfg_pull_up>;
+ };
+ };
};
&rk_screen {
#include <dt-bindings/display/screen-timing/lcd-LP097Qx2.dtsi>
};
+&cdn_dp_sound {
+ status = "okay";
+};
+
+&cdn_dp_fb {
+ status = "okay";
+ extcon = <&fusb0>;
+ phys = <&tcphy0_dp>;
+ dp_vop_sel = <DISPLAY_SOURCE_LCDC1>;
+};
+
&vopb_rk_fb {
status = "okay";
+ rockchip,cabc_mode = <1>;
power_ctr: power_ctr {
rockchip,debug = <0>;
&edp_rk_fb {
status = "okay";
};
+
+&pvtm {
+ status = "okay";
+};
+
+&pmu_pvtm {
+ status = "okay";
+};