Commit | Line | Data |
---|---|---|
4101c16a PO |
1 | /* |
2 | * linux/drivers/mmc/core/bus.h | |
3 | * | |
4 | * Copyright (C) 2003 Russell King, All Rights Reserved. | |
5 | * Copyright 2007 Pierre Ossman | |
6 | * | |
7 | * This program is free software; you can redistribute it and/or modify | |
8 | * it under the terms of the GNU General Public License version 2 as | |
9 | * published by the Free Software Foundation. | |
10 | */ | |
11 | #ifndef _MMC_CORE_BUS_H | |
12 | #define _MMC_CORE_BUS_H | |
13 | ||
4facdde1 UH |
14 | #include <linux/device.h> |
15 | ||
066185d6 UH |
16 | struct mmc_host; |
17 | struct mmc_card; | |
066185d6 | 18 | |
51ec92e2 PO |
19 | #define MMC_DEV_ATTR(name, fmt, args...) \ |
20 | static ssize_t mmc_##name##_show (struct device *dev, struct device_attribute *attr, char *buf) \ | |
21 | { \ | |
265cdc90 | 22 | struct mmc_card *card = mmc_dev_to_card(dev); \ |
51ec92e2 PO |
23 | return sprintf(buf, fmt, args); \ |
24 | } \ | |
25 | static DEVICE_ATTR(name, S_IRUGO, mmc_##name##_show, NULL) | |
26 | ||
27 | struct mmc_card *mmc_alloc_card(struct mmc_host *host, | |
28 | struct device_type *type); | |
4101c16a PO |
29 | int mmc_add_card(struct mmc_card *card); |
30 | void mmc_remove_card(struct mmc_card *card); | |
31 | ||
32 | int mmc_register_bus(void); | |
33 | void mmc_unregister_bus(void); | |
34 | ||
4facdde1 UH |
35 | struct mmc_driver { |
36 | struct device_driver drv; | |
37 | int (*probe)(struct mmc_card *card); | |
38 | void (*remove)(struct mmc_card *card); | |
39 | void (*shutdown)(struct mmc_card *card); | |
40 | }; | |
4101c16a | 41 | |
4facdde1 UH |
42 | int mmc_register_driver(struct mmc_driver *drv); |
43 | void mmc_unregister_driver(struct mmc_driver *drv); | |
44 | ||
45 | #endif |