/* * Copyright (C) 2009-2010 Pengutronix * Uwe Kleine-Koenig * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. */ #include #include #include struct platform_device *imx_add_platform_device(const char *name, int id, const struct resource *res, unsigned int num_resources, const void *data, size_t size_data); #include struct imx_fec_data { resource_size_t iobase; resource_size_t irq; }; struct platform_device *__init imx_add_fec( const struct imx_fec_data *data, const struct fec_platform_data *pdata); #include struct platform_device *__init imx_add_flexcan(int id, resource_size_t iobase, resource_size_t iosize, resource_size_t irq, const struct flexcan_platform_data *pdata); #include struct platform_device *__init imx_add_gpio_keys( const struct gpio_keys_platform_data *pdata); #include struct imx_imx_i2c_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init imx_add_imx_i2c( const struct imx_imx_i2c_data *data, const struct imxi2c_platform_data *pdata); #include struct imx_imx_ssi_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; resource_size_t dmatx0; resource_size_t dmarx0; resource_size_t dmatx1; resource_size_t dmarx1; }; struct platform_device *__init imx_add_imx_ssi( const struct imx_imx_ssi_data *data, const struct imx_ssi_platform_data *pdata); #include struct imx_imx_uart_3irq_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irqrx; resource_size_t irqtx; resource_size_t irqrts; }; struct platform_device *__init imx_add_imx_uart_3irq( const struct imx_imx_uart_3irq_data *data, const struct imxuart_platform_data *pdata); struct imx_imx_uart_1irq_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init imx_add_imx_uart_1irq( const struct imx_imx_uart_1irq_data *data, const struct imxuart_platform_data *pdata); #include struct imx_mxc_nand_data { /* * id is traditionally 0, but -1 is more appropriate. We use -1 for new * machines but don't change existing devices as the nand device usually * appears in the kernel command line to pass its partitioning. */ int id; resource_size_t iobase; resource_size_t iosize; resource_size_t axibase; resource_size_t irq; }; struct platform_device *__init imx_add_mxc_nand( const struct imx_mxc_nand_data *data, const struct mxc_nand_platform_data *pdata); struct imx_mxc_w1_data { resource_size_t iobase; }; struct platform_device *__init imx_add_mxc_w1( const struct imx_mxc_w1_data *data); #include struct imx_spi_imx_data { const char *devid; int id; resource_size_t iobase; resource_size_t iosize; int irq; }; struct platform_device *__init imx_add_spi_imx( const struct imx_spi_imx_data *data, const struct spi_imx_master *pdata); #include struct imx_esdhc_imx_data { int id; resource_size_t iobase; resource_size_t irq; }; struct platform_device *__init imx_add_esdhc( const struct imx_esdhc_imx_data *data, const struct esdhc_platform_data *pdata);