RT-Thread RTOS 1.2.0
An open source embedded real-time operating system
|
#include <rtthread.h>
#include <drivers/mmcsd_host.h>
#include <drivers/mmcsd_card.h>
#include <drivers/mmcsd_cmd.h>
结构体 | |
struct | rt_mmcsd_data |
struct | rt_mmcsd_cmd |
struct | rt_mmcsd_req |
宏定义 | |
#define | mmcsd_dbg(fmt, ...) |
#define | DATA_DIR_WRITE (1 << 0) |
#define | DATA_DIR_READ (1 << 1) |
#define | DATA_STREAM (1 << 2) |
#define | RESP_MASK (0xF) |
#define | RESP_NONE (0) |
#define | RESP_R1 (1 << 0) |
#define | RESP_R1B (2 << 0) |
#define | RESP_R2 (3 << 0) |
#define | RESP_R3 (4 << 0) |
#define | RESP_R4 (5 << 0) |
#define | RESP_R6 (6 << 0) |
#define | RESP_R7 (7 << 0) |
#define | RESP_R5 (8 << 0) /*SDIO command response type*/ |
#define | CMD_MASK (3 << 4) /* command type */ |
#define | CMD_AC (0 << 4) |
#define | CMD_ADTC (1 << 4) |
#define | CMD_BC (2 << 4) |
#define | CMD_BCR (3 << 4) |
#define | resp_type(cmd) |
#define | RESP_SPI_MASK (0x7 << 6) |
#define | RESP_SPI_R1 (1 << 6) |
#define | RESP_SPI_R1B (2 << 6) |
#define | RESP_SPI_R2 (3 << 6) |
#define | RESP_SPI_R3 (4 << 6) |
#define | RESP_SPI_R4 (5 << 6) |
#define | RESP_SPI_R5 (6 << 6) |
#define | RESP_SPI_R7 (7 << 6) |
#define | spi_resp_type(cmd) |
#define | cmd_type(cmd) |
#define | R1_OUT_OF_RANGE (1 << 31) /* er, c */ |
#define | R1_ADDRESS_ERROR (1 << 30) /* erx, c */ |
#define | R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */ |
#define | R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */ |
#define | R1_ERASE_PARAM (1 << 27) /* ex, c */ |
#define | R1_WP_VIOLATION (1 << 26) /* erx, c */ |
#define | R1_CARD_IS_LOCKED (1 << 25) /* sx, a */ |
#define | R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */ |
#define | R1_COM_CRC_ERROR (1 << 23) /* er, b */ |
#define | R1_ILLEGAL_COMMAND (1 << 22) /* er, b */ |
#define | R1_CARD_ECC_FAILED (1 << 21) /* ex, c */ |
#define | R1_CC_ERROR (1 << 20) /* erx, c */ |
#define | R1_ERROR (1 << 19) /* erx, c */ |
#define | R1_UNDERRUN (1 << 18) /* ex, c */ |
#define | R1_OVERRUN (1 << 17) /* ex, c */ |
#define | R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */ |
#define | R1_WP_ERASE_SKIP (1 << 15) /* sx, c */ |
#define | R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */ |
#define | R1_ERASE_RESET (1 << 13) /* sr, c */ |
#define | R1_STATUS(x) |
#define | R1_CURRENT_STATE(x) |
#define | R1_READY_FOR_DATA (1 << 8) /* sx, a */ |
#define | R1_APP_CMD (1 << 5) /* sr, c */ |
#define | R1_SPI_IDLE (1 << 0) |
#define | R1_SPI_ERASE_RESET (1 << 1) |
#define | R1_SPI_ILLEGAL_COMMAND (1 << 2) |
#define | R1_SPI_COM_CRC (1 << 3) |
#define | R1_SPI_ERASE_SEQ (1 << 4) |
#define | R1_SPI_ADDRESS (1 << 5) |
#define | R1_SPI_PARAMETER (1 << 6) |
#define | R2_SPI_CARD_LOCKED (1 << 8) |
#define | R2_SPI_WP_ERASE_SKIP (1 << 9) /* or lock/unlock fail */ |
#define | R2_SPI_LOCK_UNLOCK_FAIL R2_SPI_WP_ERASE_SKIP |
#define | R2_SPI_ERROR (1 << 10) |
#define | R2_SPI_CC_ERROR (1 << 11) |
#define | R2_SPI_CARD_ECC_ERROR (1 << 12) |
#define | R2_SPI_WP_VIOLATION (1 << 13) |
#define | R2_SPI_ERASE_PARAM (1 << 14) |
#define | R2_SPI_OUT_OF_RANGE (1 << 15) /* or CSD overwrite */ |
#define | R2_SPI_CSD_OVERWRITE R2_SPI_OUT_OF_RANGE |
#define | CARD_BUSY 0x80000000 /* Card Power up status bit */ |
#define | R5_COM_CRC_ERROR (1 << 15) |
#define | R5_ILLEGAL_COMMAND (1 << 14) |
#define | R5_ERROR (1 << 11) |
#define | R5_FUNCTION_NUMBER (1 << 9) |
#define | R5_OUT_OF_RANGE (1 << 8) |
#define | R5_STATUS(x) |
#define | R5_IO_CURRENT_STATE(x) |
#define | MMCSD_HOST_PLUGED 0 |
#define | MMCSD_HOST_UNPLUGED 1 |
#define mmcsd_dbg | ( | fmt, | |
... ) |
在文件 dev_mmcsd_core.h 第 26 行定义.
#define DATA_DIR_WRITE (1 << 0) |
在文件 dev_mmcsd_core.h 第 36 行定义.
#define DATA_DIR_READ (1 << 1) |
在文件 dev_mmcsd_core.h 第 37 行定义.
#define DATA_STREAM (1 << 2) |
在文件 dev_mmcsd_core.h 第 38 行定义.
#define RESP_MASK (0xF) |
在文件 dev_mmcsd_core.h 第 63 行定义.
#define RESP_NONE (0) |
在文件 dev_mmcsd_core.h 第 64 行定义.
#define RESP_R1 (1 << 0) |
在文件 dev_mmcsd_core.h 第 65 行定义.
#define RESP_R1B (2 << 0) |
在文件 dev_mmcsd_core.h 第 66 行定义.
#define RESP_R2 (3 << 0) |
在文件 dev_mmcsd_core.h 第 67 行定义.
#define RESP_R3 (4 << 0) |
在文件 dev_mmcsd_core.h 第 68 行定义.
#define RESP_R4 (5 << 0) |
在文件 dev_mmcsd_core.h 第 69 行定义.
#define RESP_R6 (6 << 0) |
在文件 dev_mmcsd_core.h 第 70 行定义.
#define RESP_R7 (7 << 0) |
在文件 dev_mmcsd_core.h 第 71 行定义.
#define RESP_R5 (8 << 0) /*SDIO command response type*/ |
在文件 dev_mmcsd_core.h 第 72 行定义.
#define CMD_MASK (3 << 4) /* command type */ |
在文件 dev_mmcsd_core.h 第 76 行定义.
#define CMD_AC (0 << 4) |
在文件 dev_mmcsd_core.h 第 77 行定义.
#define CMD_ADTC (1 << 4) |
在文件 dev_mmcsd_core.h 第 78 行定义.
#define CMD_BC (2 << 4) |
在文件 dev_mmcsd_core.h 第 79 行定义.
#define CMD_BCR (3 << 4) |
在文件 dev_mmcsd_core.h 第 80 行定义.
#define resp_type | ( | cmd | ) |
在文件 dev_mmcsd_core.h 第 82 行定义.
#define RESP_SPI_MASK (0x7 << 6) |
在文件 dev_mmcsd_core.h 第 87 行定义.
#define RESP_SPI_R1 (1 << 6) |
在文件 dev_mmcsd_core.h 第 88 行定义.
#define RESP_SPI_R1B (2 << 6) |
在文件 dev_mmcsd_core.h 第 89 行定义.
#define RESP_SPI_R2 (3 << 6) |
在文件 dev_mmcsd_core.h 第 90 行定义.
#define RESP_SPI_R3 (4 << 6) |
在文件 dev_mmcsd_core.h 第 91 行定义.
#define RESP_SPI_R4 (5 << 6) |
在文件 dev_mmcsd_core.h 第 92 行定义.
#define RESP_SPI_R5 (6 << 6) |
在文件 dev_mmcsd_core.h 第 93 行定义.
#define RESP_SPI_R7 (7 << 6) |
在文件 dev_mmcsd_core.h 第 94 行定义.
#define spi_resp_type | ( | cmd | ) |
在文件 dev_mmcsd_core.h 第 96 行定义.
#define cmd_type | ( | cmd | ) |
在文件 dev_mmcsd_core.h 第 100 行定义.
#define R1_OUT_OF_RANGE (1 << 31) /* er, c */ |
在文件 dev_mmcsd_core.h 第 121 行定义.
#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */ |
在文件 dev_mmcsd_core.h 第 122 行定义.
#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */ |
在文件 dev_mmcsd_core.h 第 123 行定义.
#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */ |
在文件 dev_mmcsd_core.h 第 124 行定义.
#define R1_ERASE_PARAM (1 << 27) /* ex, c */ |
在文件 dev_mmcsd_core.h 第 125 行定义.
#define R1_WP_VIOLATION (1 << 26) /* erx, c */ |
在文件 dev_mmcsd_core.h 第 126 行定义.
#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */ |
在文件 dev_mmcsd_core.h 第 127 行定义.
#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */ |
在文件 dev_mmcsd_core.h 第 128 行定义.
#define R1_COM_CRC_ERROR (1 << 23) /* er, b */ |
在文件 dev_mmcsd_core.h 第 129 行定义.
#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */ |
在文件 dev_mmcsd_core.h 第 130 行定义.
#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */ |
在文件 dev_mmcsd_core.h 第 131 行定义.
#define R1_CC_ERROR (1 << 20) /* erx, c */ |
在文件 dev_mmcsd_core.h 第 132 行定义.
#define R1_ERROR (1 << 19) /* erx, c */ |
在文件 dev_mmcsd_core.h 第 133 行定义.
#define R1_UNDERRUN (1 << 18) /* ex, c */ |
在文件 dev_mmcsd_core.h 第 134 行定义.
#define R1_OVERRUN (1 << 17) /* ex, c */ |
在文件 dev_mmcsd_core.h 第 135 行定义.
#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */ |
在文件 dev_mmcsd_core.h 第 136 行定义.
#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */ |
在文件 dev_mmcsd_core.h 第 137 行定义.
#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */ |
在文件 dev_mmcsd_core.h 第 138 行定义.
#define R1_ERASE_RESET (1 << 13) /* sr, c */ |
在文件 dev_mmcsd_core.h 第 139 行定义.
#define R1_STATUS | ( | x | ) |
在文件 dev_mmcsd_core.h 第 140 行定义.
#define R1_CURRENT_STATE | ( | x | ) |
在文件 dev_mmcsd_core.h 第 141 行定义.
#define R1_READY_FOR_DATA (1 << 8) /* sx, a */ |
在文件 dev_mmcsd_core.h 第 142 行定义.
#define R1_APP_CMD (1 << 5) /* sr, c */ |
在文件 dev_mmcsd_core.h 第 143 行定义.
#define R1_SPI_IDLE (1 << 0) |
在文件 dev_mmcsd_core.h 第 146 行定义.
#define R1_SPI_ERASE_RESET (1 << 1) |
在文件 dev_mmcsd_core.h 第 147 行定义.
#define R1_SPI_ILLEGAL_COMMAND (1 << 2) |
在文件 dev_mmcsd_core.h 第 148 行定义.
#define R1_SPI_COM_CRC (1 << 3) |
在文件 dev_mmcsd_core.h 第 149 行定义.
#define R1_SPI_ERASE_SEQ (1 << 4) |
在文件 dev_mmcsd_core.h 第 150 行定义.
#define R1_SPI_ADDRESS (1 << 5) |
在文件 dev_mmcsd_core.h 第 151 行定义.
#define R1_SPI_PARAMETER (1 << 6) |
在文件 dev_mmcsd_core.h 第 152 行定义.
#define R2_SPI_CARD_LOCKED (1 << 8) |
在文件 dev_mmcsd_core.h 第 154 行定义.
#define R2_SPI_WP_ERASE_SKIP (1 << 9) /* or lock/unlock fail */ |
在文件 dev_mmcsd_core.h 第 155 行定义.
#define R2_SPI_LOCK_UNLOCK_FAIL R2_SPI_WP_ERASE_SKIP |
在文件 dev_mmcsd_core.h 第 156 行定义.
#define R2_SPI_ERROR (1 << 10) |
在文件 dev_mmcsd_core.h 第 157 行定义.
#define R2_SPI_CC_ERROR (1 << 11) |
在文件 dev_mmcsd_core.h 第 158 行定义.
#define R2_SPI_CARD_ECC_ERROR (1 << 12) |
在文件 dev_mmcsd_core.h 第 159 行定义.
#define R2_SPI_WP_VIOLATION (1 << 13) |
在文件 dev_mmcsd_core.h 第 160 行定义.
#define R2_SPI_ERASE_PARAM (1 << 14) |
在文件 dev_mmcsd_core.h 第 161 行定义.
#define R2_SPI_OUT_OF_RANGE (1 << 15) /* or CSD overwrite */ |
在文件 dev_mmcsd_core.h 第 162 行定义.
#define R2_SPI_CSD_OVERWRITE R2_SPI_OUT_OF_RANGE |
在文件 dev_mmcsd_core.h 第 163 行定义.
#define CARD_BUSY 0x80000000 /* Card Power up status bit */ |
在文件 dev_mmcsd_core.h 第 165 行定义.
#define R5_COM_CRC_ERROR (1 << 15) |
在文件 dev_mmcsd_core.h 第 168 行定义.
#define R5_ILLEGAL_COMMAND (1 << 14) |
在文件 dev_mmcsd_core.h 第 169 行定义.
#define R5_ERROR (1 << 11) |
在文件 dev_mmcsd_core.h 第 170 行定义.
#define R5_FUNCTION_NUMBER (1 << 9) |
在文件 dev_mmcsd_core.h 第 171 行定义.
#define R5_OUT_OF_RANGE (1 << 8) |
在文件 dev_mmcsd_core.h 第 172 行定义.
#define R5_STATUS | ( | x | ) |
在文件 dev_mmcsd_core.h 第 173 行定义.
#define R5_IO_CURRENT_STATE | ( | x | ) |
在文件 dev_mmcsd_core.h 第 174 行定义.
#define MMCSD_HOST_PLUGED 0 |
在文件 dev_mmcsd_core.h 第 220 行定义.
#define MMCSD_HOST_UNPLUGED 1 |
在文件 dev_mmcsd_core.h 第 221 行定义.
rt_inline rt_uint32_t __rt_fls | ( | rt_uint32_t | val | ) |
fls - find last (most-significant) bit set @x: the word to search
This is defined the same way as ffs. Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
在文件 dev_mmcsd_core.h 第 186 行定义.
rt_int32_t mmcsd_excute_tuning | ( | struct rt_mmcsd_card * | card | ) |
int mmcsd_wait_cd_changed | ( | rt_int32_t | timeout | ) |
void mmcsd_host_lock | ( | struct rt_mmcsd_host * | host | ) |
void mmcsd_host_unlock | ( | struct rt_mmcsd_host * | host | ) |
void mmcsd_req_complete | ( | struct rt_mmcsd_host * | host | ) |
void mmcsd_send_request | ( | struct rt_mmcsd_host * | host, |
struct rt_mmcsd_req * | req ) |
rt_int32_t mmcsd_send_cmd | ( | struct rt_mmcsd_host * | host, |
struct rt_mmcsd_cmd * | cmd, | ||
int | retries ) |
rt_int32_t mmcsd_go_idle | ( | struct rt_mmcsd_host * | host | ) |
rt_int32_t mmcsd_spi_read_ocr | ( | struct rt_mmcsd_host * | host, |
rt_int32_t | high_capacity, | ||
rt_uint32_t * | ocr ) |
rt_int32_t mmcsd_all_get_cid | ( | struct rt_mmcsd_host * | host, |
rt_uint32_t * | cid ) |
rt_int32_t mmcsd_get_cid | ( | struct rt_mmcsd_host * | host, |
rt_uint32_t * | cid ) |
rt_int32_t mmcsd_get_csd | ( | struct rt_mmcsd_card * | card, |
rt_uint32_t * | csd ) |
rt_int32_t mmcsd_select_card | ( | struct rt_mmcsd_card * | card | ) |
rt_int32_t mmcsd_deselect_cards | ( | struct rt_mmcsd_card * | host | ) |
rt_int32_t mmcsd_spi_use_crc | ( | struct rt_mmcsd_host * | host, |
rt_int32_t | use_crc ) |
void mmcsd_set_chip_select | ( | struct rt_mmcsd_host * | host, |
rt_int32_t | mode ) |
void mmcsd_set_clock | ( | struct rt_mmcsd_host * | host, |
rt_uint32_t | clk ) |
void mmcsd_set_bus_mode | ( | struct rt_mmcsd_host * | host, |
rt_uint32_t | mode ) |
void mmcsd_set_bus_width | ( | struct rt_mmcsd_host * | host, |
rt_uint32_t | width ) |
void mmcsd_set_timing | ( | struct rt_mmcsd_host * | host, |
rt_uint32_t | timing ) |
void mmcsd_set_data_timeout | ( | struct rt_mmcsd_data * | data, |
const struct rt_mmcsd_card * | card ) |
rt_uint32_t mmcsd_select_voltage | ( | struct rt_mmcsd_host * | host, |
rt_uint32_t | ocr ) |
void mmcsd_change | ( | struct rt_mmcsd_host * | host | ) |
void mmcsd_detect | ( | void * | param | ) |
void mmcsd_host_init | ( | struct rt_mmcsd_host * | host | ) |
struct rt_mmcsd_host * mmcsd_alloc_host | ( | void | ) |
void mmcsd_free_host | ( | struct rt_mmcsd_host * | host | ) |
int rt_mmcsd_core_init | ( | void | ) |
rt_int32_t rt_mmcsd_blk_probe | ( | struct rt_mmcsd_card * | card | ) |
void rt_mmcsd_blk_remove | ( | struct rt_mmcsd_card * | card | ) |