11dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project/****************************************************************************
21dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************
31dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***
41dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   This header was automatically generated from a Linux kernel header
51dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   of the same name, to make information necessary for userspace to
61dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   call into the kernel available to libc.  It contains only constants,
71dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   structures, and macros generated from the original header, and thus,
81dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***   contains no copyrightable information.
91dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ***
10654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   To edit the content of this header, modify the corresponding
11654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   run bionic/libc/kernel/tools/update_all.py
13654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***
14654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   Any manual change here will be lost the next time this script will
15654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***   be run. You've been warned!
16654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng ***
171dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************
181dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project ****************************************************************************/
191dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#ifndef LINUX_MMC_CARD_H
201dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define LINUX_MMC_CARD_H
211dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#include <linux/mmc/mmc.h>
221dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct mmc_cid {
23654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
241dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int manfid;
251dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project char prod_name[8];
261dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int serial;
271dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short oemid;
28654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
291dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short year;
301dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char hwrev;
311dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char fwrev;
321dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char month;
33654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
341dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
351dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct mmc_csd {
361dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char mmca_vsn;
371dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short cmdclass;
38654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
391dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned short tacc_clks;
401dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int tacc_ns;
411dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int r2w_factor;
421dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int max_dtr;
43654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
441dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int read_blkbits;
451dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int write_blkbits;
461dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int capacity;
471dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int read_partial:1,
48654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
491dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project read_misalign:1,
501dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project write_partial:1,
511dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project write_misalign:1;
521dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
53654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
541dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct sd_scr {
551dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char sda_vsn;
561dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned char bus_widths;
571dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define SD_SCR_BUS_WIDTH_1 (1<<0)
58654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
591dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define SD_SCR_BUS_WIDTH_4 (1<<2)
601dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
611dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct mmc_host;
621dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct mmc_card {
63654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
641dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct list_head node;
651dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct mmc_host *host;
661dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct device dev;
671dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int rca;
68654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
691dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project unsigned int state;
701dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MMC_STATE_PRESENT (1<<0)
711dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MMC_STATE_DEAD (1<<1)
721dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MMC_STATE_BAD (1<<2)
73654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
741dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MMC_STATE_SDCARD (1<<3)
751dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define MMC_STATE_READONLY (1<<4)
761dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project u32 raw_cid[4];
771dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project u32 raw_csd[4];
78654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
791dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project u32 raw_scr[2];
801dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct mmc_cid cid;
811dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct mmc_csd csd;
821dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct sd_scr scr;
83654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
841dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
851dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT)
861dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_dead(c) ((c)->state & MMC_STATE_DEAD)
871dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_bad(c) ((c)->state & MMC_STATE_BAD)
88654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
891dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_sd(c) ((c)->state & MMC_STATE_SDCARD)
901dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY)
911dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT)
921dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_set_dead(c) ((c)->state |= MMC_STATE_DEAD)
93654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
941dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_set_bad(c) ((c)->state |= MMC_STATE_BAD)
951dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_set_sd(c) ((c)->state |= MMC_STATE_SDCARD)
961dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
971dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_name(c) ((c)->cid.prod_name)
98654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
991dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_id(c) ((c)->dev.bus_id)
1001dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_list_to_card(l) container_of(l, struct mmc_card, node)
1011dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_get_drvdata(c) dev_get_drvdata(&(c)->dev)
1021dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_set_drvdata(c,d) dev_set_drvdata(&(c)->dev, d)
103654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1041dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Projectstruct mmc_driver {
1051dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project struct device_driver drv;
1061dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int (*probe)(struct mmc_card *);
1071dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project void (*remove)(struct mmc_card *);
108654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1091dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int (*suspend)(struct mmc_card *, pm_message_t);
1101dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project int (*resume)(struct mmc_card *);
1111dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project};
1121dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#define mmc_card_release_host(c) mmc_release_host((c)->host)
113654325de026a2ca5b76b8b40e576c959d8211fdcBen Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1141dc9e472e19acfe6dc7f41e429236e7eef7ceda1The Android Open Source Project#endif
115