DRV_QSPI

[English]

DRV_QSPI API Status

API

drv_qspi_init()

drv_qspi_deinit()

drv_qspi_config()

drv_qspi_write()

drv_qspi_read()

drv_qspi_lcd_data_op_config()

drv_qspi_dma_data_op_config()

drv_qspi_get_write_data_address()

drv_qspi_cs_low_force_enable()

drv_qspi_cs_low_force_disable()

drv_qspi_cmd_clk_open()

drv_qspi_cmd_clk_close()

drv_qspi_work_mode_set()

DRV_QSPI UNIT Number

Capability

Number

UNIT Number

2

DRV_QSPI Pin and GPIO Map

QSPI Pin

Number

QSPI0 SCK

20

QSPI0 CS

21

QSPI0 DATA[0]

22

QSPI0 DATA[1]

23

QSPI0 DATA[2]

24

QSPI0 DATA[3]

25

QSPI1 SCK

26

QSPI1 CS

27

QSPI1 DATA[0]

28

QSPI1 DATA[1]

29

QSPI1 DATA[2]

30

QSPI1 DATA[3]

31

DRV_QSPI API Reference

Header File

Functions

uint32_t drv_qspi_init(uint8_t dev_index)

init a qspi device.

初始化设备,在使用qspi功能前需要调用它获取device instance

参数:

dev_index[in] 参数说明部分

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_deinit(uint32_t dev_instance)

deinit a qspi device.

反初始化qspi设备,对drv_qspi_init()进行反向操作

参数:

dev_instance[in] 函数drv_qspi_init()返回的参数

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_config(uint32_t dev_instance, qspi_config_t *p_param)

config qspi parameter.

对spi设备参数的配置,在配置前需要确保spi处于关闭状态

参数:
  • dev_instance[in] 函数drv_qspi_init()返回的参数

  • p_param[in] 参数结构体指针

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_write(uint32_t dev_instance, qspi_xfer_blk_t *p_blk, pfunc_qspi_cb_t pfn_cb, void *pv_arg)

qspi write

qspi发送接口 如果pfn_cb==NULL,则该函数在把数据通过qspi送出去后才会返回 如果pfn_cb!=NULL,该函数会立即返回,等数据发送出去后通过 pfn_cb进行通知

参数:
  • dev_instance[in] 函数drv_qspi_init()返回的参数

  • p_blk[in] 发送结构体,参照结构体qspi_xfer_blk_t

  • pfn_cb[in] 回调函数

  • pv_arg[in] 用于回调函数携带的参数

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_read(uint32_t dev_instance, qspi_xfer_blk_t *p_blk, pfunc_qspi_cb_t pfn_cb, void *pv_arg)

qspi read

qspi同步接收接口,接收完成才会返回 如果pfn_cb==NULL,则该函数通过qspi接收指定长度的数据后才会返回 如果pfn_cb!=NULL,该函数会立即返回,等数据接收完成后通过 pfn_cb进行通知

参数:
  • dev_instance[in] 函数drv_qspi_init()返回的参数

  • p_blk[in] 发送结构体,参照结构体qspi_xfer_blk_t

  • pfn_cb[in] 回调函数

  • pv_arg[in] 用于回调函数携带的参数

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_lcd_data_op_config(uint32_t dev_instance, qspi_lcd_cfg_t *p_config)

lcd operation config

操作lcd设备,需要硬件自动添加头部,需要调用此接口进行配置

参数:
  • dev_instance[in] 参数说明部分

  • p_config[in] 参数说明部分

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_dma_data_op_config(uint32_t dev_instance, qspi_line_mode_e data_line_mode)

only data send operation config

DMA搬运向QPSI映射地址搬运数据的时候只发送用户数据,需要调用此接口进行配置

参数:
  • dev_instance[in] 参数说明部分

  • data_line_mode[in] 用户数据用几线发送

返回值:
  • 0 – success [BK_RET_OK]

  • other – failban’yu

返回:

result

uint32_t drv_qspi_get_write_data_address(uint32_t dev_instance, qspi_dest_addr_type_e addr_dest_type)

get cpu map address for qpsi

QSPI同步接收接口,接收完成才会返回

参数:
  • dev_instance[in] 函数drv_qspi_init()返回的参数

  • addr_dest_type[in] 获得的映射的地址是否使用cache

返回:

address cpu映射的地址块的首地址

int32_t drv_qspi_cs_low_force_enable(uint32_t dev_instance)

force cs low

强制的把cs拉低

参数:

dev_instance[in] 函数drv_qspi_init()返回的参数

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_cs_low_force_disable(uint32_t dev_instance)

force cs low

取消强制的把cs拉低

参数:

dev_instance[in] 函数drv_qspi_init()返回的参数

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_cmd_clk_open(uint32_t dev_instance)

取消QSPI发送cmd字段和address字段时的clk不输出

参数:

dev_instance[in] 函数drv_qspi_init()返回的参数

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_cmd_clk_close(uint32_t dev_instance)

QSPI发送cmd字段和address字段时的clk不输出

参数:

dev_instance[in] 函数drv_qspi_init()返回的参数

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

int32_t drv_qspi_work_mode_set(uint32_t dev_instance, qspi_work_mode_e wire_mode)

设置QSPI的工作模式,是通过IO输出,还是通过地址映射的方式

IO输出是后续的data是发送fifo当中的数据 地址映射的方式是cpu或者dma对应的地址写数据,QSPI就转换成指定的QSPI协议通信

参数:
  • dev_instance[in] 函数drv_qspi_init()返回的参数

  • wire_mode[in]

返回值:
  • 0 – success [BK_RET_OK]

  • other – fail

返回:

result

Structures

struct qspi_config_t

Public Members

qspi_cpol_e cpol

QSPI clock cpol

qspi_cpha_e cpha

QSPI clock cpha

qspi_bit_order_e bit_order

QSPI bit order, MSB/LSB

uint32_t clk

QSPI clock frequency

uint32_t baud_rate

QSPI transmit and receive SCK clock

struct qspi_xfer_blk_t

Public Members

uint32_t cmd

QSPI command

uint8_t cmd_len

QSPI command length byte 1 ~ 4

qspi_line_mode_e cmd_line_mode

QSPI command line mode

uint32_t addr

QSPI address

uint32_t addr_len

QSPI address len byte. normal value is 3

qspi_line_mode_e addr_line_mode

QSPI address line mode

uint32_t data_len

QSPI data length

qspi_line_mode_e data_line_mode

QSPI data line mode

uint32_t dummy_cycle

QSPI dummy cycle

struct qspi_lcd_cfg_t

Public Members

qspi_line_mode_e cmd_line_mode

QSPI command line mode

qspi_line_mode_e reg_line_mode

QSPI reg line mode

qspi_line_mode_e data_line_mode

QSPI data line mode

Macros

QSPI_DEVICE_NUM

Type Definitions

typedef void (*pfunc_qspi_cb_t)(uint32_t dev_instance, int32_t err_code, void *param)

Enumerations

enum qspi_cpol_e

Values:

enumerator QSPI_CPOL_0

QSPI clock polarity low

enumerator QSPI_CPOL_1

QSPI clock polarity high

enum qspi_cpha_e

Values:

enumerator QSPI_CPHA_0

QSPI clock phase the first edge

enumerator QSPI_CPHA_1

QSPI clock phase the second edge

enum qspi_bit_order_e

Values:

enumerator QSPI_MSB_FIRST

QSPI MSB first

enumerator QSPI_LSB_FIRST

QSPI LSB first

enum qspi_line_mode_e

Values:

enumerator QSPI_1WIRE

QSPI 1_wire mode

enumerator QSPI_2WIRE

QSPI 2_wire mode

enumerator QSPI_4WIRE

QSPI 4_wire mode

enum qspi_data_mode_e

Values:

enumerator DATA_PIXEL
enumerator DATA_FRAME
enum qspi_dest_addr_type_e

Values:

enumerator QSPI_DEST_NO_CACHE
enumerator QSPI_DEST_NACHE
enum qspi_work_mode_e

Values:

enumerator INDIRECT_MODE
enumerator MEMORY_MAPPED_MODE