From 68fb29a93d642b8fdb1c681da9c860384171462f Mon Sep 17 00:00:00 2001 From: goodtft Date: Thu, 8 Dec 2022 05:43:25 +0000 Subject: [PATCH] add MHS35IPS driver --- MHS35IPS-show | 137 +++++++++++++++++++++++++++ usr/99-calibration.conf-mhs35ips-0 | 9 ++ usr/99-calibration.conf-mhs35ips-180 | 9 ++ usr/99-calibration.conf-mhs35ips-270 | 9 ++ usr/99-calibration.conf-mhs35ips-90 | 9 ++ usr/mhs35ips-overlay.dtb | Bin 0 -> 2600 bytes 6 files changed, 173 insertions(+) create mode 100755 MHS35IPS-show create mode 100755 usr/99-calibration.conf-mhs35ips-0 create mode 100755 usr/99-calibration.conf-mhs35ips-180 create mode 100755 usr/99-calibration.conf-mhs35ips-270 create mode 100755 usr/99-calibration.conf-mhs35ips-90 create mode 100755 usr/mhs35ips-overlay.dtb diff --git a/MHS35IPS-show b/MHS35IPS-show new file mode 100755 index 0000000..8831ab6 --- /dev/null +++ b/MHS35IPS-show @@ -0,0 +1,137 @@ +#!/bin/bash + +sudo ./system_backup.sh + +if [ -f /etc/X11/xorg.conf.d/40-libinput.conf ]; then +sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf +fi +if [ ! -d /etc/X11/xorg.conf.d ]; then +sudo mkdir -p /etc/X11/xorg.conf.d +fi +sudo cp ./usr/mhs35ips-overlay.dtb /boot/overlays/ +sudo cp ./usr/mhs35ips-overlay.dtb /boot/overlays/mhs35ips.dtbo + +#root_dev=`grep -oPr "root=[^\s]*" /boot/cmdline.txt | awk -F= '{printf $NF}'` +#if test "$root_dev" = "/dev/mmcblk0p7";then +#sudo cp -rf ./boot/config-noobs-nomal.txt ./boot/config.txt.bak +#else +#sudo cp -rf ./boot/config-nomal.txt ./boot/config.txt.bak +#sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak +#fi + +source ./system_config.sh +sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak +sudo echo "dtparam=i2c_arm=on" >> ./boot/config.txt.bak +sudo echo "dtparam=spi=on" >> ./boot/config.txt.bak +sudo echo "enable_uart=1" >> ./boot/config.txt.bak +sudo echo "dtoverlay=mhs35ips:rotate=90" >> ./boot/config.txt.bak +sudo echo "hdmi_group=2" >> ./boot/config.txt.bak +sudo echo "hdmi_mode=1" >> ./boot/config.txt.bak +sudo echo "hdmi_mode=87" >> ./boot/config.txt.bak +sudo echo "hdmi_cvt 480 320 60 6 0 0 0" >> ./boot/config.txt.bak +sudo echo "hdmi_drive=2" >> ./boot/config.txt.bak +sudo cp -rf ./boot/config.txt.bak /boot/config.txt + +sudo cp -rf ./usr/99-calibration.conf-mhs35ips-90 /etc/X11/xorg.conf.d/99-calibration.conf +sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf +#if test "$root_dev" = "/dev/mmcblk0p7";then +#sudo cp ./usr/cmdline.txt-noobs /boot/cmdline.txt +#else +#sudo cp ./usr/cmdline.txt /boot/ +#fi +sudo cp ./usr/inittab /etc/ +#sudo cp ./boot/config-mhs35.txt /boot/config.txt +sudo touch ./.have_installed +echo "gpio:resistance:mhs35ips:90:480:320" > ./.have_installed + +sudo apt-get update +#FBCP install +wget --spider -q -o /dev/null --tries=1 -T 10 https://cmake.org/ +if [ $? -eq 0 ]; then +sudo apt-get install cmake -y 2> error_output.txt +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "^E:" ./error_output.txt +type cmake > /dev/null 2>&1 +if [ $? -eq 0 ]; then +sudo rm -rf rpi-fbcp +wget --spider -q -o /dev/null --tries=1 -T 10 https://github.com +if [ $? -eq 0 ]; then +sudo git clone https://github.com/tasanakorn/rpi-fbcp +if [ $? -ne 0 ]; then +echo "download fbcp failed, copy native fbcp!!!" +sudo cp -r ./usr/rpi-fbcp . +fi +else +echo "bad network, copy native fbcp!!!" +sudo cp -r ./usr/rpi-fbcp . +fi +sudo mkdir ./rpi-fbcp/build +cd ./rpi-fbcp/build/ +sudo cmake .. +sudo make +sudo install fbcp /usr/local/bin/fbcp +cd - > /dev/null +type fbcp > /dev/null 2>&1 +if [ $? -eq 0 ]; then +sudo cp -rf ./usr/99-fbturbo-fbcp.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf +sudo cp -rf ./etc/rc.local /etc/rc.local +fi +else +echo "install cmake error!!!!" +fi +else +echo "bad network, can't install cmake!!!" +fi + +#evdev install +#nodeplatform=`uname -n` +#kernel=`uname -r` +version=`uname -v` +#if test "$nodeplatform" = "raspberrypi";then +#echo "this is raspberrypi kernel" +input_result=0 +version=${version##* } +#version=${version#*#} +echo $version +if test $version -lt 2017;then +echo "reboot" +else +echo "need to update touch configuration" +wget --spider -q -o /dev/null --tries=1 -T 10 http://mirrors.zju.edu.cn/raspbian/raspbian +if [ $? -ne 0 ]; then +input_result=1 +else +sudo apt-get install xserver-xorg-input-evdev 2> error_output.txt +dpkg -l | grep xserver-xorg-input-evdev > /dev/null 2>&1 +if [ $? -ne 0 ]; then +input_result=1 +fi +fi +if [ $input_result -eq 1 ]; then +if [ $hardware_arch -eq 32 ]; then +sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-1+b1_armhf.deb 2> error_output.txt +elif [ $hardware_arch -eq 64 ]; then +sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-2_arm64.deb 2> error_output.txt +fi +fi +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "error:" ./error_output.txt && exit +sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf +#echo "reboot" +#else +#echo "this is not raspberrypi kernel, no need to update touch configure, reboot" +fi + +sudo sync +sudo sync +sleep 1 +if [ $# -eq 1 ]; then +sudo ./rotate.sh $1 +elif [ $# -gt 1 ]; then +echo "Too many parameters" +fi + +echo "reboot now" +sudo reboot diff --git a/usr/99-calibration.conf-mhs35ips-0 b/usr/99-calibration.conf-mhs35ips-0 new file mode 100755 index 0000000..7659e07 --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-0 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "3880 268 227 3936" + Option "SwapAxes" "0" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35ips-180 b/usr/99-calibration.conf-mhs35ips-180 new file mode 100755 index 0000000..0e0dee9 --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-180 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "268 3880 3936 227" + Option "SwapAxes" "0" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35ips-270 b/usr/99-calibration.conf-mhs35ips-270 new file mode 100755 index 0000000..7d4323c --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-270 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "227 3936 268 3880" + Option "SwapAxes" "1" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35ips-90 b/usr/99-calibration.conf-mhs35ips-90 new file mode 100755 index 0000000..6f03654 --- /dev/null +++ b/usr/99-calibration.conf-mhs35ips-90 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "ADS7846 Touchscreen" + Option "Calibration" "3936 227 3880 268" + Option "SwapAxes" "1" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/mhs35ips-overlay.dtb b/usr/mhs35ips-overlay.dtb new file mode 100755 index 0000000000000000000000000000000000000000..61ef0280efa32822c5d5825752d657745b273cd1 GIT binary patch literal 2600 zcma)8J&fE$6drFNKX*jrF8m59Qglchu-5JEUAWB>iEAPx3PeLg!OFXy-LvAgjmN&* zrMiM5qDzA)DAFKAL4%O!q7VdBh=>YB0zpT^Pep^2@O_>c+q-wkVd?Gn-ka}@=e>C| z-rJ||{vpJ|st}?h#L1t4)R!Pf-cJYPW`8hlcQ!6m##XCS zH!c=Y&M@^xV;N=Jt-|IU4?z}x`RvADK&RJ>cV!xS(_W7Rjz0`pj<0xAI`B9u34FP0 zX3(5d@Gtv;^7^6l3ziU#8h73JIN$xah95PChA-Q#y|-K>pY6=EM|$-f4j^V;|iIf%#F zA3;A?v#&$vyY2X=(Al@NS^LjTKXDK2I_SS){M-*dHvT(p(smw${yl=0Q1E*|X1@yT z0^bDw4gA{R2f#02JHRi2-vVy}_aT>|e+4`XyaoIO_ziFY_&abL@;<~q&qLvQKZb08 z^DFQ+gn4pLjvLtk^7Ig2g**v4Yve`XI%0nVGIjy71X+Zz?@vJ1AU3uG{c*?>kS3&! zSmt-hU|?!+9yZr!>&0HhP-(MQX;Vy3xtZD~t>EzeA`6a&2DB!^W2R=sPLJrK9w% zq&esz=Na%DxR2biH*trld?%ODVA|#O6!UQ3u9A~Y`uQ-Fksd0>PQ!nVV`-dunKUCh zj{C-*ZwwP<2e>Z!c{UpTQCj!2x7ouDU-t8n9wGk>)_5Lx47FE#UgA!sybAO_^?GVL z?#H3Yiu`B6UtOy%z_r?aymrVvhq;~2ir+qjKXbQm{+A!jFZ-tGrCx6sO!CAQo@;yo zb6l?GXmv9$9mxzySI&0jWV%JY?*RX)DC-raavq*QHTa{c&{4YD+JTU^OZ z_jgqyrGL;}Ywx*$vbpE{y0Pb+x~u1$wx#FXZ0CtNYDGV@Urr6;apGkG{ssu$7DC~0 z