#include <stdbool.h>
#include <string.h>
#include <debug.h>
#include <delayed_work.h>
#include <bitops.h>
#include <io.h>
#include <interrupt.h>
#include <irq_handler.h>
#include <softirq.h>
#include <status-codes.h>
#include <util.h>
#include <slist.h>
#include <timeout.h>
#include <workqueue.h>
#include <buffer.h>
#include <malloc.h>
#include <dmac/dma_controller.h>
#include <chip/clk.h>
#include <chip/portmux.h>
#include <chip/irq-map.h>
#include <sdmmc/sdmmc.h>
#include <sdmmc/mcihost.h>
#include "protocol.h"
#include "mci_regs.h"
#include <board/sdmmc.h>
#include <app/softirq.h>
#include <app/timer.h>
#include <app/workqueue.h>

Go to the source code of this file.
Enumerations | |
| enum | sdmmc_mcihost_state { STATE_IDLE = 0, STATE_SENDING_CMD, STATE_DATA_XFER, STATE_SENDING_STOP, STATE_FINISH_REQ, STATE_CARD_STATUS } |
| enum | mci_send_cmd_flags { MCI_SEND_CMD_STOP, MCI_SEND_CMD_WRITE } |
Functions | |
| static void | sdmmc_mcihost_load_data (struct sdmmc_mcihost *mcihost) |
| Process the DMA queue. | |
| struct sdmmc_host * | sdmmc_mcihost_init () |
| Initialize SD/MMC MCI host driver. | |
SD/MMC MCI host driver providing interface between host layer and hardware.
Definition in file mcihost.c.
| enum mci_send_cmd_flags |
| enum sdmmc_mcihost_state |
| struct sdmmc_host* sdmmc_mcihost_init | ( | void | ) | [read] |
Initialize SD/MMC MCI host driver.
Definition at line 1090 of file mcihost.c.
References BOARD_MCISLOT_A_CD, dbg_panic, dbg_printf, delayed_work_init(), DMAC_REG_WIDTH_32BIT, dmac_req_init(), get_mci_pclk_rate(), memset(), min, sdmmc_cd_init(), SDMMC_OCR_V_32_33, SDMMC_OCR_V_33_34, sdmmc_slot_init(), setup_irq_handler, slist_init(), softirq_set_handler(), and workqueue_init_item().

| static void sdmmc_mcihost_load_data | ( | struct sdmmc_mcihost * | mcihost | ) | [static] |
Process the DMA queue.
For internal use only.
Definition at line 567 of file mcihost.c.
References assert, sdmmc_request::block_size, sdmmc_request::blocks, sdmmc_request::buf_list, dmac_request::buf_list, sdmmc_request::buf_list_done, dmac_request::bytes_xfered, sdmmc_request::bytes_xfered, dbg_error, dbg_verbose, dmac_chan_submit_request(), slist_init(), slist_is_empty(), slist_move_to_tail(), sdmmc_request::status, dmac_request::status, and STATUS_IN_PROGRESS.

1.5.8