In this video, we explore the Linux SPI subsystem inside the Linux kernel and build a minimal SPI client driver from scratch.
Instead of jumping directly into Device Tree-based driver development, we first focus on understanding the internal architecture of SPI in Linux — how drivers are registered, how devices are matched, how probe() is triggered, and how SPI data transfers work using spi_message and spi_transfer.
To demonstrate full-duplex SPI communication, we:
Use the Raspberry Pi SPI0 controller as the master
Use an ESP32 Dev Board as the SPI slave
Manually bind and unbind the SPI device to our custom driver
Perform a full-duplex SPI transfer using spi_sync()
Observe probe() and remove() lifecycle behavior
This example is purely educational and focuses on understanding how the SPI subsystem works inside the kernel.
Github :- https://github.com/madhawapolkotuwa/l...
☕Buy me a Coffee : https://buymeacoffee.com/madhawapolb