summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/devices.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2010-10-24 20:51:00 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2010-11-02 18:11:03 +0100
commite4aaf7f27fe9ba1227dd63fa6eeac8c0858a0620 (patch)
treebadeeef8df34811923112bc5d9117d8828d255eb /arch/arm/mach-imx/devices.c
parentaaf125fa8141249d5e52969ce3d31913fceb6194 (diff)
downloadbarebox-e4aaf7f27fe9ba1227dd63fa6eeac8c0858a0620.tar.gz
barebox-e4aaf7f27fe9ba1227dd63fa6eeac8c0858a0620.tar.xz
ARM i.MX: Add device convenience functions
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/devices.c')
-rw-r--r--arch/arm/mach-imx/devices.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/devices.c b/arch/arm/mach-imx/devices.c
new file mode 100644
index 0000000000..dfeae1e55b
--- /dev/null
+++ b/arch/arm/mach-imx/devices.c
@@ -0,0 +1,59 @@
+#include <common.h>
+#include <driver.h>
+#include <mach/devices.h>
+
+static struct device_d *imx_add_device(char *name, int id, void *base, int size, void *pdata)
+{
+ struct device_d *dev;
+
+ dev = xzalloc(sizeof(*dev));
+ strcpy(dev->name,name);
+ dev->id = id;
+ dev->map_base = (unsigned long)base;
+ dev->size = size;
+ dev->platform_data = pdata;
+
+ register_device(dev);
+
+ return 0;
+}
+
+struct device_d *imx_add_fec(void *base, struct fec_platform_data *pdata)
+{
+ return imx_add_device("fec_imx", -1, base, 0x1000, pdata);
+}
+
+struct device_d *imx_add_spi(void *base, int id, struct spi_imx_master *pdata)
+{
+ return imx_add_device("imx_spi", id, base, 0x1000, pdata);
+}
+
+struct device_d *imx_add_i2c(void *base, int id, struct i2c_platform_data *pdata)
+{
+ return imx_add_device("i2c-imx", id, base, 0x1000, pdata);
+}
+
+struct device_d *imx_add_uart(void *base, int id)
+{
+ return imx_add_device("imx_serial", id, base, 0x1000, NULL);
+}
+
+struct device_d *imx_add_nand(void *base, struct imx_nand_platform_data *pdata)
+{
+ return imx_add_device("imx_nandl", -1, base, 0x1000, pdata);
+}
+
+struct device_d *imx_add_fb(void *base, struct imx_fb_platform_data *pdata)
+{
+ return imx_add_device("imxfb", -1, base, 0x1000, pdata);
+}
+
+struct device_d *imx_add_ipufb(void *base, struct imx_ipu_fb_platform_data *pdata)
+{
+ return imx_add_device("imx-ipu-fb", -1, base, 0x1000, pdata);
+}
+
+struct device_d *imx_add_mmc(void *base, int id, void *pdata)
+{
+ return imx_add_device("imx-mmc", id, base, 0x1000, pdata);
+}