19.5.2.4. 结构体¶
19.5.2.4.2. Struct spi_device¶
-
struct spi_device
从机配置
Public Members
-
struct spi_master *master
主机
-
unsigned int max_speed_hz
最大频率
-
unsigned char chip_select
片选
-
unsigned char bits_per_word
word的bit数
-
unsigned short mode
模式
-
void *controller_state
控制器状态
-
unsigned char data_format
数据格式,stand(0),dual(1),quad(2),octal(3)
-
unsigned int sample_delay
采样延时
-
int cs_mode
0:表示硬件cs, spi 控制器自动控制 CS;1:表示软件cs,由软件驱动内部控制 CS; 2:表示无CS或外部CS,由驱动外部GPIO控制CS
-
GX_SPI_CLK_MODE_T clk_mode
SPI 时钟模式
-
struct spi_master *master
19.5.2.4.3. Struct spi_master¶
-
struct spi_master
主机配置
Public Members
-
int bus_num
总线序号
-
unsigned int num_chipselect
最大从机数
-
int (*setup)(struct spi_device *spi)
配置master接口
-
int (*transfer)(struct spi_device *spi, struct spi_message *mesg)
传输数据
-
void (*cleanup)(struct spi_device *spi)
清除从机
-
void *data
驱动私有数据
-
void *driver_data
驱动私有数据
-
struct list_head list
主机链表
-
int bus_num
19.5.2.4.4. Struct spi_message¶
-
struct spi_message
传输消息配置
Public Members
-
struct list_head transfers
传输单元链表
-
struct spi_device *spi
从机设备
-
unsigned is_dma_mapped
是否可以使用DMA
-
void (*complete)(void *context)
传输完成回调函数
-
void *context
complete的参数
-
unsigned actual_length
传输完成长度
-
int status
执行结果
-
struct list_head queue
spi_message所在队列
-
void *state
运行状态
-
struct list_head transfers
19.5.2.4.5. Struct spi_transfer¶
-
struct spi_transfer
传输单元配置
Public Members
-
const void *tx_buf
发送数据内存地址
-
void *rx_buf
接收数据内存地址
-
unsigned len
发送/接收数据长度
-
unsigned cs_change
片选是否变化
-
unsigned tx_nbits
发送时每个时钟传输bit数,为1表示单线模式,为2表示双线模式,为4表示四线模式
-
unsigned rx_nbits
接收时每个时钟传输bit数,为1表示单线模式,为2表示双线模式,为4表示四线模式
-
unsigned char bits_per_word
每个word位宽
-
unsigned int delay_usecs
数据传输完成后与CS片选间隔时间
-
unsigned int speed_hz
始终频率
-
unsigned int dma_mode
dma模式, 0:表示不使用dma,1:表示使用dma同步模式,2:表示使用dma异步模式
-
void (*complete_cb)(void*, uint8_t)
dma异步传输完成回调函数
-
void *cb_param
complete_cb的参数
-
struct list_head transfer_list
传输单元链表,驱动内部使用
-
const void *tx_buf