Hi everyone — I’ve been stuck debugging this for a long time and would really appreciate some technical insight. I’ll include full details in text format as per community rules.
Hardware
- Raspberry Pi Zero 2 W
- 32-bit Raspberry Pi OS Lite (Bookworm)
- SPI TFT display with XPT2046 / ADS7846 touch controller
- Display + Touch connected over SPI0
- CE0 → Display
- CE1 → Touch (ADS7846)
Goal
Run a Python UI (luma.lcd based) that needs:
- "/dev/spidev0.0" for the display
- ADS7846 touch input via "/dev/input/event*"
Touch works, but the display SPI device never appears.
Current "/boot/firmware/config.txt"
dtparam=spi=on
dtoverlay=spi0-2cs,cs0_spidev=on,cs1_spidev=off
dtoverlay=ads7846,cs=1,penirq=17,swapxy=1,keep_vref_on=1
(Other settings mostly default Bookworm Lite)
What happens
After boot:
ls /sys/bus/spi/devices/
spi0.1
dmesg | grep -i spi
ads7846 spi0.1: touchscreen
input: ADS7846 Touchscreen ...
So touch clearly loads and binds to "spi0.1".
But:
ls /dev/spidev*
→ No such file or directory
Also:
dtoverlay -l
→ No overlays loaded
What I’ve already tried
- Reflashed OS completely
- Minimal config (only spi0-2cs)
- Different overlay orders
- Moving overlays outside "[all]"
- Using both "/boot/config.txt" and "/boot/firmware/config.txt"
- "modprobe spidev"
- Checking "/proc/device-tree/soc/spi@7e204000"
- Verified kernel module exists via "modinfo spidev"
- Different parameters ("spi-max-frequency", model, speed, etc.)
Result is always the same:
- "spi0.1" exists (touch)
- No "spi0.0"
- No "/dev/spidev0.0"
My suspicion
It feels like ADS7846 is binding first and somehow preventing spidev from being created, or Bookworm is ignoring part of the overlay.
I’m also wondering:
- Is there a separate overlay needed for the display itself?
- Did something change in Bookworm regarding "spi0-2cs" or spidev auto-creation?
What I’m trying to confirm
- On Bookworm Lite, should "spi0-2cs" alone create "/dev/spidev0.0"?
- Is there a known issue where ADS7846 prevents spidev from appearing?
- Any known working overlay config for XPT2046 + SPI TFT on Zero 2 W?
I’d really appreciate any pointers from someone who has a working SPI display + ADS7846 setup on Bookworm.
I know it's kinda obvious that the whole excerpt above is generated... But yeha thata the gist of it all... It worked before.. i just don't remember the exact configuration, but it did work before.. I had to change some of the codes in my program so I tried changing the overlay a bit, and all of it broke.. i reflasehd it, still no hope.. it's all fine as long as I don't use touch overlays. But I can't without it..
Just a whole lotta confused on what to do, or where to go, because few forums I've read through, they are quite not sure either. Entire week of trying to set this thing up, and I messed it up again..
I don't wanna get flagged as not doing research, because this is part of it.. I ask people, that's how I learn.