blob: a09b71da3a584391eec751cbef5840b6dda19f1e [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
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 ***
Ben Cheng654325d2012-03-07 21:13:49 -080010 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080017 ****************************************************************************
18 ****************************************************************************/
19#ifndef LINUX_MMC_CARD_H
20#define LINUX_MMC_CARD_H
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080021#include <linux/mmc/mmc.h>
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080022struct mmc_cid {
Ben Cheng654325d2012-03-07 21:13:49 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080024 unsigned int manfid;
25 char prod_name[8];
26 unsigned int serial;
27 unsigned short oemid;
Ben Cheng654325d2012-03-07 21:13:49 -080028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029 unsigned short year;
30 unsigned char hwrev;
31 unsigned char fwrev;
32 unsigned char month;
Ben Cheng654325d2012-03-07 21:13:49 -080033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080034};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080035struct mmc_csd {
36 unsigned char mmca_vsn;
37 unsigned short cmdclass;
Ben Cheng654325d2012-03-07 21:13:49 -080038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080039 unsigned short tacc_clks;
40 unsigned int tacc_ns;
41 unsigned int r2w_factor;
42 unsigned int max_dtr;
Ben Cheng654325d2012-03-07 21:13:49 -080043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080044 unsigned int read_blkbits;
45 unsigned int write_blkbits;
46 unsigned int capacity;
47 unsigned int read_partial:1,
Ben Cheng654325d2012-03-07 21:13:49 -080048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080049 read_misalign:1,
50 write_partial:1,
51 write_misalign:1;
52};
Ben Cheng654325d2012-03-07 21:13:49 -080053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080054struct sd_scr {
55 unsigned char sda_vsn;
56 unsigned char bus_widths;
57#define SD_SCR_BUS_WIDTH_1 (1<<0)
Ben Cheng654325d2012-03-07 21:13:49 -080058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080059#define SD_SCR_BUS_WIDTH_4 (1<<2)
60};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080061struct mmc_host;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080062struct mmc_card {
Ben Cheng654325d2012-03-07 21:13:49 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080064 struct list_head node;
65 struct mmc_host *host;
66 struct device dev;
67 unsigned int rca;
Ben Cheng654325d2012-03-07 21:13:49 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080069 unsigned int state;
70#define MMC_STATE_PRESENT (1<<0)
71#define MMC_STATE_DEAD (1<<1)
72#define MMC_STATE_BAD (1<<2)
Ben Cheng654325d2012-03-07 21:13:49 -080073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080074#define MMC_STATE_SDCARD (1<<3)
75#define MMC_STATE_READONLY (1<<4)
76 u32 raw_cid[4];
77 u32 raw_csd[4];
Ben Cheng654325d2012-03-07 21:13:49 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080079 u32 raw_scr[2];
80 struct mmc_cid cid;
81 struct mmc_csd csd;
82 struct sd_scr scr;
Ben Cheng654325d2012-03-07 21:13:49 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080084};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080085#define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT)
86#define mmc_card_dead(c) ((c)->state & MMC_STATE_DEAD)
87#define mmc_card_bad(c) ((c)->state & MMC_STATE_BAD)
Ben Cheng654325d2012-03-07 21:13:49 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080089#define mmc_card_sd(c) ((c)->state & MMC_STATE_SDCARD)
90#define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080091#define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT)
92#define mmc_card_set_dead(c) ((c)->state |= MMC_STATE_DEAD)
Ben Cheng654325d2012-03-07 21:13:49 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080094#define mmc_card_set_bad(c) ((c)->state |= MMC_STATE_BAD)
95#define mmc_card_set_sd(c) ((c)->state |= MMC_STATE_SDCARD)
96#define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080097#define mmc_card_name(c) ((c)->cid.prod_name)
Ben Cheng654325d2012-03-07 21:13:49 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080099#define mmc_card_id(c) ((c)->dev.bus_id)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800100#define mmc_list_to_card(l) container_of(l, struct mmc_card, node)
101#define mmc_get_drvdata(c) dev_get_drvdata(&(c)->dev)
102#define mmc_set_drvdata(c,d) dev_set_drvdata(&(c)->dev, d)
Ben Cheng654325d2012-03-07 21:13:49 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800104struct mmc_driver {
105 struct device_driver drv;
106 int (*probe)(struct mmc_card *);
107 void (*remove)(struct mmc_card *);
Ben Cheng654325d2012-03-07 21:13:49 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800109 int (*suspend)(struct mmc_card *, pm_message_t);
110 int (*resume)(struct mmc_card *);
111};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800112#define mmc_card_release_host(c) mmc_release_host((c)->host)
Ben Cheng654325d2012-03-07 21:13:49 -0800113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800114#endif