WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
sdio_slave.h
浏览该文件的文档.
1
10#ifndef SDIO_H
11#define SDIO_H
12
13#include <stdint.h>
14#include <stdbool.h>
15#include "errcode.h"
16#include "sdio_porting.h"
17
18#ifdef __cplusplus
19#if __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22#endif /* __cplusplus */
23
37typedef struct sdio_msg {
38 uint32_t pending_msg;
40 uint32_t sending_msg;
43
67
85
86#if defined(CONFIG_SDIO_EXTEND_INFO)
94typedef struct sdio_extendfunc {
95 uint32_t int_stat;
96 uint32_t msg_stat;
97 uint32_t xfer_count;
98 uint32_t credit_info;
99 uint8_t comm_reg[SDIO_EXTENDREG_COUNT];
100 int32_t valid_commreg_cnt;
101 int8_t commreg_isvalid;
102 int8_t credit_isvalid;
103} sdio_extendfunc_t;
104#endif
105
135
143typedef struct sdio_chan_info {
145 uint16_t last_msg;
147 uint16_t chan_msg_cnt[D2H_MSG_COUNT];
149
169
177typedef struct sdio_callback_func {
178 uint32_t (*read_start_callback)(uint32_t len, uint8_t *dma_tbl);
180 uint32_t (*read_over_callback)(void);
182 void (*read_err_callback)(void);
184 uint32_t (*write_start_callback)(uint32_t len, uint8_t *dma_tbl);
186 uint32_t (*write_over_callback)(void);
188 void (*process_msg_callback)(uint32_t);
190 void (*soft_rst_callback)(void);
193
203typedef void (*notify_host_event_t)(sdio_bus_t bus);
204
219
229void uapi_sdio_slave_deinit(sdio_bus_t bus);
230
245
255void uapi_sdio_slave_soft_reset(sdio_bus_t bus);
256
273
289errcode_t uapi_sdio_slave_complete_send(uint8_t *adma_tab, uint32_t adma_index);
290
308errcode_t uapi_sdio_slave_set_pad_admatab(uint8_t *adma_tab, uint32_t adma_index, uint32_t padlen);
309
310#if defined(CONFIG_SDIO_EXTEND_INFO)
326errcode_t uapi_sdio_slave_write_extend_info(sdio_bus_t bus, sdio_extendfunc_t* extfunc);
327
339sdio_extendfunc_t* uapi_sdio_slave_get_extend_info(sdio_bus_t bus);
340#endif
341
357errcode_t uapi_sdio_slave_prepare_send_data(sdio_bus_t bus, uint32_t data_len);
358
378errcode_t uapi_sdio_slave_set_admatab(uint8_t *adma_tab, uint32_t adma_index, const uint32_t *data_addr,
379 uint32_t data_len);
380
395
411errcode_t uapi_sdio_slave_sync_msg(sdio_bus_t bus, uint32_t msg);
412
428errcode_t uapi_sdio_slave_send_msg_ack(sdio_bus_t bus, uint32_t msg);
429
447errcode_t uapi_sdio_slave_process_msg(sdio_bus_t bus, uint32_t send_msg, uint32_t clear_msg);
448
464bool uapi_sdio_slave_is_pending_msg(sdio_bus_t bus, uint32_t msg);
465
481bool uapi_sdio_slave_is_sending_msg(sdio_bus_t bus, uint32_t msg);
482
493
505void uapi_sdio_slave_read_retry_when_read_err(sdio_bus_t bus, uint32_t read_bytes);
506
516void uapi_sdio_slave_init_no_wait(sdio_bus_t bus);
517
532
549
565errcode_t uapi_sdio_slave_set_status(sdio_bus_t bus, const sdio_status_info_t* satus_info);
566
576void uapi_sdio_slave_memory_init(sdio_bus_t bus);
577
588
589#if defined(CONFIG_SDIO_EXTEND_INFO)
603void uapi_sdio_slave_set_extend_val_info(sdio_bus_t bus, uint32_t offset, uint32_t val);
604
618uint32_t uapi_sdio_slave_get_extend_val_info(sdio_bus_t bus, uint32_t offset);
619#endif
620
625#ifdef __cplusplus
626#if __cplusplus
627}
628#endif /* __cplusplus */
629#endif /* __cplusplus */
630
631#endif
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
struct sdio_status sdio_status_t
SDIO状态结构体。
errcode_t uapi_sdio_slave_sync_msg(sdio_bus_t bus, uint32_t msg)
将消息加入消息队列并发送。
void uapi_sdio_slave_deinit(sdio_bus_t bus)
去初始化SDIO。
bool uapi_sdio_slave_is_sending_msg(sdio_bus_t bus, uint32_t msg)
判断sdio是否正在发送指定的消息。
errcode_t uapi_sdio_slave_get_status(sdio_bus_t bus, sdio_status_info_t *satus_info)
获取当前SDIO通道状态信息。
void uapi_sdio_slave_register_notify_message_callback(notify_host_event_t event_callback)
注册通知Host发送了消息或数据的回调函数。
bool uapi_sdio_slave_is_pending_msg(sdio_bus_t bus, uint32_t msg)
判断sdio是否挂起指定的消息。
errcode_t uapi_sdio_slave_register_callback(sdio_bus_t bus, const sdio_callback_func_t *fun)
SDIO 注册中断回调函数。
struct sdio_info sdio_info_t
SDIO信息结构体。
bool uapi_sdio_slave_host_clk_ready(sdio_bus_t bus)
判断HOST时钟是否就绪。
errcode_t uapi_sdio_slave_send_msg_ack(sdio_bus_t bus, uint32_t msg)
发送指定消息。
struct sdio_status_info sdio_status_info_t
SDIO状态信息。
void uapi_sdio_slave_soft_reset(sdio_bus_t bus)
IP芯片复位函数。
struct sdio_callback_func sdio_callback_func_t
SDIO中断回调函数结构体
sdio_channel_t
SDIO工作状态
Definition sdio_slave.h:51
errcode_t uapi_sdio_slave_reinit(sdio_bus_t bus)
重新初始化SDIO。
errcode_t uapi_sdio_slave_prepare_send_data(sdio_bus_t bus, uint32_t data_len)
启动数据发送接口。
void uapi_sdio_slave_memory_init(sdio_bus_t bus)
SDIO 内存初始化函数。
errcode_t uapi_sdio_slave_sched_msg(sdio_bus_t bus)
调度sdio消息。
void uapi_sdio_slave_init_no_wait(sdio_bus_t bus)
非阻塞初始化。
struct sdio_msg sdio_msg_t
SDIO消息结构体。
struct sdio_chan_info sdio_chan_info_t
SDIO传输通道结构体。
sdio_info_t * uapi_sdio_slave_get_info(sdio_bus_t bus)
获取SDIO状态信息。
errcode_t uapi_sdio_slave_set_pad_admatab(uint8_t *adma_tab, uint32_t adma_index, uint32_t padlen)
配置数据对齐后的ADMA表。
errcode_t uapi_sdio_slave_complete_send(uint8_t *adma_tab, uint32_t adma_index)
配置内部EDMA 描述符 结束标志。
errcode_t uapi_sdio_slave_init(sdio_bus_t bus)
初始化SDIO。
errcode_t uapi_sdio_slave_set_admatab(uint8_t *adma_tab, uint32_t adma_index, const uint32_t *data_addr, uint32_t data_len)
设置adma传输通道。
void(* notify_host_event_t)(sdio_bus_t bus)
通知host消息或数据事件存在的回调。
Definition sdio_slave.h:203
errcode_t uapi_sdio_slave_process_msg(sdio_bus_t bus, uint32_t send_msg, uint32_t clear_msg)
清除消息队列中挂起的指定消息,将新消息加入消息队列并发送。
void uapi_sdio_slave_read_retry_when_read_err(sdio_bus_t bus, uint32_t read_bytes)
SDIO 读错误事件存在时尝试重新读取。
errcode_t uapi_sdio_slave_set_status(sdio_bus_t bus, const sdio_status_info_t *satus_info)
设置当前SDIO通道状态信息。
@ SDIO_CHANNEL_WAKE
Definition sdio_slave.h:60
@ SDIO_CHANNEL_SLEEP
Definition sdio_slave.h:58
@ SDIO_CHANNEL_RESET
Definition sdio_slave.h:54
@ SDIO_CHANNEL_ERR
Definition sdio_slave.h:52
@ SDIO_CHANNEL_WORK
Definition sdio_slave.h:62
@ SDIO_CHANNEL_INIT
Definition sdio_slave.h:56
@ SDIO_CHANNEL_BUTT
Definition sdio_slave.h:64
SDIO中断回调函数结构体
Definition sdio_slave.h:177
void(* soft_rst_callback)(void)
Definition sdio_slave.h:190
uint32_t(* read_over_callback)(void)
Definition sdio_slave.h:180
void(* process_msg_callback)(uint32_t)
Definition sdio_slave.h:188
uint32_t(* write_start_callback)(uint32_t len, uint8_t *dma_tbl)
Definition sdio_slave.h:184
void(* read_err_callback)(void)
Definition sdio_slave.h:182
uint32_t(* write_over_callback)(void)
Definition sdio_slave.h:186
uint32_t(* read_start_callback)(uint32_t len, uint8_t *dma_tbl)
Definition sdio_slave.h:178
SDIO传输通道结构体。
Definition sdio_slave.h:143
uint16_t panic_forced_timeout
Definition sdio_slave.h:146
uint16_t last_msg
Definition sdio_slave.h:145
uint16_t chan_msg_cnt[D2H_MSG_COUNT]
Definition sdio_slave.h:147
uint32_t send_data_len
Definition sdio_slave.h:144
SDIO信息结构体。
Definition sdio_slave.h:157
sdio_chan_info_t chan_info
Definition sdio_slave.h:166
uint16_t reinit_times
Definition sdio_slave.h:162
uint16_t gpio_int_times
Definition sdio_slave.h:163
uint16_t pad
Definition sdio_slave.h:164
sdio_status_t sdio_status
Definition sdio_slave.h:165
uint8_t host_to_device_msg_flag
Definition sdio_slave.h:160
sdio_msg_t sdio_msg_status
Definition sdio_slave.h:167
uint8_t volt_switch_flag
Definition sdio_slave.h:158
SDIO消息结构体。
Definition sdio_slave.h:37
uint32_t sending_msg
Definition sdio_slave.h:40
uint32_t pending_msg
Definition sdio_slave.h:38
SDIO状态信息。
Definition sdio_slave.h:75
sdio_channel_t work_status
Definition sdio_slave.h:82
uint8_t allow_sleep
Definition sdio_slave.h:76
uint8_t tx_status
Definition sdio_slave.h:78
uint8_t sleep_status
Definition sdio_slave.h:80
SDIO状态结构体。
Definition sdio_slave.h:113
uint16_t fn1_rd_over
Definition sdio_slave.h:119
uint16_t fn1_msg_rdy
Definition sdio_slave.h:124
uint16_t fn1_wr_over
Definition sdio_slave.h:118
uint16_t fn1_ack_to_arm_int_cnt
Definition sdio_slave.h:125
uint16_t fn1_rst
Definition sdio_slave.h:123
uint16_t soft_reset_cnt
Definition sdio_slave.h:133
uint16_t rd_arg_invalid_cnt
Definition sdio_slave.h:114
uint16_t fn1_en_int
Definition sdio_slave.h:131
uint16_t fn1_adma_end_int
Definition sdio_slave.h:126
uint16_t fn1_suspend
Definition sdio_slave.h:127
uint16_t fn1_resume
Definition sdio_slave.h:128
uint16_t unsupport_int_cnt
Definition sdio_slave.h:116
uint16_t mem_int_cnt
Definition sdio_slave.h:117
uint16_t wr_arg_invlaid_cnt
Definition sdio_slave.h:115
uint16_t fn1_msg_isr
Definition sdio_slave.h:132
uint16_t fn1_rd_error
Definition sdio_slave.h:120
uint16_t fn1_rd_start
Definition sdio_slave.h:121
uint16_t fn1_adma_int
Definition sdio_slave.h:129
uint16_t fn1_wr_start
Definition sdio_slave.h:122
uint16_t fn1_adma_err
Definition sdio_slave.h:130