From 74a6f9de67d0958afb34f391b24df5a2e42ef8fd Mon Sep 17 00:00:00 2001 From: Jianhui Wang Date: Mon, 15 Jun 2020 10:43:48 +0800 Subject: [PATCH] ARM: dts: rk3288: bring up th804 tablet Change-Id: I6b6c8258ca4cbb2513ab40f93770f6bae802e3e1 Signed-off-by: Jianhui Wang --- arch/arm/boot/dts/rk3288-th804-avb.dts | 175 +++++++++++++++++++++-- arch/arm/boot/dts/rk3288-th804.dtsi | 187 ++++++++++++++++--------- arch/arm/boot/dts/rk3288.dtsi | 1 + 3 files changed, 278 insertions(+), 85 deletions(-) diff --git a/arch/arm/boot/dts/rk3288-th804-avb.dts b/arch/arm/boot/dts/rk3288-th804-avb.dts index fc695e71721b..d98806003ebc 100644 --- a/arch/arm/boot/dts/rk3288-th804-avb.dts +++ b/arch/arm/boot/dts/rk3288-th804-avb.dts @@ -13,25 +13,170 @@ chosen { bootargs = "earlycon=uart8250,mmio32,0xff690000 vmalloc=496M swiotlb=1 console=ttyFIQ0 androidboot.baseband=N/A androidboot.veritymode=enforcing androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init kpti=0"; }; + vcc_camera: vcc-camera-regulator { + compatible = "regulator-fixed"; + gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_pwr>; + regulator-name = "vcc_camera"; + enable-active-high; + regulator-always-on; + regulator-boot-on; + }; }; -&firmware_android { - compatible = "android,firmware"; - boot_devices = "ff0f0000.dwmmc"; - vbmeta { - compatible = "android,vbmeta"; - parts = "vbmeta,boot,system,vendor,dtbo"; - }; - fstab { - compatible = "android,fstab"; - vendor { - compatible = "android,vendor"; - dev = "/dev/block/by-name/vendor"; - type = "ext4"; - mnt_flags = "ro,barrier=1,inode_readahead_blks=8"; - fsmgr_flags = "wait,avb"; +&io_domains { + status = "okay"; + + dvp-supply = <&vcc_18>; + sdcard-supply = <&vccio_sd>; + wifi-supply = <&vccio_wl>; +}; + +&isp { + status = "disabled"; +}; + +&i2c3 { + status = "okay"; + + gc2145: gc2145@3c { + compatible = "galaxycore,gc2145"; + reg = <0x3c>; + clocks = <&cru SCLK_VIP_OUT>; + clock-names = "xvclk"; + + /*power-gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; */ + pwdn-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>; + + rockchip,camera-module-index = <1>; + rockchip,camera-module-facing = "front"; + rockchip,camera-module-name = "CameraKing"; + rockchip,camera-module-lens-name = "Largan"; + port { + gc2145_out: endpoint { + remote-endpoint = <&isp_dvp_in>; + }; }; }; + + ov8858: ov8858@36 { + compatible = "ovti,ov8858"; + reg = <0x36>; + clocks = <&cru SCLK_VIP_OUT>; + clock-names = "xvclk"; + + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "CameraKing"; + rockchip,camera-module-lens-name = "Largan-9569A2"; + /*power-gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>; */ + pwdn-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; + port { + ov8858_out: endpoint { + remote-endpoint = <&th_mipi_in>; + data-lanes = <1 2>; + }; + }; + }; + +}; + +&mipi_phy_rx0 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + th_mipi_in: endpoint@1 { + reg = <1>; + remote-endpoint = <&ov8858_out>; + data-lanes = <1 2>; + }; + }; + + port@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + + dphy_rx_out: endpoint@0 { + reg = <0>; + remote-endpoint = <&isp_mipi_in>; + }; + }; + }; +}; + +&pinctrl { + camera { + camera_pwr: camera-pwr { + rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pcfg_pull_none_4ma: pcfg-pull-none-4ma { + bias-disable; + drive-strength = <4>; + }; + + isp_pin { + isp_mipi: isp-mipi { + rockchip,pins = + /* cif_clkout */ + <2 11 RK_FUNC_1 &pcfg_pull_none_4ma>; + }; + + isp_dvp_d2d9: isp-d2d9 { + rockchip,pins = + /* cif_data2 ... cif_data9 */ + <2 0 RK_FUNC_1 &pcfg_pull_down>, + <2 1 RK_FUNC_1 &pcfg_pull_down>, + <2 2 RK_FUNC_1 &pcfg_pull_down>, + <2 3 RK_FUNC_1 &pcfg_pull_down>, + <2 4 RK_FUNC_1 &pcfg_pull_down>, + <2 5 RK_FUNC_1 &pcfg_pull_down>, + /* cif_sync, cif_href */ + <2 8 RK_FUNC_1 &pcfg_pull_down>, + <2 9 RK_FUNC_1 &pcfg_pull_down>, + /* cif_clkin */ + <2 10 RK_FUNC_1 &pcfg_pull_down>; + }; + + isp_dvp_d0d1: isp-d0d1 { + rockchip,pins = + /* cif_data0, cif_data1 */ + <2 12 RK_FUNC_1 &pcfg_pull_down>, + <2 13 RK_FUNC_1 &pcfg_pull_down>; + }; + }; +}; + +&rkisp1 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&isp_dvp_d2d9 &isp_dvp_d0d1 &isp_mipi>; + port { + #address-cells = <1>; + #size-cells = <0>; + + isp_dvp_in: endpoint@1 { + reg = <1>; + remote-endpoint = <&gc2145_out>; + }; + + isp_mipi_in: endpoint@0 { + reg = <0>; + remote-endpoint = <&dphy_rx_out>; + }; + + }; }; &vopb { diff --git a/arch/arm/boot/dts/rk3288-th804.dtsi b/arch/arm/boot/dts/rk3288-th804.dtsi index 4eca14ada3f2..8c6a535e704a 100644 --- a/arch/arm/boot/dts/rk3288-th804.dtsi +++ b/arch/arm/boot/dts/rk3288-th804.dtsi @@ -7,8 +7,51 @@ /dts-v1/; #include "rk3288.dtsi" #include "rk3288-android.dtsi" +#include / { + backlight: backlight { + compatible = "pwm-backlight"; + brightness-levels = < + 255 195 194 194 193 193 192 192 + 191 191 190 190 189 189 188 188 + 187 187 186 186 185 185 184 184 + 183 183 182 182 181 181 180 180 + 179 179 178 178 177 177 176 176 + 175 175 174 174 173 173 172 172 + 171 171 170 170 169 169 169 168 + 168 167 167 166 166 165 165 164 + 164 163 163 162 162 161 161 160 + 159 159 158 158 157 157 156 156 + 155 155 154 154 153 153 152 151 + 151 150 150 149 149 148 148 147 + 147 146 146 145 145 144 144 143 + 143 142 142 141 141 140 140 139 + 139 138 138 137 137 136 136 135 + 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 103 103 102 102 101 101 100 + 100 99 99 98 98 97 97 96 + 96 95 95 94 94 93 93 92 + 92 91 91 90 90 89 88 88 + 87 87 86 86 86 85 85 85 + 84 84 83 83 83 82 82 82 + 81 81 81 80 80 80 79 79 + 79 78 78 78 77 77 77 76 + 76 76 75 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 48 + 47 47 46 46 45 45 44 44>; + default-brightness-level = <180>; + enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&bl_en>; + pwms = <&pwm0 0 1000000 0>; + }; + vcc_sys: vsys-regulator { compatible = "regulator-fixed"; regulator-name = "vcc_sys"; @@ -83,6 +126,44 @@ io-channels = <&saradc 2>; }; + adc-keys { + compatible = "adc-keys"; + io-channels = <&saradc 1>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + poll-interval = <100>; + + vol-up-key { + label = "volume up"; + linux,code = ; + press-threshold-microvolt = <1000>; + }; + + vol-down-key { + label = "volume down"; + linux,code = ; + press-threshold-microvolt = <170000>; + }; + + }; + + gpio-keys { + compatible = "gpio-keys"; + autorepeat; + + pinctrl-names = "default"; + pinctrl-0 = <&pwrbtn>; + + power { + gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; + linux,code = ; + label = "GPIO Key Power"; + linux,input-type = <1>; + wakeup-source; + debounce-interval = <100>; + }; + }; + uboot-charge { compatible = "rockchip,uboot-charge"; rockchip,uboot-charge-on = <0>; @@ -379,21 +460,27 @@ status = "okay"; clock-frequency = <400000>; - mpu6500@68 { - compatible = "invensense,mpu6500"; + mpu6050_acc: mpu-acc@68 { status = "okay"; + compatible = "mpu6500_acc"; pinctrl-names = "default"; - pinctrl-0 = <&mpu6500_irq_gpio>; + pinctrl-0 = <&mpu6050_irq_gpio>; reg = <0x68>; irq-gpio = <&gpio8 0 IRQ_TYPE_EDGE_RISING>; - mpu-int_config = <0x10>; - mpu-level_shifter = <0>; - mpu-orientation = <1 0 0 0 1 0 0 0 1>; - orientation-x= <0>; - orientation-y= <1>; - orientation-z= <1>; - support-hw-poweroff = <0>; - mpu-debug = <0>; + irq_enable = <0>; + poll_delay_ms = <30>; + type = ; + layout = <5>; + }; + + mpu6050_gyro: mpu-gyro@68 { + status = "okay"; + compatible = "mpu6500_gyro"; + reg = <0x68>; + irq_enable = <0>; + poll_delay_ms = <30>; + type = ; + layout = <5>; }; ts@40 { @@ -408,7 +495,7 @@ x_mul = <2>; y_mul = <2>; bin_ver = <0>; - irq-gpio = <&gpio7 6 IRQ_TYPE_LEVEL_LOW>; + irq-gpio = <&gpio7 6 IRQ_TYPE_LEVEL_HIGH>; wake-gpio = <&gpio7 5 GPIO_ACTIVE_LOW>; }; }; @@ -468,48 +555,6 @@ supports-sd; }; -&backlight { - compatible = "pwm-backlight"; - brightness-levels = < - 255 195 194 194 193 193 192 192 - 191 191 190 190 189 189 188 188 - 187 187 186 186 185 185 184 184 - 183 183 182 182 181 181 180 180 - 179 179 178 178 177 177 176 176 - 175 175 174 174 173 173 172 172 - 171 171 170 170 169 169 169 168 - 168 167 167 166 166 165 165 164 - 164 163 163 162 162 161 161 160 - 159 159 158 158 157 157 156 156 - 155 155 154 154 153 153 152 151 - 151 150 150 149 149 148 148 147 - 147 146 146 145 145 144 144 143 - 143 142 142 141 141 140 140 139 - 139 138 138 137 137 136 136 135 - 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 103 103 102 102 101 101 100 - 100 99 99 98 98 97 97 96 - 96 95 95 94 94 93 93 92 - 92 91 91 90 90 89 88 88 - 87 87 86 86 86 85 85 85 - 84 84 83 83 83 82 82 82 - 81 81 81 80 80 80 79 79 - 79 78 78 78 77 77 77 76 - 76 76 75 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 48 - 47 47 46 46 45 45 44 44>; - default-brightness-level = <180>; - enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>; - pinctrl-names = "default"; - pinctrl-0 = <&bl_en>; - pwms = <&pwm0 0 1000000 0>; -}; - &dsi0 { rockchip,dual-channel = <&dsi1>; rockchip,lane-rate = <1000>; @@ -520,14 +565,14 @@ reg = <0>; backlight = <&backlight>; power-supply = <&vcc_lcd>; - reset-gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; + reset-gpios = <&gpio7 RK_PA4 GPIO_ACTIVE_LOW>; reset-delay-ms = <20>; init-delay-ms = <20>; enable-delay-ms = <20>; prepare-delay-ms = <20>; dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | - MIPI_DSI_MODE_EOT_PACKET)>; + MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>; dsi,format = ; dsi,lanes = <8>; @@ -571,6 +616,14 @@ status = "okay"; }; +&vopb_out_dsi1 { + status = "disabled"; +}; + +&vopl_out_dsi1 { + status = "disabled"; +}; + &dsi0_in_vopl { status = "disabled"; }; @@ -648,14 +701,6 @@ mali-supply = <&vdd_gpu>; }; -&hevc_service { - status = "okay"; -}; - -&vpu_service { - status = "okay"; -}; - &wdt { status = "okay"; }; @@ -672,10 +717,6 @@ status = "okay"; }; -&rga { - status = "okay"; -}; - &cpu0 { cpu-supply = <&vdd_cpu>; }; @@ -738,8 +779,14 @@ }; }; - mpu6500 { - mpu6500_irq_gpio: mpu6500-irq-gpio { + backlight { + bl_en: bl-en { + rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + mpu6050 { + mpu6050_irq_gpio: mpu6050-irq-gpio { rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_none>; }; }; diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index 7ea878b236af..7b2231e7eab5 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -9,6 +9,7 @@ #include #include #include +#include / { #address-cells = <2>;