~/talk

Groking the Linux SPI Subsystem

links:none on file
slides:none on file

Explains how the kernel splits SPI into controller vs protocol roles, shows concrete device hookups (device tree, boardfile, ACPI) using an mcp3008 example and how to compute max clock from timing diagrams, demonstrates userland via spidev_test and python-spidev, and describes performance pitfalls like a controller that only enables DMA above 160 bytes. Covers sync vs async semantics, new sysfs statistics per bus:cs (messages/transfers/errors/timeouts), and an RFC v2 for limited slave support.

AI-written summary · about

  1. 0:00Intro
  2. 3:57Common uses of SPI
  3. 5:01SPI Signals
  4. 6:46Basic SPI Timing Diagram
  5. 8:15SPI Modes
  6. 9:15SPI Mode Timing - CPOLO
  7. 10:47SPI can be more complicated
  8. 13:11Multiple SPI Slaves
  9. 13:42SPI Mode Timing - Multiple Slaves
  10. 14:32Linux SPI drivers
  11. 16:57Linux SPl communication
  12. 18:46Exploring via use cases
  13. 19:32Adding a SPI device to a system
  14. 20:37Reading datasheets for SPI details - ST7735
  15. 23:37Reading datasheets for SPI details - MCP3008
  16. 30:46Protocol Driver
  17. 31:52Kernel APIs
  18. 34:44Controller Driver
  19. 36:12Userspace Driver - spidev
  20. 41:44Userspace Help
  21. 43:10Performance considerations
  22. 48:29Performance tools
  23. 51:27Slave Support
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.