diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/Kconfig | 1 | ||||
-rw-r--r-- | drivers/Makefile | 1 | ||||
-rw-r--r-- | drivers/spi/Kconfig | 14 | ||||
-rw-r--r-- | drivers/spi/Makefile | 4 | ||||
-rw-r--r-- | drivers/spi/imx_spi.c | 30 | ||||
-rw-r--r-- | drivers/spi/mc13783.c | 27 | ||||
-rw-r--r-- | drivers/spi/spi.c | 14 |
7 files changed, 91 insertions, 0 deletions
diff --git a/drivers/Kconfig b/drivers/Kconfig index eeb582b8f9..afb2c4296a 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -2,6 +2,7 @@ menu "Drivers " source "drivers/serial/Kconfig" source "drivers/net/Kconfig" +source "drivers/spi/Kconfig" menu "flash drivers " diff --git a/drivers/Makefile b/drivers/Makefile index ecba682f48..586e637607 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -1,6 +1,7 @@ obj-y += net/ obj-y += serial/ obj-y += nand/ +obj-$(CONFIG_SPI) += spi/ obj-$(CONFIG_DRIVER_CFI_OLD) += cfi_flash.o obj-$(CONFIG_DRIVER_CFI_NEW) += cfi_flash_new.o obj-$(CONFIG_DRIVER_CFI_INTEL) += cfi_flash_intel.o 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; +} |