--- /dev/null
+/dts-v1/;
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/rkfb/rk_fb.h>
+#include "rk3368.dtsi"
+#include "../../../arm/boot/dts/lcd-ld089wu1-mipi.dtsi"
+/ {
+ chosen {
+ bootargs = "earlyprintk=uart8250-32bit,0xff690000 clk_ignore_unused";
+ };
+
+ wireless-wlan {
+ compatible = "wlan-platdata";
+
+ rockchip,grf = <&grf>;
+
+ /* wifi_chip_type - wifi chip define
+ * bcmwifi ==> like ap6xxx, rk90x;
+ * rtkwifi ==> like rtl8188xx, rtl8723xx;
+ * esp8089 ==> esp8089;
+ * other ==> for other wifi;
+ */
+ wifi_chip_type = "bcmwifi";
+
+ sdio_vref = <1800>; //1800mv or 3300mv
+ power_pmu_regulator = "rk818_ldo8_reg";
+ power_pmu_enable_level = <1>; //1->HIGH, 0->LOW
+ vref_pmu_regulator = "rk818_ldo8_reg";
+ vref_pmu_enable_level = <1>; //1->HIGH, 0->LOW
+
+ WIFI,poweren_gpio = <&gpio3 GPIO_A4 GPIO_ACTIVE_HIGH>;
+ WIFI,host_wake_irq = <&gpio3 GPIO_A6 GPIO_ACTIVE_HIGH>;
+
+ status = "okay";
+ };
+
+ wireless-bluetooth {
+ compatible = "bluetooth-platdata";
+ uart_rts_gpios = <&gpio2 GPIO_D3 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default","rts_gpio";
+ pinctrl-0 = <&uart0_rts>;
+ pinctrl-1 = <&uart0_rts_gpio>;
+
+ BT,power_gpio = <&gpio3 GPIO_A3 GPIO_ACTIVE_HIGH>;
+ BT,reset_gpio = <&gpio3 GPIO_A5 GPIO_ACTIVE_HIGH>;
+ BT,wake_gpio = <&gpio3 GPIO_A2 GPIO_ACTIVE_HIGH>;
+ BT,wake_host_irq = <&gpio3 GPIO_A7 GPIO_ACTIVE_HIGH>;
+
+ status = "okay";
+ };
+
+ hallsensor {
+ compatible = "hall_och165t";
+ type = <SENSOR_TYPE_HALL>;
+ irq-gpio = <&gpio0 GPIO_C0 IRQ_TYPE_EDGE_BOTH>;
+ };
+
+ backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm0 0 25000>;
+ 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>;
+ default-brightness-level = <200>;
+ enable-gpios = <&gpio0 GPIO_C4 GPIO_ACTIVE_HIGH>;
+ };
+
+ pwm_regulator {
+ compatible = "rockchip_pwm_regulator";
+ pwms = <&pwm1 0 2000>;
+ rockchip,pwm_id= <1>;
+ rockchip,pwm_voltage_map= <925000 950000 975000 1000000 1025000 1050000 1075000 1100000 1125000 1150000 1175000 1200000 1225000 1250000 1275000 1300000 1325000 1350000 1375000 1400000>;
+ rockchip,pwm_voltage= <1000000>;
+ rockchip,pwm_min_voltage= <925000>;
+ rockchip,pwm_max_voltage= <1400000>;
+ rockchip,pwm_suspend_voltage= <950000>;
+ rockchip,pwm_coefficient= <475>;
+ regulators {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pwm_reg0: regulator@0 {
+ regulator-compatible = "pwm_dcdc1";
+ regulator-name= "vdd_logic";
+ regulator-min-microvolt = <925000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+ };
+ };
+
+ codec_hdmi_i2s: codec-hdmi-i2s {
+ compatible = "hdmi-i2s";
+ };
+
+ codec_hdmi_spdif: codec-hdmi-spdif {
+ compatible = "hdmi-spdif";
+ };
+
+ rockchip-hdmi-i2s {
+ compatible = "rockchip-hdmi-i2s";
+ dais {
+ dai0 {
+ audio-codec = <&codec_hdmi_i2s>;
+ i2s-controller = <&i2s0>;
+ format = "i2s";
+ };
+ };
+ };
+
+ rockchip-hdmi-spdif {
+ compatible = "rockchip-hdmi-spdif";
+ dais {
+ dai0 {
+ audio-codec = <&codec_hdmi_spdif>;
+ i2s-controller = <&spdif>;
+ };
+ };
+ };
+
+ rockchip-es8316 {
+ compatible = "rockchip-es8316";
+ dais {
+ dai0 {
+ audio-codec = <&es8316>;
+ i2s-controller = <&i2s0>;
+ format = "i2s";
+ };
+ };
+ };
+
+ io-domains {
+ compatible = "rockchip,rk3368-io-voltage-domain";
+ rockchip,grf = <&grf>;
+ rockchip,pmugrf = <&pmugrf>;
+
+ /*GRF_IO_VSEL*/
+ gpio30-supply = <&rk818_dcdc4_reg>; /*APIO1_VDD*/
+ wifi-supply = <&rk818_ldo8_reg>; /*APIO2_VDD*/
+ audio-supply = <&rk818_dcdc4_reg>; /*APIO3_VDD*/
+ gpio1830-supply = <&rk818_dcdc4_reg>; /*ADIO4_VDD*/
+ sdcard-supply = <&rk818_ldo9_reg>; /*SDMMC_VDD*/
+
+ /*PMU_GRF_IO_VSEL*/
+ pmu-supply = <&rk818_ldo5_reg>; /*PMUIO_VDD*/
+ vop-supply = <&rk818_ldo5_reg>; /*LCDC_VDD*/
+ };
+};
+
+&pinctrl {
+ //used for init some gpio
+ init-gpios = <&gpio0 GPIO_A6 GPIO_ACTIVE_HIGH>;
+
+ gpio0_gpio {
+ gpio0_c7: gpio0-c7 {
+ rockchip,pins = <0 GPIO_C7 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+ gpio0_a3: gpio0-a3 {
+ rockchip,pins = <0 GPIO_A3 RK_FUNC_3 &pcfg_pull_none>;
+ };
+ gpio0_c2: gpio0-c2 {
+ rockchip,pins = <0 GPIO_C2 RK_FUNC_GPIO &pcfg_pull_down>;
+ };
+
+ //to add
+ };
+
+};
+
+&nandc0 {
+ status = "disabled"; // used nand set "disabled" ,used emmc set "okay"
+};
+
+&nandc0reg {
+ status = "okay"; // used nand set "disabled" ,used emmc set "okay"
+};
+
+&emmc {
+ clock-frequency = <100000000>;
+ clock-freq-min-max = <400000 100000000>;
+
+ supports-highspeed;
+ supports-emmc;
+ bootpart-no-access;
+
+ //supports-tSD;
+ //supports-DDR_MODE; //you should set the two value in your project. only close in RK3288-SDK board.
+ //caps2-mmc-hs200;
+
+ ignore-pm-notify;
+ keep-power-in-suspend;
+
+ //poll-hw-reset
+ status = "okay";
+};
+
+&sdmmc {
+ clock-frequency = <50000000>;
+ clock-freq-min-max = <400000 50000000>;
+ supports-highspeed;
+ supports-sd;
+ broken-cd;
+ card-detect-delay = <200>;
+
+ ignore-pm-notify;
+ keep-power-in-suspend;
+
+ vmmc-supply = <&rk818_ldo1_reg>;
+ status = "okay";
+};
+
+&sdio {
+ clock-frequency = <50000000>;
+ clock-freq-min-max = <200000 50000000>;
+ supports-highspeed;
+ supports-sdio;
+ ignore-pm-notify;
+ keep-power-in-suspend;
+ //cap-sdio-irq;
+ status = "okay";
+};
+
+&spi0 {
+ status = "disabled";
+};
+
+&spi1 {
+ status = "disabled";
+};
+
+&spi2 {
+ status = "disabled";
+};
+
+&uart_dbg {
+ status = "okay";
+};
+
+&uart_bt {
+ status = "okay";
+ dma-names = "!tx", "!rx";
+ pinctrl-0 = <&uart0_xfer &uart0_cts>;
+};
+
+&i2c0 {
+ status = "okay";
+ syr827: syr827@40 {
+ compatible = "silergy,syr82x";
+ reg = <0x40>;
+ status = "okay";
+ regulators {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ syr827_dc1: regulator@0 {
+ reg = <0>;
+ regulator-compatible = "syr82x_dcdc1";
+ regulator-name = "vdd_arm";
+ regulator-min-microvolt = <712500>;
+ regulator-max-microvolt = <1500000>;
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-mode = <0x2>;
+ regulator-state-disabled;
+ regulator-state-uv = <900000>;
+ };
+ };
+ };
+ };
+ syr828: syr828@41 {
+ compatible = "silergy,syr82x";
+ reg = <0x41>;
+ status = "okay";
+ regulators {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ syr828_dc1: regulator@0 {
+ reg = <0>;
+ regulator-compatible = "syr82x_dcdc1";
+ regulator-name = "vdd_gpu";
+ regulator-min-microvolt = <712500>;
+ regulator-max-microvolt = <1500000>;
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-initial-mode = <0x2>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-mode = <0x2>;
+ regulator-state-enabled;
+ regulator-state-uv = <900000>;
+ };
+ };
+ };
+ };
+
+ rk818: rk818@1c {
+ reg = <0x1c>;
+ status = "okay";
+ compatible = "rockchip,rk818";
+ battery {
+ ocv_table = <3300 3599 3671 3701 3728 3746 3762
+ 3772 3781 3792 3816 3836 3866 3910
+ 3942 3971 4002 4050 4088 4132 4183>;
+ design_capacity = <3914>;
+ design_qmax = <4000>;
+ max_overcharge = <100>;
+ max_charge_currentmA = <1500>;
+ max_charge_voltagemV = <4260>;
+ max_bat_voltagemV = <4200>;
+ sleep_enter_current = <150>;
+ sleep_exit_current = <180>;
+ };
+ };
+};
+
+&i2c1 {
+ status = "okay";
+ es8316: es8316@10 {
+ compatible = "es8316";
+ reg = <0x10>;
+ status = "okay";
+ };
+};
+
+&i2c2 {
+ status = "okay";
+ touchscreen@14 {
+ compatible = "goodix,gt9xx";
+ reg = <0x14>;
+ touch-gpio = <&gpio0 GPIO_B4 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpio = <&gpio0 GPIO_B3 GPIO_ACTIVE_HIGH>;
+ max-x = <1920>;
+ max-y = <1200>;
+ tp-size = <89>;
+ };
+};
+
+&i2c3 {
+ status = "okay";
+};
+
+&i2c4 {
+ status = "okay";
+
+ mpu6050:mpu@68{
+ compatible = "mpu6050";
+ reg = <0x68>;
+ mpu-int_config = <0x10>;
+ mpu-level_shifter = <0>;
+ mpu-orientation = <0 1 0 1 0 0 0 0 1>;
+ orientation-x= <0>;
+ orientation-y= <1>;
+ orientation-z= <1>;
+ irq-gpio = <&gpio3 GPIO_B6 IRQ_TYPE_LEVEL_LOW>;
+ mpu-debug = <0>;
+ };
+
+
+ ak8963:compass@0d{
+ compatible = "mpu_ak8963";
+ reg = <0x0d>;
+ compass-bus = <0>;
+ compass-adapt_num = <0>;
+ compass-orientation = <1 0 0 0 1 0 0 0 1>;
+ orientation-x= <0>;
+ orientation-y= <0>;
+ orientation-z= <1>;
+ compass-debug = <1>;
+ status = "okay";
+ };
+
+};
+
+&i2c5 {
+ status = "disabled";
+};
+
+&fb {
+ status = "okay";
+ rockchip,disp-mode = <NO_DUAL>;
+ rockchip,uboot-logo-on = <0>;
+};
+
+&rk_screen {
+ status = "okay";
+ display-timings = <&disp_timings>;
+};
+
+&lcdc {
+ status = "okay";
+ rockchip,mirror = <NO_MIRROR>;
+ rockchip,cabc_mode = <0>;
+ rockchip,fb-win-map = <FB_DEFAULT_ORDER>;
+ power_ctr: power_ctr {
+ rockchip,debug = <0>;
+ lcd_en:lcd_en {
+ rockchip,power_type = <GPIO>;
+ gpios = <&gpio0 GPIO_C6 GPIO_ACTIVE_HIGH>;
+ rockchip,delay = <10>;
+ };
+
+ lcd_cs:lcd_cs {
+ rockchip,power_type = <GPIO>;
+ gpios = <&gpio0 GPIO_C5 GPIO_ACTIVE_HIGH>;
+ rockchip,delay = <10>;
+ };
+
+ /*lcd_rst:lcd_rst {
+ rockchip,power_type = <GPIO>;
+ gpios = <&gpio3 GPIO_D6 GPIO_ACTIVE_HIGH>;
+ rockchip,delay = <5>;
+ };*/
+ };
+};
+
+
+&hdmi {
+ status = "okay";
+ rockchips,hdmi_audio_source = <0>;
+};
+
+&adc {
+ status = "okay";
+
+ rockchip_headset {
+ compatible = "rockchip_headset";
+ headset_gpio = <&gpio0 GPIO_C7 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio0_c7>;//gpio0_c7
+ io-channels = <&adc 2>;
+ /*
+ hook_gpio = ;
+ hook_down_type = ; //interrupt hook key down status
+ */
+ };
+
+ key {
+ compatible = "rockchip,key";
+ io-channels = <&adc 1>;
+
+ vol-up-key {
+ linux,code = <115>;
+ label = "volume up";
+ rockchip,adc_value = <1>;
+ };
+
+ vol-down-key {
+ linux,code = <114>;
+ label = "volume down";
+ rockchip,adc_value = <170>;
+ };
+
+ power-key {
+ gpios = <&gpio0 GPIO_A2 GPIO_ACTIVE_LOW>;
+ linux,code = <116>;
+ label = "power";
+ gpio-key,wakeup;
+ };
+ };
+};
+
+&pwm0 {
+ status = "okay";
+};
+
+&pwm1 {
+ status = "disabled";
+}
+
+&clk_ddr_dvfs_table {
+ operating-points = <
+ /* KHz uV */
+ 200000 1100000
+ 300000 1100000
+ 400000 1100000
+ 533000 1150000
+ >;
+
+ freq-table = <
+ /*status freq(KHz)*/
+ SYS_STATUS_NORMAL 400000
+ SYS_STATUS_SUSPEND 200000
+ SYS_STATUS_VIDEO_1080P 240000
+ SYS_STATUS_VIDEO_4K 400000
+ SYS_STATUS_PERFORMANCE 528000
+ SYS_STATUS_DUALVIEW 400000
+ SYS_STATUS_BOOST 324000
+ SYS_STATUS_ISP 400000
+ >;
+ auto-freq-table = <
+ 240000
+ 324000
+ 396000
+ 528000
+ >;
+ auto-freq=<0>;
+ status="disabled";
+};
+
+&dwc_control_usb {
+ host_drv_gpio = <&gpio0 GPIO_A4 GPIO_ACTIVE_LOW>;
+ otg_drv_gpio = <&gpio0 GPIO_D1 GPIO_ACTIVE_LOW>;
+ rockchip,remote_wakeup;
+ rockchip,usb_irq_wakeup;
+};
+
+/include/ "../../../arm/boot/dts/rk818.dtsi"
+&rk818 {
+ gpios =<&gpio0 GPIO_A1 GPIO_ACTIVE_HIGH>,<&gpio0 GPIO_A0 GPIO_ACTIVE_LOW>;
+ rk818,system-power-controller;
+
+ regulators {
+
+ rk818_dcdc1_reg: regulator@0{
+ regulator-name= "vdd_arm";/*vcc arm*/
+ regulator-min-microvolt = <700000>;/*<725000>;*/
+ regulator-max-microvolt = <1500000>;
+ regulator-initial-mode = <0x2>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-mode = <0x2>;
+ regulator-state-enabled;
+ regulator-state-uv =<900000>;
+ };
+ };
+
+ rk818_dcdc2_reg: regulator@1 {
+ regulator-name= "vdd_gpu";/*vcc gpu*/
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <0x2>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-mode = <0x2>;
+ regulator-state-enabled;
+ regulator-state-uv = <1200000>;
+ };
+ };
+
+ rk818_dcdc3_reg: regulator@2 {
+ regulator-name= "vcc_ddr";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <0x2>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-mode = <0x2>;
+ regulator-state-enabled;
+ regulator-state-uv = <1200000>;
+ };
+ };
+
+ rk818_dcdc4_reg: regulator@3 {
+ regulator-name= "vccio";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <0x2>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-mode = <0x2>;
+ regulator-state-enabled;
+ regulator-state-uv = <3000000>;
+ };
+ };
+
+ rk818_ldo1_reg: regulator@4 {
+ regulator-name= "vcc_codec";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-enabled;
+ regulator-state-uv = <3300000>;
+ };
+ };
+
+ rk818_ldo2_reg: regulator@5 {
+ regulator-name= "vcc_tp";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-enabled;
+ regulator-state-uv = <3300000>;
+ };
+ };
+
+ rk818_ldo3_reg: regulator@6 {
+ regulator-name= "vdd_10";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-enabled;
+ regulator-state-uv = <1000000>;
+ };
+ };
+
+ rk818_ldo4_reg:regulator@7 {
+ regulator-name= "vcc18_lcd";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-disabled;
+ regulator-state-uv = <1800000>;
+ };
+ };
+
+ rk818_ldo5_reg: regulator@8 {
+ regulator-name= "vccio_pmu";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-enabled;
+ regulator-state-uv = <1800000>;
+ };
+ };
+
+ rk818_ldo6_reg: regulator@9 {
+ regulator-name= "vdd10_lcd";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-disabled;
+ regulator-state-uv = <1000000>;
+ };
+ };
+
+ rk818_ldo7_reg: regulator@10 {
+ regulator-name= "vcc_18";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-enabled;
+ regulator-state-uv = <1800000>;
+ };
+ };
+
+ rk818_ldo8_reg: regulator@11 {
+ regulator-name= "vccio_wl";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-enabled;
+ regulator-state-uv = <1800000>;
+ };
+ };
+
+ rk818_ldo9_reg: regulator@12 {
+ regulator-name= "vcc_sd";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-initial-state = <3>;
+ regulator-state-mem {
+ regulator-state-enabled;
+ regulator-state-uv = <3300000>;
+ };
+ };
+
+ rk818_ldo10_reg: regulator@13 {
+ regulator-name= "rk818_ldo10";
+ regulator-state-mem {
+ regulator-state-disabled;
+ };
+ };
+ };
+};
+
+&ion_cma {
+ reg = <0x00000000 0x28000000>; /* 640MB */
+};
+