24#define SMHC_DES_NUM_SHIFT 12
25#define SMHC_DES_BUFFER_MAX_LEN (1 << SMHC_DES_NUM_SHIFT)
27#define MMC_REG_FIFO_OS (0x200)
29#define SMHC_TIMEOUT 0xfffff
30#define SMHC_DMA_TIMEOUT 0xffffff
31#define SMHC_WAITBUSY_TIMEOUT 0xfffff
32#define SMHC_DATA_TIMEOUT 0xfffff
33#define SMHC_RESP_TIMEOUT 0xff
124#define SDHCI_DEFAULT_CLK_RST_OFFSET(x) (16 + x)
125#define SDHCI_DEFAULT_CLK_GATE_OFFSET(x) (x)
126#define SDHCI_DEFAULT_CLK_FACTOR_M_OFFSET (0)
127#define SDHCI_DEFAULT_CLK_FACTOR_N_OFFSET (8)
u32_t uint32_t
Definition stdint.h:13
u8_t uint8_t
Definition stdint.h:7
struct sunxi_sdhci_pinctrl sunxi_sdhci_pinctrl_t
struct sunxi_sdhci_clk sunxi_sdhci_clk_t
int sunxi_sdhci_core_init(sunxi_sdhci_t *sdhci)
Initialize the core functionality of the SDHC controller.
Definition sys-sdhci.c:833
int sunxi_sdhci_set_mclk(sunxi_sdhci_t *sdhci, uint32_t clk_hz)
Set the SDHC controller's clock frequency.
Definition sys-sdhci.c:29
struct sunxi_sdhci sunxi_sdhci_t
int sunxi_sdhci_xfer(sunxi_sdhci_t *sdhci, mmc_cmd_t *cmd, mmc_data_t *data)
Perform a data transfer operation on the SDHC controller.
Definition sys-sdhci.c:888
int sunxi_sdhci_init(sunxi_sdhci_t *sdhci)
Initialize the SDHC controller.
Definition sys-sdhci.c:1162
void sunxi_sdhci_set_ios(sunxi_sdhci_t *sdhci)
Set the I/O settings for the SDHC controller.
Definition sys-sdhci.c:794
uint32_t sunxi_sdhci_get_mclk(sunxi_sdhci_t *sdhci)
Get the current clock frequency of the SDHC controller.
Definition sys-sdhci.c:84
struct sunxi_sdhci_desc __attribute__((aligned(8)))
struct sunxi_sdhci_timing sunxi_sdhci_timing_t
void sunxi_sdhci_dump_reg(sunxi_sdhci_t *sdhci)
Dump the contents of the SDHCI registers.
Definition sys-sdhci.c:1229
sunxi_sdhci_type_t
Definition sys-sdhci.h:41
@ MMC_TYPE_SD
Definition sys-sdhci.h:42
@ MMC_TYPE_EMMC
Definition sys-sdhci.h:43
int sunxi_sdhci_update_phase(sunxi_sdhci_t *sdhci)
Update phase for the SDHC controller.
Definition sys-sdhci.c:1137
@ MMC_CONTROLLER_1
Definition sys-sdhci.h:37
@ MMC_CONTROLLER_2
Definition sys-sdhci.h:38
@ MMC_CONTROLLER_0
Definition sys-sdhci.h:36
struct sunxi_sdhci_host sunxi_sdhci_host_t
Definition reg-smhc.h:186
Definition sys-sdhci.h:94
uint8_t reg_factor_m_offset
Definition sys-sdhci.h:99
uint8_t reg_factor_n_offset
Definition sys-sdhci.h:97
uint8_t clk_sel
Definition sys-sdhci.h:100
uint8_t factor_n
Definition sys-sdhci.h:96
uint32_t parent_clk
Definition sys-sdhci.h:101
uint32_t reg_base
Definition sys-sdhci.h:95
uint8_t factor_m
Definition sys-sdhci.h:98
Definition sys-sdhci.h:46
uint32_t last_desc
Definition sys-sdhci.h:48
uint32_t data_buf_dummy
Definition sys-sdhci.h:56
uint32_t buf_addr
Definition sys-sdhci.h:57
uint32_t next_desc_addr
Definition sys-sdhci.h:58
uint32_t dic
Definition sys-sdhci.h:47
uint32_t data_buf_sz
Definition sys-sdhci.h:56
uint32_t err_flag
Definition sys-sdhci.h:52
uint32_t own
Definition sys-sdhci.h:54
uint32_t first_desc
Definition sys-sdhci.h:49
uint32_t des_chain
Definition sys-sdhci.h:50
uint32_t end_of_ring
Definition sys-sdhci.h:51
Definition sys-sdhci.h:61
uint8_t fatal_err
Definition sys-sdhci.h:64
uint8_t timing_mode
Definition sys-sdhci.h:65
uint32_t commreg
Definition sys-sdhci.h:63
sunxi_sdhci_desc_t * sdhci_desc
Definition sys-sdhci.h:68
sdhci_reg_t * reg
Definition sys-sdhci.h:62
Definition sys-sdhci.h:71
gpio_mux_t gpio_d1
Definition sys-sdhci.h:73
gpio_mux_t gpio_ds
Definition sys-sdhci.h:82
gpio_mux_t gpio_d0
Definition sys-sdhci.h:72
gpio_mux_t gpio_d2
Definition sys-sdhci.h:74
gpio_mux_t gpio_d3
Definition sys-sdhci.h:75
gpio_mux_t gpio_clk
Definition sys-sdhci.h:81
gpio_mux_t gpio_cmd
Definition sys-sdhci.h:80
uint8_t cd_level
Definition sys-sdhci.h:85
gpio_mux_t gpio_d5
Definition sys-sdhci.h:77
gpio_mux_t gpio_cd
Definition sys-sdhci.h:84
gpio_mux_t gpio_rst
Definition sys-sdhci.h:83
gpio_mux_t gpio_d7
Definition sys-sdhci.h:79
gpio_mux_t gpio_d4
Definition sys-sdhci.h:76
gpio_mux_t gpio_d6
Definition sys-sdhci.h:78
Definition sys-sdhci.h:88
uint8_t auto_timing
Definition sys-sdhci.h:91
uint32_t sdly
Definition sys-sdhci.h:90
uint32_t odly
Definition sys-sdhci.h:89
Definition sys-sdhci.h:104
uint32_t id
Definition sys-sdhci.h:107
uint32_t width
Definition sys-sdhci.h:108
sunxi_sdhci_type_t sdhci_mmc_type
Definition sys-sdhci.h:113
sunxi_clk_t clk_ctrl
Definition sys-sdhci.h:109
sunxi_sdhci_clk_t sdhci_clk
Definition sys-sdhci.h:110
sunxi_sdhci_timing_t * timing_data
Definition sys-sdhci.h:121
uint32_t max_clk
Definition sys-sdhci.h:111
sunxi_sdhci_host_t * mmc_host
Definition sys-sdhci.h:120
sunxi_sdhci_pinctrl_t pinctrl
Definition sys-sdhci.h:116
uint32_t dma_des_addr
Definition sys-sdhci.h:112
mmc_t * mmc
Definition sys-sdhci.h:119
uint32_t reg_base
Definition sys-sdhci.h:106
char * name
Definition sys-sdhci.h:105