summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/spi/spi.c12
-rw-r--r--include/spi/spi.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 44040e5f62..6a5bd6d2b8 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -219,6 +219,18 @@ int spi_register_master(struct spi_master *master)
}
EXPORT_SYMBOL(spi_register_master);
+struct spi_master *spi_get_master(int bus)
+{
+ struct spi_master* m;
+
+ list_for_each_entry(m, &spi_master_list, list) {
+ if (m->bus_num == bus)
+ return m;
+ }
+
+ return NULL;
+}
+
int spi_sync(struct spi_device *spi, struct spi_message *message)
{
return spi->master->transfer(spi, message);
diff --git a/include/spi/spi.h b/include/spi/spi.h
index 1773ca22e5..d6570a402c 100644
--- a/include/spi/spi.h
+++ b/include/spi/spi.h
@@ -432,6 +432,8 @@ static inline ssize_t spi_w8r8(struct spi_device *spi, u8 cmd)
extern struct bus_type spi_bus;
+struct spi_master *spi_get_master(int bus);
+
static inline int spi_register_driver(struct driver_d *drv)
{
drv->bus = &spi_bus;