summaryrefslogtreecommitdiffstats
path: root/drivers/mci/mci-core.c
diff options
context:
space:
mode:
authorDaniel Schultz <d.schultz@phytec.de>2015-09-02 08:28:52 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-09-04 08:59:42 +0200
commit572e8cdfa34130fac53ff95102a246a694880444 (patch)
treec321b8caa1d4e2dcf440981f1b83ceec0c16a51a /drivers/mci/mci-core.c
parent1f76dfce39cf04b963d542a72e0af4bcf12a4313 (diff)
downloadbarebox-572e8cdfa34130fac53ff95102a246a694880444.tar.gz
barebox-572e8cdfa34130fac53ff95102a246a694880444.tar.xz
drivers: mci: Add mci_get_device_by_name function
Get a 'struct mci' by search after the device name. Signed-off-by: Daniel Schultz <d.schultz@phytec.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mci/mci-core.c')
-rw-r--r--drivers/mci/mci-core.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index c22f932c72..6d5a4bfc6e 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -53,6 +53,8 @@
__res & __mask; \
})
+LIST_HEAD(mci_list);
+
/**
* @file
* @brief Memory Card framework
@@ -1787,6 +1789,8 @@ int mci_register(struct mci_host *host)
if (IS_ENABLED(CONFIG_MCI_STARTUP))
mci_card_probe(mci);
+ list_add_tail(&mci->list, &mci_list);
+
return 0;
err_unregister:
@@ -1844,3 +1848,17 @@ void mci_of_parse(struct mci_host *host)
host->non_removable = of_property_read_bool(np, "non-removable");
}
+
+struct mci *mci_get_device_by_name(const char *name)
+{
+ struct mci *mci;
+
+ list_for_each_entry(mci, &mci_list, list) {
+ if (!mci->cdevname)
+ continue;
+ if (!strcmp(mci->cdevname, name))
+ return mci;
+ }
+
+ return NULL;
+}