summaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2008-03-11 22:13:06 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2008-03-11 22:13:06 +0100
commit906eea397a2f4378c4cab841fb832211e0414ce9 (patch)
treec910e8ab4fbd7061f9d594fb181956acf1b919cf /drivers/spi
parent5864a49007e36af60b4959c32bf6b66058859dba (diff)
downloadbarebox-906eea397a2f4378c4cab841fb832211e0414ce9.tar.gz
barebox-906eea397a2f4378c4cab841fb832211e0414ce9.tar.xz
beginning of SPI support
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/Kconfig14
-rw-r--r--drivers/spi/Makefile4
-rw-r--r--drivers/spi/imx_spi.c30
-rw-r--r--drivers/spi/mc13783.c27
-rw-r--r--drivers/spi/spi.c14
5 files changed, 89 insertions, 0 deletions
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
new file mode 100644
index 0000000000..1c48ceac70
--- /dev/null
+++ b/drivers/spi/Kconfig
@@ -0,0 +1,14 @@
+menu "SPI drivers "
+
+config SPI
+ bool
+ default y
+
+config DRIVER_SPI_IMX
+ bool "i.MX SPI Master driver"
+ depends on ARCH_IMX
+
+config DRIVER_SPI_MC13783
+ bool "MC13783 a.k.a. PMIC driver"
+
+endmenu
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
new file mode 100644
index 0000000000..daef099004
--- /dev/null
+++ b/drivers/spi/Makefile
@@ -0,0 +1,4 @@
+obj-y += spi.o
+obj-$(CONFIG_DRIVER_SPI_IMX) += imx_spi.o
+
+obj-$(CONFIG_DRIVER_SPI_MC13783) += mc13783.o
diff --git a/drivers/spi/imx_spi.c b/drivers/spi/imx_spi.c
new file mode 100644
index 0000000000..641e635e29
--- /dev/null
+++ b/drivers/spi/imx_spi.c
@@ -0,0 +1,30 @@
+#include <common.h>
+#include <init.h>
+#include <driver.h>
+#include <spi/spi.h>
+#include <xfuncs.h>
+
+static int imx_spi_probe(struct device_d *dev)
+{
+ struct spi_master *master;
+
+ master = xmalloc(sizeof(struct spi_master));
+
+ spi_register_master(master);
+
+ return 0;
+}
+
+static struct driver_d imx_spi_driver = {
+ .name = "imx_spi",
+ .probe = imx_spi_probe,
+};
+
+static int imx_spi_init(void)
+{
+ register_driver(&imx_spi_driver);
+ return 0;
+}
+
+device_initcall(imx_spi_init);
+
diff --git a/drivers/spi/mc13783.c b/drivers/spi/mc13783.c
new file mode 100644
index 0000000000..6c467dfb93
--- /dev/null
+++ b/drivers/spi/mc13783.c
@@ -0,0 +1,27 @@
+#include <common.h>
+#include <init.h>
+#include <driver.h>
+#include <spi/spi.h>
+#include <xfuncs.h>
+
+static int pmic_probe(struct device_d *dev)
+{
+ printf("%s\n", __FUNCTION__);
+
+ return 0;
+}
+
+static struct driver_d pmic_driver = {
+ .name = "mc13783",
+ .probe = pmic_probe,
+};
+
+static int pmic_init(void)
+{
+ printf("%s\n", __FUNCTION__);
+ register_driver(&pmic_driver);
+ return 0;
+}
+
+device_initcall(pmic_init);
+
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
new file mode 100644
index 0000000000..765e34d5e2
--- /dev/null
+++ b/drivers/spi/spi.c
@@ -0,0 +1,14 @@
+#include <common.h>
+#include <spi/spi.h>
+
+int spi_register_boardinfo(struct spi_board_info *info, int num)
+{
+ printf("%s\n", __FUNCTION__);
+ return 0;
+}
+
+int spi_register_master(struct spi_master *master)
+{
+ printf("%s\n", __FUNCTION__);
+ return 0;
+}