sdmmc_softc
sdmmc_decode_csd(struct sdmmc_softc *sc, sdmmc_response resp)
sdmmc_decode_cid(struct sdmmc_softc *sc, sdmmc_response resp)
struct sdmmc_softc;
sdmmc_mem_read_block(struct sdmmc_softc *sc, uint32_t blkno,
struct sdmmc_softc *sc;
sdmmc_select_card(struct sdmmc_softc *sc)
sdmmc_mem_set_blocklen(struct sdmmc_softc *sc)
sdmmc_mem_send_scr(struct sdmmc_softc *sc, uint32_t scr[2])
sdmmc_mem_decode_scr(struct sdmmc_softc *sc)
sdmmc_set_bus_width(struct sdmmc_softc *sc, int width)
sdmmc_mem_sd_switch(struct sdmmc_softc *sc, int mode, int group,
static struct sdmmc_softc sdmmc_softc;
static int sdmmc_getdisklabel(struct sdmmc_softc *sc);
static int sdmmc_enable(struct sdmmc_softc*);
static int sdmmc_mem_send_if_cond(struct sdmmc_softc*, uint32_t, uint32_t*);
static int sdmmc_mmc_command(struct sdmmc_softc*, struct sdmmc_command*);
static void sdmmc_go_idle_state(struct sdmmc_softc*);
static int sdmmc_mem_send_op_cond(struct sdmmc_softc*, uint32_t, uint32_t *);
static int sdmmc_set_bus_power(struct sdmmc_softc*, uint32_t, uint32_t);
static int sdmmc_app_command(struct sdmmc_softc*, uint16_t,
static int sdmmc_mmc_command(struct sdmmc_softc*, struct sdmmc_command*);
static int sdmmc_scan(struct sdmmc_softc*);
static void sdmmc_mem_scan(struct sdmmc_softc*);
static int sdmmc_set_relative_addr(struct sdmmc_softc*);
static int sdmmc_mem_send_cid(struct sdmmc_softc*, sdmmc_response*);
static int sdmmc_mem_send_csd(struct sdmmc_softc*, sdmmc_response*);
static int sdmmc_decode_csd(struct sdmmc_softc*, sdmmc_response);
static int sdmmc_decode_cid(struct sdmmc_softc*, sdmmc_response);
static int sdmmc_mem_read_block(struct sdmmc_softc*, uint32_t, u_char*, size_t);
static int sdmmc_select_card(struct sdmmc_softc*);
static int sdmmc_mem_set_blocklen(struct sdmmc_softc*);
static int sdmmc_mem_send_scr(struct sdmmc_softc*, uint32_t[2]);
static int sdmmc_mem_decode_scr(struct sdmmc_softc*);
static int sdmmc_set_bus_width(struct sdmmc_softc*, int);
static int sdmmc_mem_sd_switch(struct sdmmc_softc *, int, int, int, void*);
static void sdmmc_dump_command(struct sdmmc_softc*, struct sdmmc_command*);
of->f_devdata = (void*)&sdmmc_softc.partitions[part];
sdmmc_getdisklabel(struct sdmmc_softc *sc)
struct sdmmc_softc *sc = &sdmmc_softc;
sdmmc_enable(struct sdmmc_softc *sc)
sdmmc_mem_send_if_cond(struct sdmmc_softc *sc, uint32_t ocr, uint32_t *ocrp)
sdmmc_go_idle_state(struct sdmmc_softc *sc)
sdmmc_mem_send_op_cond(struct sdmmc_softc *sc, uint32_t ocr, uint32_t *ocrp)
sdmmc_set_bus_power(struct sdmmc_softc *sc, uint32_t host_ocr,
sdmmc_app_command(struct sdmmc_softc *sc, uint16_t rca,
sdmmc_dump_command(struct sdmmc_softc *sc, struct sdmmc_command *cmd)
sdmmc_mmc_command(struct sdmmc_softc *sc, struct sdmmc_command *cmd)
sdmmc_scan(struct sdmmc_softc *sc)
sdmmc_mem_scan(struct sdmmc_softc *sc)
sdmmc_set_relative_addr(struct sdmmc_softc *sc)
sdmmc_mem_send_cid(struct sdmmc_softc *sc, sdmmc_response *resp)
sdmmc_mem_send_csd(struct sdmmc_softc *sc, sdmmc_response *resp)
struct sdmmc_softc *sdmmc =
struct sdmmc_softc *sdmsc = device_private(parent);
struct sdmmc_softc *ssc = device_private(device_parent(ld->sc_dv));
struct sdmmc_softc *sdmmc = device_private(device_parent(ld->sc_dv));
static int sdmmc_scan(struct sdmmc_softc *);
static int sdmmc_init(struct sdmmc_softc *);
sdmmc_dump_command(struct sdmmc_softc *sc, struct sdmmc_command *cmd)
struct sdmmc_softc *sc = device_private(self);
struct sdmmc_softc *sc = device_private(self);
struct sdmmc_softc *sc = device_private(dev);
sdmmc_add_task(struct sdmmc_softc *sc, struct sdmmc_task *task)
sdmmc_del_task1(struct sdmmc_softc *sc, struct sdmmc_task *task)
sdmmc_del_task(struct sdmmc_softc *sc, struct sdmmc_task *task,
struct sdmmc_softc *sc = (struct sdmmc_softc *)arg;
struct sdmmc_softc *sc = device_private(dev);
struct sdmmc_softc *sc = (struct sdmmc_softc *)arg;
struct sdmmc_softc *sc = (struct sdmmc_softc *)arg;
sdmmc_card_attach(struct sdmmc_softc *sc)
sdmmc_card_detach(struct sdmmc_softc *sc, int flags)
sdmmc_enable(struct sdmmc_softc *sc)
sdmmc_disable(struct sdmmc_softc *sc)
sdmmc_set_bus_power(struct sdmmc_softc *sc, uint32_t host_ocr,
sdmmc_function_alloc(struct sdmmc_softc *sc)
struct sdmmc_softc *sc = sf->sc;
static void sdmmc_dump_command(struct sdmmc_softc *, struct sdmmc_command *);
sdmmc_scan(struct sdmmc_softc *sc)
sdmmc_init(struct sdmmc_softc *sc)
sdmmc_app_command(struct sdmmc_softc *sc, struct sdmmc_function *sf, struct sdmmc_command *cmd)
sdmmc_mmc_command(struct sdmmc_softc *sc, struct sdmmc_command *cmd)
CFATTACH_DECL_NEW(sdmmc, sizeof(struct sdmmc_softc),
sdmmc_stop_transmission(struct sdmmc_softc *sc)
sdmmc_go_idle_state(struct sdmmc_softc *sc)
static void sdmmc_card_attach(struct sdmmc_softc *);
sdmmc_set_relative_addr(struct sdmmc_softc *sc, struct sdmmc_function *sf)
static void sdmmc_card_detach(struct sdmmc_softc *, int);
static int sdmmc_enable(struct sdmmc_softc *);
sdmmc_select_card(struct sdmmc_softc *sc, struct sdmmc_function *sf)
static void sdmmc_disable(struct sdmmc_softc *);
sdmmc_io_scan(struct sdmmc_softc *sc)
sdmmc_io_init(struct sdmmc_softc *sc, struct sdmmc_function *sf)
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
sdmmc_io_rw_direct(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_io_rw_extended(struct sdmmc_softc *sc, struct sdmmc_function *sf,
struct sdmmc_softc *ih_softc;
static int sdmmc_io_rw_direct(struct sdmmc_softc *,
static int sdmmc_io_rw_extended(struct sdmmc_softc *,
static int sdmmc_io_xchg(struct sdmmc_softc *, struct sdmmc_function *,
static void sdmmc_io_reset(struct sdmmc_softc *);
static int sdmmc_io_send_op_cond(struct sdmmc_softc *, uint32_t,
sdmmc_io_xchg(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_io_reset(struct sdmmc_softc *sc)
sdmmc_io_send_op_cond(struct sdmmc_softc *sc, u_int32_t ocr, u_int32_t *ocrp)
sdmmc_io_enable(struct sdmmc_softc *sc)
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = device_private(dev);
struct sdmmc_softc *sc = ih->ih_softc;
struct sdmmc_softc *sc = device_private(dev);
struct sdmmc_softc *sc = (struct sdmmc_softc *)arg;
struct sdmmc_softc *sc = sf->sc;
static int sdmmc_mem_spi_read_ocr(struct sdmmc_softc *, uint32_t, uint32_t *);
sdmmc_mem_send_cid(struct sdmmc_softc *sc, sdmmc_response *resp)
sdmmc_mem_send_csd(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_mem_send_scr(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_mem_decode_scr(struct sdmmc_softc *sc, struct sdmmc_function *sf)
sdmmc_mem_send_ssr(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_mem_decode_ssr(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_mem_enable(struct sdmmc_softc *sc)
sdmmc_mem_decode_general_info(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_mem_pef_enable_cache(struct sdmmc_softc *sc,
sdmmc_mem_send_cxd_data(struct sdmmc_softc *sc, int opcode, void *data,
sdmmc_mem_read_extr_single(struct sdmmc_softc *sc, struct sdmmc_function *sf,
sdmmc_mem_write_extr_single(struct sdmmc_softc *sc, struct sdmmc_function *sf,
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
sdmmc_mem_spi_read_ocr(struct sdmmc_softc *sc, uint32_t hcs, uint32_t *card_ocr)
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
struct sdmmc_softc *sc = sf->sc;
sdmmc_mem_signal_voltage(struct sdmmc_softc *sc, int signal_voltage)
sdmmc_mem_scan(struct sdmmc_softc *sc)
sdmmc_decode_csd(struct sdmmc_softc *sc, sdmmc_response resp,
sdmmc_decode_cid(struct sdmmc_softc *sc, sdmmc_response resp,
sdmmc_mem_init(struct sdmmc_softc *sc, struct sdmmc_function *sf)
sdmmc_mem_send_op_cond(struct sdmmc_softc *sc, uint32_t ocr, uint32_t *ocrp)
sdmmc_mem_send_if_cond(struct sdmmc_softc *sc, uint32_t ocr, uint32_t *ocrp)
sdmmc_mem_set_blocklen(struct sdmmc_softc *sc, struct sdmmc_function *sf,
static int sdmmc_mem_sd_init(struct sdmmc_softc *, struct sdmmc_function *);
sdmmc_mem_select_transfer_mode(struct sdmmc_softc *sc, int support_func)
static int sdmmc_mem_mmc_init(struct sdmmc_softc *, struct sdmmc_function *);
static int sdmmc_mem_send_cid(struct sdmmc_softc *, sdmmc_response *);
sdmmc_mem_execute_tuning(struct sdmmc_softc *sc, struct sdmmc_function *sf)
static int sdmmc_mem_send_csd(struct sdmmc_softc *, struct sdmmc_function *,
static int sdmmc_mem_send_scr(struct sdmmc_softc *, struct sdmmc_function *,
sdmmc_mem_sd_init(struct sdmmc_softc *sc, struct sdmmc_function *sf)
static int sdmmc_mem_decode_scr(struct sdmmc_softc *, struct sdmmc_function *);
static int sdmmc_mem_send_ssr(struct sdmmc_softc *, struct sdmmc_function *,
static int sdmmc_mem_decode_ssr(struct sdmmc_softc *, struct sdmmc_function *,
static int sdmmc_mem_decode_general_info(struct sdmmc_softc *,
static int sdmmc_mem_pef_enable_cache(struct sdmmc_softc *,
static int sdmmc_mem_send_cxd_data(struct sdmmc_softc *, int, void *, size_t);
static int sdmmc_mem_read_extr_single(struct sdmmc_softc *, struct sdmmc_function *,
static int sdmmc_mem_write_extr_single(struct sdmmc_softc *, struct sdmmc_function *,
sdmmc_mem_mmc_init(struct sdmmc_softc *sc, struct sdmmc_function *sf)
static int sdmmc_mem_signal_voltage(struct sdmmc_softc *, int);
struct sdmmc_softc *sc; /* card slot softc */
void sdmmc_add_task(struct sdmmc_softc *, struct sdmmc_task *);
bool sdmmc_del_task(struct sdmmc_softc *, struct sdmmc_task *, kmutex_t *);
struct sdmmc_function *sdmmc_function_alloc(struct sdmmc_softc *);
int sdmmc_set_bus_power(struct sdmmc_softc *, uint32_t, uint32_t);
int sdmmc_mmc_command(struct sdmmc_softc *, struct sdmmc_command *);
int sdmmc_app_command(struct sdmmc_softc *, struct sdmmc_function *,
void sdmmc_stop_transmission(struct sdmmc_softc *);
void sdmmc_go_idle_state(struct sdmmc_softc *);
int sdmmc_select_card(struct sdmmc_softc *, struct sdmmc_function *);
int sdmmc_set_relative_addr(struct sdmmc_softc *, struct sdmmc_function *);
int sdmmc_decode_csd(struct sdmmc_softc *, sdmmc_response,
int sdmmc_decode_cid(struct sdmmc_softc *, sdmmc_response,
int sdmmc_io_enable(struct sdmmc_softc *);
void sdmmc_io_scan(struct sdmmc_softc *);
int sdmmc_io_init(struct sdmmc_softc *, struct sdmmc_function *);
int sdmmc_mem_enable(struct sdmmc_softc *);
void sdmmc_mem_scan(struct sdmmc_softc *);
int sdmmc_mem_init(struct sdmmc_softc *, struct sdmmc_function *);
int sdmmc_mem_send_op_cond(struct sdmmc_softc *, uint32_t, uint32_t *);
int sdmmc_mem_send_if_cond(struct sdmmc_softc *, uint32_t, uint32_t *);
int sdmmc_mem_set_blocklen(struct sdmmc_softc *, struct sdmmc_function *,
sdmmc_alignment_ok(struct sdmmc_softc *sc, bus_dmamap_t dm)
struct sdmmc_softc;
struct sdmmc_softc *sc;