14101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman/*
24101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman *  linux/drivers/mmc/core/bus.h
34101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman *
44101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman *  Copyright (C) 2003 Russell King, All Rights Reserved.
54101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman *  Copyright 2007 Pierre Ossman
64101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman *
74101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman * This program is free software; you can redistribute it and/or modify
84101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman * it under the terms of the GNU General Public License version 2 as
94101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman * published by the Free Software Foundation.
104101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman */
114101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman#ifndef _MMC_CORE_BUS_H
124101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman#define _MMC_CORE_BUS_H
134101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman
1451ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossman#define MMC_DEV_ATTR(name, fmt, args...)					\
1551ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossmanstatic ssize_t mmc_##name##_show (struct device *dev, struct device_attribute *attr, char *buf)	\
1651ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossman{										\
17265cdc900ce93c0cd2465d751fe75ff2e55e126eAndy Shevchenko	struct mmc_card *card = mmc_dev_to_card(dev);				\
1851ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossman	return sprintf(buf, fmt, args);						\
1951ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossman}										\
2051ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossmanstatic DEVICE_ATTR(name, S_IRUGO, mmc_##name##_show, NULL)
2151ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossman
2251ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossmanstruct mmc_card *mmc_alloc_card(struct mmc_host *host,
2351ec92e295d563dd5712d198a7e46c2ae5ccccb2Pierre Ossman	struct device_type *type);
244101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossmanint mmc_add_card(struct mmc_card *card);
254101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossmanvoid mmc_remove_card(struct mmc_card *card);
264101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman
274101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossmanint mmc_register_bus(void);
284101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossmanvoid mmc_unregister_bus(void);
294101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman
304101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman#endif
314101c16a910b15afd190c6bc7d45864461cf5c25Pierre Ossman
32