Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
SPI(4) Device Drivers Manual SPI(4) NAME spi - introduction to machine-independent SPI bus support and drivers SYNOPSIS spi* at mainbus? Other attachments are machine-dependent and will depend on the bus topology of your system. See intro(4) for your system for more information. DESCRIPTION NetBSD includes a machine dependent SPI (Serial Peripheral Interface) bus subsystem, and several different machine-independent SPI device drivers. Your system may support additional machine-dependent SPI devices. Consult your system's intro(4) for additional information. SPI is a 4-wire synchronous full-duplex serial bus. Some systems provide support for Microwire, which is Philips' name for a strict subset of SPI, with more rigidly defined signaling. Therefore, Microwire devices are also supported by the SPI framework. Note that when referencing SPI devices in a config(1) file, the `slave' must be provided, as SPI lacks any way to automatically probe devices. IOCTLS The following ioctl(2) calls apply to SPI devices. They are defined in the header file <dev/spi/spi_io.h>: SPI_IOCTL_CONFIGURE (spi_ioctl_configure_t) Used to choose the operational mode and clock. The sic_mode defines polarity and phase of the clock. sic_speed is the clock speed in Hz, a value of 0 means to keep the default speed of the device. typedef struct spi_ioctl_configure { int sic_addr; int sic_mode; int sic_speed; } spi_ioctl_configure_t; SPI_IOCTL_TRANSFER (spi_ioctl_transfer_t) Used to handle an I/O transaction. typedef struct spi_ioctl_transfer { int sit_addr; const void *sit_send; size_t sit_sendlen; void *sit_recv; size_t sit_recvlen; } spi_ioctl_transfer_t; HARDWARE NetBSD includes the following machine-independent SPI drivers: bmx280thp(4) Bosch BMP280 / BME280 sensor. m25p(4) STMicroelectronics M25P family of NOR flash devices. mcp23s17gpio(4) Microchip MCP23S17 16-bit GPIO chip. mcp3kadc(4) Microchip MCP3x0x SAR analog to digital converter. mcp48x1dac(4) Microchip MCP4801/MCP4811/MCP4821 digital to analog converter. tm121temp(4) Texas Instruments TMP121 temperature sensor. scmdspi(4) SPI frontend for the Sparkfun Serial Controlled Motor Driver. ssdfb(4) OLED/PLED framebuffer modules. FILES /dev/spiu SPI device unit u file. SEE ALSO spi(9) HISTORY The machine-independent SPI framework was written by Garrett D'Amore for the Champaign-Urbana Community Wireless Network Project (CUWiN), and appeared in NetBSD 4.0. The ioctl(2) interface allowing configuration from userspace appeared in NetBSD 9.0. NetBSD 10.99 February 27, 2021 NetBSD 10.99