Groking the Linux SPI Subsystem

The Serial Peripheral Interconnect (SPI) bus is a ubiquitous de facto standard found in many embedded systems produced today. The Linux kernel has long supported this bus via a comprehensive framework which supports both SPI master and slave devices. The session explores the abstractions the framework provides to expose this hardware to both kernel and userspace clients. In addition, we discuss subtle features of the SPI subsystem that may be used to satisfy hardware and performance requirements in an embedded Linux system.