From a8de38f41586e153a8e03adcf7708c8b5974ffc8 Mon Sep 17 00:00:00 2001 From: goodtft Date: Thu, 7 Nov 2019 07:09:23 +0000 Subject: [PATCH] add MHS35B driver --- MHS35B-show | 97 +++++++++++++++++++++++++++++ README.md | 12 +++- usr/99-calibration.conf-mhs35b-0 | 9 +++ usr/99-calibration.conf-mhs35b-180 | 9 +++ usr/99-calibration.conf-mhs35b-270 | 9 +++ usr/99-calibration.conf-mhs35b-90 | 9 +++ usr/mhs35b-overlay.dtb | Bin 0 -> 1936 bytes 7 files changed, 144 insertions(+), 1 deletion(-) create mode 100755 MHS35B-show create mode 100755 usr/99-calibration.conf-mhs35b-0 create mode 100755 usr/99-calibration.conf-mhs35b-180 create mode 100755 usr/99-calibration.conf-mhs35b-270 create mode 100755 usr/99-calibration.conf-mhs35b-90 create mode 100755 usr/mhs35b-overlay.dtb diff --git a/MHS35B-show b/MHS35B-show new file mode 100755 index 0000000..def324a --- /dev/null +++ b/MHS35B-show @@ -0,0 +1,97 @@ +#!/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/mhs35b-overlay.dtb /boot/overlays/ +sudo cp ./usr/mhs35b-overlay.dtb /boot/overlays/mhs35b.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 +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=mhs35b:rotate=90" >> ./boot/config.txt.bak +sudo echo "dtoverlay=goodix" >> ./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-mhs35b-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 touch ./.have_installed +echo "gpio:resistance:mhs35b:90:480:320" > ./.have_installed + +#FBCP install +wget --spider -q -o /dev/null --tries=1 -T 10 https://github.com +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 +sudo apt-get install git cmake -y 2> error_output.txt +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "^E:" ./error_output.txt && exit +sudo rm -rf rpi-fbcp +sudo git clone https://github.com/tasanakorn/rpi-fbcp +sudo mkdir ./rpi-fbcp/build +cd ./rpi-fbcp/build/ +sudo cmake .. +sudo make +sudo install fbcp /usr/local/bin/fbcp +cd - > /dev/null +fi +#evdev install +#nodeplatform=`uname -n` +#kernel=`uname -r` +version=`uname -v` +#if test "$nodeplatform" = "raspberrypi";then +#echo "this is raspberrypi kernel" +version=${version##* } +#version=${version#*#} +echo $version +if test $version -lt 2017;then +echo "reboot" +else +echo "need to update touch configuration" +sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-1+b1_armhf.deb 2> error_output.txt +#sudo apt-get install xserver-xorg-input-evdev 2> error_output.txt +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" +fi +#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/README.md b/README.md index 9605589..5abc325 100755 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ https://github.com/lcdwiki/LCD-show-retropie Install drivers in the Raspbian system
==================================================== +Update:
+ v2.1-20191106
+ Update to support MHS35B
Update:
v2.0-20190704
Update to support rotate the display direction
@@ -118,7 +121,14 @@ sudo ./MHS35-show ### WIKI: CN: http://www.lcdwiki.com/zh/MHS-3.5inch_RPi_Display
EN:http://www.lcdwiki.com/MHS-3.5inch_RPi_Display - + +# MHS-3.5” RPi Display-B(MHS35XX): +### Driver install: +sudo ./MHS35B-show +### WIKI: +CN: http://www.lcdwiki.com/zh/MHS-3.5inch_RPi_Display-B
+EN:http://www.lcdwiki.com/MHS-3.5inch_RPi_Display-B + # 4.0" HDMI Display(MPI4008): ### Driver install: sudo ./MPI4008-show diff --git a/usr/99-calibration.conf-mhs35b-0 b/usr/99-calibration.conf-mhs35b-0 new file mode 100755 index 0000000..2a04ab9 --- /dev/null +++ b/usr/99-calibration.conf-mhs35b-0 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "Goodix Capacitive TouchScreen" + Option "Calibration" "315 7 479 18" + Option "SwapAxes" "0" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35b-180 b/usr/99-calibration.conf-mhs35b-180 new file mode 100755 index 0000000..62e8ddd --- /dev/null +++ b/usr/99-calibration.conf-mhs35b-180 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "Goodix Capacitive TouchScreen" + Option "Calibration" "7 315 18 479" + Option "SwapAxes" "0" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35b-270 b/usr/99-calibration.conf-mhs35b-270 new file mode 100755 index 0000000..3a585c2 --- /dev/null +++ b/usr/99-calibration.conf-mhs35b-270 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "Goodix Capacitive TouchScreen" + Option "Calibration" "315 7 18 479" + Option "SwapAxes" "1" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/99-calibration.conf-mhs35b-90 b/usr/99-calibration.conf-mhs35b-90 new file mode 100755 index 0000000..7a9ee3c --- /dev/null +++ b/usr/99-calibration.conf-mhs35b-90 @@ -0,0 +1,9 @@ +Section "InputClass" + Identifier "calibration" + MatchProduct "Goodix Capacitive TouchScreen" + Option "Calibration" "7 315 479 18" + Option "SwapAxes" "1" + Option "EmulateThirdButton" "1" + Option "EmulateThirdButtonTimeout" "1000" + Option "EmulateThirdButtonMoveThreshold" "300" +EndSection diff --git a/usr/mhs35b-overlay.dtb b/usr/mhs35b-overlay.dtb new file mode 100755 index 0000000000000000000000000000000000000000..502b6420875401bc3b654bdf19b988b3ed8d7e22 GIT binary patch literal 1936 zcma)7J8#rL5Z(&`5<&zC4M>QGf~%;GMU<8T zNP!S-S}H_An*z~L01XWV`~W1Nf`;&YUa!w59$}>K=CL!gyEC)CH={p43$gcs5TYT( zp6B3`z!-24Abo)St`_@#E4j7{{50iuY zzB9Rv`Tpih|173BqmJ6?j1}do**U8fc|pQ$=syG;$#J-3n}BS{JLHqVAmkt5 zq#?-6OV0PjLT!Ov27gH%^blC10NY0}?t2_K3h;i^d4KltF)$D80}cT^?-(!&F#Z!5 z{p-LvUiRO!OWA%rJLhE}4wa>3zM^xp z2Aq`vH%iO`^U=ORd%F{t?X2Y%?T&1x9lgRk;Owrql1Ap>%yAZYH(h)LYE5Ou9jOr1 zGuC@Xc3{l6fA*PV=7c>Z8J&G38J)c&8J#^N8J)c%mG>XE!)|0L z51)9UTOtw+Mw;lqne6kM{S~=sU@I>SM6_rH4!kEU$3cmcsx5s#5fh1bN9J-YI|7lm ziv4O}b!Ad$HSycr3NxibkEFnq2~419r^#*4QHuiUj8Jq`n0AS5_=FdD3b`fzsIWs# Hu