blob: 22f42620b92d1124c9f754b5cd8ad9dbe26f7fc4 [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_HOST_H
20#define LINUX_MMC_HOST_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_ios {
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 clock;
25 unsigned short vdd;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080026#define MMC_VDD_150 0
27#define MMC_VDD_155 1
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#define MMC_VDD_160 2
30#define MMC_VDD_165 3
31#define MMC_VDD_170 4
32#define MMC_VDD_180 5
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#define MMC_VDD_190 6
35#define MMC_VDD_200 7
36#define MMC_VDD_210 8
37#define MMC_VDD_220 9
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#define MMC_VDD_230 10
40#define MMC_VDD_240 11
41#define MMC_VDD_250 12
42#define MMC_VDD_260 13
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#define MMC_VDD_270 14
45#define MMC_VDD_280 15
46#define MMC_VDD_290 16
47#define MMC_VDD_300 17
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#define MMC_VDD_310 18
50#define MMC_VDD_320 19
51#define MMC_VDD_330 20
52#define MMC_VDD_340 21
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 -080054#define MMC_VDD_350 22
55#define MMC_VDD_360 23
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080056 unsigned char bus_mode;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080057#define MMC_BUSMODE_OPENDRAIN 1
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 MMC_BUSMODE_PUSHPULL 2
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080060 unsigned char chip_select;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080061#define MMC_CS_DONTCARE 0
62#define MMC_CS_HIGH 1
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#define MMC_CS_LOW 2
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080065 unsigned char power_mode;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080066#define MMC_POWER_OFF 0
67#define MMC_POWER_UP 1
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#define MMC_POWER_ON 2
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080070 unsigned char bus_width;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080071#define MMC_BUS_WIDTH_1 0
72#define MMC_BUS_WIDTH_4 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};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080075struct mmc_host_ops {
76 void (*request)(struct mmc_host *host, struct mmc_request *req);
77 void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios);
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 int (*get_ro)(struct mmc_host *host);
80};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080081struct mmc_card;
82struct device;
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 -080084struct mmc_host {
85 struct device *dev;
86 struct class_device class_dev;
87 int index;
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 const struct mmc_host_ops *ops;
90 unsigned int f_min;
91 unsigned int f_max;
92 u32 ocr_avail;
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 unsigned long caps;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080095#define MMC_CAP_4_BIT_DATA (1 << 0)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080096 unsigned int max_seg_size;
97 unsigned short max_hw_segs;
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 unsigned short max_phys_segs;
100 unsigned short max_sectors;
101 unsigned short unused;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800102 struct mmc_ios ios;
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 -0800104 u32 ocr;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800105 unsigned int mode;
106#define MMC_MODE_MMC 0
107#define MMC_MODE_SD 1
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 struct list_head cards;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800110 wait_queue_head_t wq;
111 spinlock_t lock;
112 struct mmc_card *card_busy;
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 struct mmc_card *card_selected;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800115 struct work_struct detect;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800116 unsigned long private[0] ____cacheline_aligned;
117};
Ben Cheng654325d2012-03-07 21:13:49 -0800118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800119#define mmc_dev(x) ((x)->dev)
120#define mmc_hostname(x) ((x)->class_dev.class_id)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800121#endif