diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2010-10-24 20:51:00 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-11-02 18:11:03 +0100 |
commit | e4aaf7f27fe9ba1227dd63fa6eeac8c0858a0620 (patch) | |
tree | badeeef8df34811923112bc5d9117d8828d255eb /arch/arm/mach-imx/devices.c | |
parent | aaf125fa8141249d5e52969ce3d31913fceb6194 (diff) | |
download | barebox-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.c | 59 |
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); +} |