I've got huge trouble solving the following problem:
I attached a Waveshare 5" LCD touchscreen to a Pi 2 Model B (components and setup listed below), prepared a new SDcard with Raspbian Jessie (not NOOBS), did the normal raspbian-update stuff, installed the waveshare-drivers for jessie (from here). The display works fine - except the touch-functionallity. It shows a crystal-clear picture, but I cannot use the touch control :| Due to the evtest tool, I figured out that there is no input-information at all reaching the Pi.
So I searched the internet and did a lot of stuff. Finally, I encountered a problem that I couldn't get rid off, which makes me assume that this must be the cause for the touch-problem: the w1-gpio onewire-connection does not work.
The detailed problem looks like this:
pi@raspberrypi:~ $ dmesg | grep w1
[ 3.463684] hid-generic 0003:046A:B090.0002: input,hiddev0,hidraw1: USB HID v 1.11 Device [Cherry USB keyboard] on usb-3f980000.usb-1.3/input1
[ 5.364888] w1-gpio onewire@0: gpio pin 4, external pullup pin 1, parasitic power 0
[ 5.364975] w1_add_master_device: set_pullup requires write_byte or touch_bi , disabling
[ 7.444177] w1_master_driver w1_bus_master1: w1_search: max_slave_count 64 reached, will continue next search.
[ 54.916570] w1_master_driver w1_bus_master1: Family 0 for 00.800000000000.8c is not registered.
As can be seen,
- the touchscreen does not get listed at all (should be listed as input2)
- w1_add_master_device gets an error
- the slave count is >64???
Unfortunately, I have absolutely no clue how to solve this. I read / tried some stuff like
- disabling the device_tree
- changed the gpio_pin in the config.txt (just to some values - so here might be some potential left)
- lowered the cpu-frequency and activated a cpu-governor (doesn't make sense to me, but I read that that might help.. and I was / am desperate :D)
- changed back to an earlier kernel frame -> Pi freezes at startup
Well, has anybody any idea how this problem could be solved (if we assume, that the gpio pins are not broken :D)? Is there maybe a chance, that the gpio_pin or the external pullup_pin has to be another one? I attached a screenshot how the display should be wired according to waveshare and how the gpio readall of my Pi looks like.
Any idea is very, very very appreciated :)
Some additional information that might help:
SPI:
pi@raspberrypi:~ $ dmesg | grep spi
[ 5.754398] spi spi0.1: setting up native-CS1 as GPIO 7
[ 5.922907] ads7846 spi0.1: touchscreen, irq 505
[ 5.926013] input: ADS7846 Touchscreen as /devices/platform/soc/3f204000.spi spi_master/spi0/spi0.1/input/input2
config.txt (the driver set this up, already tried to lower the xohms) disable_overscan=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
arm_freq=700
start_x=1
gpu_mem=128
core_freq=250
sdram_freq=400
over_voltage=0
dtparam=spi=on
dtparam=i2c_arm=on
dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900
dtoverlay=w1-gpio-pullup,gpiopin=4,extpullup=1
Components:
- Raspberry Pi 2 Model B
- Waveshare 5" LCD touchscreen (no USB, connected via HDMI and GPIOs) (http://www.waveshare.com/5inch-hdmi-lcd.htm)
- SanDisk Ultra 32 GB micro SDcard
- 5V / 2.4 A stable power source (not plugged into my pc)
Setup
- Raspbian Jessie (latest version / updates) (not NOOBS!)
- Linux raspberrypi 4.1.20-v7+ #862 SMP Sat Mar 19 20:37:37 GMT 2016 armv7l GNU/Linux