]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/platform-bionic.git/blob - libc/kernel/common/linux/mmc/card.h
auto import from //depot/cupcake/@135843
[android-sdk/platform-bionic.git] / libc / kernel / common / linux / mmc / card.h
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef LINUX_MMC_CARD_H
13 #define LINUX_MMC_CARD_H
15 #include <linux/mmc/mmc.h>
17 struct mmc_cid {
18  unsigned int manfid;
19  char prod_name[8];
20  unsigned int serial;
21  unsigned short oemid;
22  unsigned short year;
23  unsigned char hwrev;
24  unsigned char fwrev;
25  unsigned char month;
26 };
28 struct mmc_csd {
29  unsigned char mmca_vsn;
30  unsigned short cmdclass;
31  unsigned short tacc_clks;
32  unsigned int tacc_ns;
33  unsigned int r2w_factor;
34  unsigned int max_dtr;
35  unsigned int read_blkbits;
36  unsigned int write_blkbits;
37  unsigned int capacity;
38  unsigned int read_partial:1,
39  read_misalign:1,
40  write_partial:1,
41  write_misalign:1;
42 };
44 struct sd_scr {
45  unsigned char sda_vsn;
46  unsigned char bus_widths;
47 #define SD_SCR_BUS_WIDTH_1 (1<<0)
48 #define SD_SCR_BUS_WIDTH_4 (1<<2)
49 };
51 struct mmc_host;
53 struct mmc_card {
54  struct list_head node;
55  struct mmc_host *host;
56  struct device dev;
57  unsigned int rca;
58  unsigned int state;
59 #define MMC_STATE_PRESENT (1<<0)  
60 #define MMC_STATE_DEAD (1<<1)  
61 #define MMC_STATE_BAD (1<<2)  
62 #define MMC_STATE_SDCARD (1<<3)  
63 #define MMC_STATE_READONLY (1<<4)  
64  u32 raw_cid[4];
65  u32 raw_csd[4];
66  u32 raw_scr[2];
67  struct mmc_cid cid;
68  struct mmc_csd csd;
69  struct sd_scr scr;
70 };
72 #define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT)
73 #define mmc_card_dead(c) ((c)->state & MMC_STATE_DEAD)
74 #define mmc_card_bad(c) ((c)->state & MMC_STATE_BAD)
75 #define mmc_card_sd(c) ((c)->state & MMC_STATE_SDCARD)
76 #define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY)
78 #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT)
79 #define mmc_card_set_dead(c) ((c)->state |= MMC_STATE_DEAD)
80 #define mmc_card_set_bad(c) ((c)->state |= MMC_STATE_BAD)
81 #define mmc_card_set_sd(c) ((c)->state |= MMC_STATE_SDCARD)
82 #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
84 #define mmc_card_name(c) ((c)->cid.prod_name)
85 #define mmc_card_id(c) ((c)->dev.bus_id)
87 #define mmc_list_to_card(l) container_of(l, struct mmc_card, node)
88 #define mmc_get_drvdata(c) dev_get_drvdata(&(c)->dev)
89 #define mmc_set_drvdata(c,d) dev_set_drvdata(&(c)->dev, d)
91 struct mmc_driver {
92  struct device_driver drv;
93  int (*probe)(struct mmc_card *);
94  void (*remove)(struct mmc_card *);
95  int (*suspend)(struct mmc_card *, pm_message_t);
96  int (*resume)(struct mmc_card *);
97 };
99 #define mmc_card_release_host(c) mmc_release_host((c)->host)
100 #endif