数据结构设计
SDMC 数据类型及其结构描述如下:
- struct aic_sdmc_host:属于 HAL 层接口,定义了 SDMC 控制器
管理信息。
struct aic_sdmc_host { volatile void *base; u32 is_sdio; u32 fifoth_val; };
- struct aic_sdmc_idma_desc:属于 HAL 层接口,记录了
SDMC 控制器内部 DMA 访问的描述符。
struct aic_sdmc_idma_desc { u32 flags; u32 cnt; u32 addr; u32 next_addr; } __aligned(8);
- struct aic_sdmc:
- RT-Thread:属于 Driver 层的内部接口,用于记录 SDMC
控制器的管理信息
struct aic_sdmc { struct rt_mmcsd_host *rthost; struct rt_mmcsd_req *req; struct rt_mmcsd_cmd *cmd; struct aic_sdmc_host host; rt_uint32_t *buf; u32 clk; u32 irq; u32 index; unsigned int quirks; unsigned int caps; unsigned int version; unsigned int clock; unsigned int sclk_rate; unsigned int div; int buswidth; int ddr_mode; /* use fifo mode to read and write data */ int fifo_mode; struct aic_sdmc_pdata *pdata; };
- Baremetal:属于 Baremetal Driver 层的内部接口,用于记录 SDMC
控制器的管理信息
struct aic_sdmc { struct aic_sdmc_dev *dev; struct aic_sdmc_cmd *cmd; struct aic_sdmc_data *data; struct aic_sdmc_host host; u32 *buf; u32 clk; u32 irq; u32 index; unsigned int quirks; unsigned int caps; unsigned int version; unsigned int clock; unsigned int sclk_rate; unsigned int div; int buswidth; int ddr_mode; /* use fifo mode to read and write data */ int fifo_mode; struct aic_sdmc_pdata *pdata; };
- RT-Thread:属于 Driver 层的内部接口,用于记录 SDMC
控制器的管理信息