mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-07 15:01:44 +00:00
mmc: basic SDIO device model
Add the sdio bus type and basic device handling. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
This commit is contained in:
parent
b2bcc798bb
commit
e29a7d73f4
7 changed files with 279 additions and 15 deletions
|
@ -56,6 +56,9 @@ struct sd_switch_caps {
|
|||
};
|
||||
|
||||
struct mmc_host;
|
||||
struct sdio_func;
|
||||
|
||||
#define SDIO_MAX_FUNCS 7
|
||||
|
||||
/*
|
||||
* MMC device
|
||||
|
@ -73,6 +76,7 @@ struct mmc_card {
|
|||
#define MMC_STATE_READONLY (1<<1) /* card is read-only */
|
||||
#define MMC_STATE_HIGHSPEED (1<<2) /* card is in high speed mode */
|
||||
#define MMC_STATE_BLOCKADDR (1<<3) /* card uses block-addressing */
|
||||
|
||||
u32 raw_cid[4]; /* raw card CID */
|
||||
u32 raw_csd[4]; /* raw card CSD */
|
||||
u32 raw_scr[2]; /* raw card SCR */
|
||||
|
@ -81,6 +85,9 @@ struct mmc_card {
|
|||
struct mmc_ext_csd ext_csd; /* mmc v4 extended card specific */
|
||||
struct sd_scr scr; /* extra SD information */
|
||||
struct sd_switch_caps sw_caps; /* switch (CMD6) caps */
|
||||
|
||||
unsigned int sdio_funcs; /* number of SDIO functions */
|
||||
struct sdio_func *sdio_func[SDIO_MAX_FUNCS]; /* SDIO functions (devices) */
|
||||
};
|
||||
|
||||
#define mmc_card_mmc(c) ((c)->type == MMC_TYPE_MMC)
|
||||
|
|
35
include/linux/mmc/sdio_func.h
Normal file
35
include/linux/mmc/sdio_func.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* include/linux/mmc/sdio_func.h
|
||||
*
|
||||
* Copyright 2007 Pierre Ossman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef MMC_SDIO_FUNC_H
|
||||
#define MMC_SDIO_FUNC_H
|
||||
|
||||
struct mmc_card;
|
||||
|
||||
/*
|
||||
* SDIO function devices
|
||||
*/
|
||||
struct sdio_func {
|
||||
struct mmc_card *card; /* the card this device belongs to */
|
||||
struct device dev; /* the device */
|
||||
unsigned int num; /* function number */
|
||||
unsigned int state; /* function state */
|
||||
#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */
|
||||
};
|
||||
|
||||
#define sdio_func_present(f) ((f)->state & SDIO_STATE_PRESENT)
|
||||
|
||||
#define sdio_func_set_present(f) ((f)->state |= SDIO_STATE_PRESENT)
|
||||
|
||||
#define sdio_func_id(f) ((f)->dev.bus_id)
|
||||
|
||||
#endif
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue