RTEMS  5.1
Files | Data Structures | Macros | Variables

RTEMS port of Linux SPI user-space API. More...

Files

file  spidev.h
 RTEMS Port of Linux SPI API.
 

Data Structures

struct  spi_ioc_transfer
 SPI transfer message. More...
 

Macros

#define SPI_IOC_MAGIC   's'
 
#define SPI_MSGSIZE(n)
 Calculates the size of the SPI message array. More...
 
#define SPI_IOC_MESSAGE(n)   _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(n)])
 Transfers an array with SPI messages.
 
#define SPI_IOC_RD_MODE   _IOR(SPI_IOC_MAGIC, 1, uint8_t)
 Reads the least-significant 8-bits of the SPI default mode.
 
#define SPI_IOC_WR_MODE   _IOW(SPI_IOC_MAGIC, 1, uint8_t)
 Writes the SPI default mode (the most-significant 24-bits of the mode are set to zero).
 
#define SPI_IOC_RD_LSB_FIRST   _IOR(SPI_IOC_MAGIC, 2, uint8_t)
 Reads the SPI default least-significant bit first setting.
 
#define SPI_IOC_WR_LSB_FIRST   _IOW(SPI_IOC_MAGIC, 2, uint8_t)
 Writes the SPI default least-significant-bit first setting.
 
#define SPI_IOC_RD_BITS_PER_WORD   _IOR(SPI_IOC_MAGIC, 3, uint8_t)
 Reads the SPI default bits per word.
 
#define SPI_IOC_WR_BITS_PER_WORD   _IOW(SPI_IOC_MAGIC, 3, uint8_t)
 Writes the SPI default bits per word.
 
#define SPI_IOC_RD_MAX_SPEED_HZ   _IOR(SPI_IOC_MAGIC, 4, uint32_t)
 Reads the SPI default speed in Hz.
 
#define SPI_IOC_WR_MAX_SPEED_HZ   _IOW(SPI_IOC_MAGIC, 4, uint32_t)
 Writes the SPI default speed in Hz.
 
#define SPI_IOC_RD_MODE32   _IOR(SPI_IOC_MAGIC, 5, uint32_t)
 Reads the full 32-bit SPI default mode.
 
#define SPI_IOC_WR_MODE32   _IOW(SPI_IOC_MAGIC, 5, uint32_t)
 Writes the full 32-bit SPI default mode.
 

Variables

void * spi_ioc_transfer::rx_buf
 Buffer for receive data.
 
const void * spi_ioc_transfer::tx_buf
 Buffer for transmit data.
 
size_t spi_ioc_transfer::len
 Length of receive and transmit buffers in bytes.
 
uint32_t spi_ioc_transfer::speed_hz
 Sets the bit-rate of the device.
 
uint16_t spi_ioc_transfer::delay_usecs
 Sets the delay after a transfer before the chip select status is changed and the next transfer is triggered.
 
uint8_t spi_ioc_transfer::bits_per_word
 Sets the device wordsize.
 
uint8_t spi_ioc_transfer::cs_change
 If true, device is deselected after transfer ended and before a new transfer is started.
 
uint8_t spi_ioc_transfer::rx_nbits
 Amount of bits that are used for reading.
 
uint8_t spi_ioc_transfer::tx_nbits
 Amount of bits that are used for writing.
 
uint32_t spi_ioc_transfer::mode
 Sets one of the possible modes that can be used for SPI transfers (dependent on clock phase and polarity).
 
uint8_t spi_ioc_transfer::cs
 Indicates which device is currently used.
 

SPI Transfer Flags

#define SPI_CPHA   0x01
 SPI transfer flag which sets the clock phase.
 
#define SPI_CPOL   0x02
 SPI transfer flag which sets the clock polarity.
 
#define SPI_MODE_0   0
 SPI transfer flag which sets SPI Mode 0 (clock starts low, sample on leading edge).
 
#define SPI_MODE_1   SPI_CPHA
 SPI transfer flag which sets SPI Mode 0 (clock starts low, sample on trailing edge).
 
#define SPI_MODE_2   SPI_CPOL
 SPI transfer flag which sets SPI Mode 0 (clock starts high, sample on leading edge).
 
#define SPI_MODE_3   (SPI_CPOL | SPI_CPHA)
 SPI transfer flag which sets SPI Mode 0 (clock starts high, sample on trailing edge).
 
#define SPI_CS_HIGH   0x04
 SPI transfer flag which selects the device by setting the chip select line.
 
#define SPI_LSB_FIRST   0x08
 SPI transfer flag which triggers data transmission with the LSB being sent first.
 
#define SPI_3WIRE   0x10
 SPI transfer flag which uses a shared wire for master input/slave output as well as master output/slave input.
 
#define SPI_LOOP   0x20
 SPI transfer flag which initiates the loopback mode.
 
#define SPI_NO_CS   0x40
 SPI transfer flag which indicates that no chip select is needed due to only one device on the bus.
 
#define SPI_READY   0x80
 SPI transfer flag which pulls the slave to low level during pause.
 
#define SPI_TX_DUAL   0x100
 SPI transfer flag which sets up dual mode for transmission.
 
#define SPI_TX_QUAD   0x200
 SPI transfer flag which sets up quad mode for transmission.
 
#define SPI_RX_DUAL   0x400
 SPI transfer flag which sets up dual mode for reception.
 
#define SPI_RX_QUAD   0x800
 SPI transfer flag which sets up quad mode for reception.
 

Detailed Description

RTEMS port of Linux SPI user-space API.

Additional documentation is available through the Linux sources, see

/usr/src/linux/include/uapi/linux/spidev.h.

Macro Definition Documentation

◆ SPI_MSGSIZE

#define SPI_MSGSIZE (   n)
Value:
(((n) * sizeof(struct spi_ioc_transfer) < IOCPARM_MAX) ? \
(n) * sizeof(struct spi_ioc_transfer) : 0)
SPI transfer message.
Definition: spidev.h:145

Calculates the size of the SPI message array.