19.5.2.4. 结构体

19.5.2.4.1. Struct sflash_master

struct sflash_master

系统中从设备的信息

这里代指类似Flash的从机设备

Public Members

int bus_num

所属总线编号

struct spi_device spi

配置信息

struct list_head list

设备链表


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 时钟模式


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

主机链表


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

运行状态


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

传输单元链表,驱动内部使用