diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-24 15:43:25 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-31 12:32:10 +0200 |
commit | dffbe91e8b571520f63fc2417895683b61853871 (patch) | |
tree | 393d21d986b8965fd0c20591eab04079c1848b7e /drivers/mci/mci-core.c | |
parent | 95e7982f99c03806b640c2e98e3e8e29ecefa3f1 (diff) | |
download | barebox-dffbe91e8b571520f63fc2417895683b61853871.tar.gz barebox-dffbe91e8b571520f63fc2417895683b61853871.tar.xz |
mci: implement detect driver callback
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mci/mci-core.c')
-rw-r--r-- | drivers/mci/mci-core.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c index 416168f79c..50068a7741 100644 --- a/drivers/mci/mci-core.c +++ b/drivers/mci/mci-core.c @@ -1596,6 +1596,24 @@ static int mci_init(void) device_initcall(mci_init); +int mci_detect_card(struct mci_host *host) +{ + int rc; + + rc = mci_check_if_already_initialized(host->mci); + if (rc != 0) + return 0; + + return mci_card_probe(host->mci); +} + +static int mci_detect(struct device_d *dev) +{ + struct mci *mci = container_of(dev, struct mci, dev); + + return mci_detect_card(mci->host); +} + /** * Create a new mci device (for convenience) * @param host mci_host for this MCI device @@ -1619,6 +1637,9 @@ int mci_register(struct mci_host *host) mci->dev.platform_data = host; mci->dev.parent = host->hw_dev; + mci->host = host; + host->mci = mci; + mci->dev.detect = mci_detect; ret = register_device(&mci->dev); if (ret) |