/* * 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 #include extern struct device mxs_apbh_bus; struct platform_device *mxs_add_platform_device_dmamask( const char *name, int id, const struct resource *res, unsigned int num_resources, const void *data, size_t size_data, u64 dmamask); static inline struct platform_device *mxs_add_platform_device( const char *name, int id, const struct resource *res, unsigned int num_resources, const void *data, size_t size_data) { return mxs_add_platform_device_dmamask( name, id, res, num_resources, data, size_data, 0); } /* auart */ struct mxs_auart_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init mxs_add_auart( const struct mxs_auart_data *data); /* fec */ #include struct mxs_fec_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init mxs_add_fec( const struct mxs_fec_data *data, const struct fec_platform_data *pdata); /* flexcan */ #include struct mxs_flexcan_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init mxs_add_flexcan( const struct mxs_flexcan_data *data, const struct flexcan_platform_data *pdata); /* gpmi-nand */ #include struct mxs_gpmi_nand_data { const char *devid; const struct resource res[GPMI_NAND_RES_SIZE]; }; struct platform_device *__init mxs_add_gpmi_nand(const struct gpmi_nand_platform_data *pdata, const struct mxs_gpmi_nand_data *data); /* i2c */ struct mxs_mxs_i2c_data { int id; resource_size_t iobase; resource_size_t errirq; resource_size_t dmairq; }; struct platform_device * __init mxs_add_mxs_i2c( const struct mxs_mxs_i2c_data *data); /* mmc */ #include struct mxs_mxs_mmc_data { const char *devid; int id; resource_size_t iobase; resource_size_t dma; resource_size_t irq_err; resource_size_t irq_dma; }; struct platform_device *__init mxs_add_mxs_mmc( const struct mxs_mxs_mmc_data *data, const struct mxs_mmc_platform_data *pdata); /* pwm */ struct platform_device *__init mxs_add_mxs_pwm( resource_size_t iobase, int id); /* saif */ #include struct mxs_saif_data { int id; resource_size_t iobase; resource_size_t irq; resource_size_t dma; resource_size_t dmairq; }; struct platform_device *__init mxs_add_saif( const struct mxs_saif_data *data, const struct mxs_saif_platform_data *pdata);