DRV_QSPI
DRV_QSPI API Status
API |
|---|
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
-
qspi_cpol_e cpol
-
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
-
uint32_t cmd
-
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
-
qspi_line_mode_e cmd_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
-
enumerator QSPI_CPOL_0
-
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
-
enumerator QSPI_CPHA_0
-
enum qspi_bit_order_e
Values:
-
enumerator QSPI_MSB_FIRST
QSPI MSB first
-
enumerator QSPI_LSB_FIRST
QSPI LSB first
-
enumerator QSPI_MSB_FIRST