/* * 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 mxc_aips_bus; extern struct device mxc_ahb_bus; static inline struct platform_device *imx_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) { struct platform_device_info pdevinfo = { .name = name, .id = id, .res = res, .num_res = num_resources, .data = data, .size_data = size_data, .dma_mask = dmamask, }; return platform_device_register_full(&pdevinfo); } static inline 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) { return imx_add_platform_device_dmamask( name, id, res, num_resources, data, size_data, 0); } #include struct imx_fec_data { const char *devid; 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 imx_flexcan_data { int id; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init imx_add_flexcan( const struct imx_flexcan_data *data, const struct flexcan_platform_data *pdata); #include struct imx_fsl_usb2_udc_data { const char *devid; resource_size_t iobase; resource_size_t irq; }; struct platform_device *__init imx_add_fsl_usb2_udc( const struct imx_fsl_usb2_udc_data *data, const struct fsl_usb2_platform_data *pdata); #include struct platform_device *__init imx_add_gpio_keys( const struct gpio_keys_platform_data *pdata); #include struct imx_imx21_hcd_data { resource_size_t iobase; resource_size_t irq; }; struct platform_device *__init imx_add_imx21_hcd( const struct imx_imx21_hcd_data *data, const struct mx21_usbh_platform_data *pdata); struct imx_imx27_coda_data { resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init imx_add_imx27_coda( const struct imx_imx27_coda_data *data); struct imx_imx2_wdt_data { int id; resource_size_t iobase; resource_size_t iosize; }; struct platform_device *__init imx_add_imx2_wdt( const struct imx_imx2_wdt_data *data); struct imx_imxdi_rtc_data { resource_size_t iobase; resource_size_t irq; }; struct platform_device *__init imx_add_imxdi_rtc( const struct imx_imxdi_rtc_data *data); #include struct imx_imx_fb_data { const char *devid; resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init imx_add_imx_fb( const struct imx_imx_fb_data *data, const struct imx_fb_platform_data *pdata); #include struct imx_imx_i2c_data { const char *devid; 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_keypad_data { resource_size_t iobase; resource_size_t iosize; resource_size_t irq; }; struct platform_device *__init imx_add_imx_keypad( const struct imx_imx_keypad_data *data, const struct matrix_keymap_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_imx_udc_data { resource_size_t iobase; resource_size_t iosize; resource_size_t irq0; resource_size_t irq1; resource_size_t irq2; resource_size_t irq3; resource_size_t irq4; resource_size_t irq5; resource_size_t irq6; }; struct platform_device *__init imx_add_imx_udc( const struct imx_imx_udc_data *data, const struct imxusb_platform_data *pdata); #include #include