diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-12 11:51:39 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-12 11:51:39 -0800 | 
| commit | d01e4afdbb65e030fd6f1f96c30a558e2eb0f279 (patch) | |
| tree | 02ef82b2740cf93a98199eded5ef765fa6e03052 /arch/arm/mach-imx/devices/devices-common.h | |
| parent | 8287361abca36504da813638310d2547469283eb (diff) | |
| parent | 794b175fc0c0c4844dbb7b137a73bbfd01f6c608 (diff) | |
| download | olio-linux-3.10-d01e4afdbb65e030fd6f1f96c30a558e2eb0f279.tar.xz olio-linux-3.10-d01e4afdbb65e030fd6f1f96c30a558e2eb0f279.zip  | |
Merge tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC cleanups on various subarchitectures from Olof Johansson:
 "Cleanup patches for various ARM platforms and some of their associated
  drivers.  There's also a branch in here that enables Freescale i.MX to
  be part of the multiplatform support -- the first "big" SoC that is
  moved over (more multiplatform work comes in a separate branch later
  during the merge window)."
Conflicts fixed as per Olof, including a silent semantic one in
arch/arm/mach-omap2/board-generic.c (omap_prcm_restart() was renamed to
omap3xxx_restart(), and a new user of the old name was added).
* tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (189 commits)
  ARM: omap: fix typo on timer cleanup
  ARM: EXYNOS: Remove unused regs-mem.h file
  ARM: EXYNOS: Remove unused non-dt support for dwmci controller
  ARM: Kirkwood: Use hw_pci.ops instead of hw_pci.scan
  ARM: OMAP3: cm-t3517: use GPTIMER for system clock
  ARM: OMAP2+: timer: remove CONFIG_OMAP_32K_TIMER
  ARM: SAMSUNG: use devm_ functions for ADC driver
  ARM: EXYNOS: no duplicate mask/unmask in eint0_15
  ARM: S3C24XX: SPI clock channel setup is fixed for S3C2443
  ARM: EXYNOS: Remove i2c0 resource information and setting of device names
  ARM: Kirkwood: checkpatch cleanups
  ARM: Kirkwood: Fix sparse warnings.
  ARM: Kirkwood: Remove unused includes
  ARM: kirkwood: cleanup lsxl board includes
  ARM: integrator: use BUG_ON where possible
  ARM: integrator: push down SC dependencies
  ARM: integrator: delete static UART1 mapping
  ARM: integrator: delete SC mapping on the CP
  ARM: integrator: remove static CP syscon mapping
  ARM: integrator: remove static AP syscon mapping
  ...
Diffstat (limited to 'arch/arm/mach-imx/devices/devices-common.h')
| -rw-r--r-- | arch/arm/mach-imx/devices/devices-common.h | 348 | 
1 files changed, 348 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/devices/devices-common.h b/arch/arm/mach-imx/devices/devices-common.h new file mode 100644 index 00000000000..e4b790b9e2a --- /dev/null +++ b/arch/arm/mach-imx/devices/devices-common.h @@ -0,0 +1,348 @@ +/* + * Copyright (C) 2009-2010 Pengutronix + * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> + * + * 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 <linux/kernel.h> +#include <linux/platform_device.h> +#include <linux/init.h> +#include <linux/platform_data/dma-imx-sdma.h> + +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 <linux/fec.h> +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 <linux/can/platform/flexcan.h> +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 <linux/fsl_devices.h> +struct imx_fsl_usb2_udc_data { +	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 <linux/gpio_keys.h> +struct platform_device *__init imx_add_gpio_keys( +		const struct gpio_keys_platform_data *pdata); + +#include <linux/platform_data/usb-mx2.h> +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 <linux/platform_data/video-imxfb.h> +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 <linux/platform_data/i2c-imx.h> +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 <linux/input/matrix_keypad.h> +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 <linux/platform_data/asoc-imx-ssi.h> +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 <linux/platform_data/serial-imx.h> +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 <linux/platform_data/usb-imx_udc.h> +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 <linux/platform_data/video-mx3fb.h> +#include <linux/platform_data/camera-mx3.h> +struct imx_ipu_core_data { +	resource_size_t iobase; +	resource_size_t synirq; +	resource_size_t errirq; +}; +struct platform_device *__init imx_add_ipu_core( +		const struct imx_ipu_core_data *data); +struct platform_device *__init imx_alloc_mx3_camera( +		const struct imx_ipu_core_data *data, +		const struct mx3_camera_pdata *pdata); +struct platform_device *__init imx_add_mx3_sdc_fb( +		const struct imx_ipu_core_data *data, +		struct mx3fb_platform_data *pdata); + +#include <linux/platform_data/camera-mx1.h> +struct imx_mx1_camera_data { +	resource_size_t iobase; +	resource_size_t iosize; +	resource_size_t irq; +}; +struct platform_device *__init imx_add_mx1_camera( +		const struct imx_mx1_camera_data *data, +		const struct mx1_camera_pdata *pdata); + +#include <linux/platform_data/camera-mx2.h> +struct imx_mx2_camera_data { +	const char *devid; +	resource_size_t iobasecsi; +	resource_size_t iosizecsi; +	resource_size_t irqcsi; +	resource_size_t iobaseemmaprp; +	resource_size_t iosizeemmaprp; +	resource_size_t irqemmaprp; +}; +struct platform_device *__init imx_add_mx2_camera( +		const struct imx_mx2_camera_data *data, +		const struct mx2_camera_platform_data *pdata); +struct platform_device *__init imx_add_mx2_emmaprp( +		const struct imx_mx2_camera_data *data); + +#include <linux/platform_data/usb-ehci-mxc.h> +struct imx_mxc_ehci_data { +	int id; +	resource_size_t iobase; +	resource_size_t irq; +}; +struct platform_device *__init imx_add_mxc_ehci( +		const struct imx_mxc_ehci_data *data, +		const struct mxc_usbh_platform_data *pdata); + +#include <linux/platform_data/mmc-mxcmmc.h> +struct imx_mxc_mmc_data { +	const char *devid; +	int id; +	resource_size_t iobase; +	resource_size_t iosize; +	resource_size_t irq; +	resource_size_t dmareq; +}; +struct platform_device *__init imx_add_mxc_mmc( +		const struct imx_mxc_mmc_data *data, +		const struct imxmmc_platform_data *pdata); + +#include <linux/platform_data/mtd-mxc_nand.h> +struct imx_mxc_nand_data { +	const char *devid; +	/* +	 * 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_pata_imx_data { +	resource_size_t iobase; +	resource_size_t iosize; +	resource_size_t irq; +}; +struct platform_device *__init imx_add_pata_imx( +		const struct imx_pata_imx_data *data); + +struct imx_mxc_pwm_data { +	int id; +	resource_size_t iobase; +	resource_size_t iosize; +	resource_size_t irq; +}; +struct platform_device *__init imx_add_mxc_pwm( +		const struct imx_mxc_pwm_data *data); + +/* mxc_rtc */ +struct imx_mxc_rtc_data { +	const char *devid; +	resource_size_t iobase; +	resource_size_t irq; +}; +struct platform_device *__init imx_add_mxc_rtc( +		const struct imx_mxc_rtc_data *data); + +/* mxc_w1 */ +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 <linux/platform_data/mmc-esdhc-imx.h> +struct imx_sdhci_esdhc_imx_data { +	const char *devid; +	int id; +	resource_size_t iobase; +	resource_size_t irq; +}; +struct platform_device *__init imx_add_sdhci_esdhc_imx( +		const struct imx_sdhci_esdhc_imx_data *data, +		const struct esdhc_platform_data *pdata); + +#include <linux/platform_data/spi-imx.h> +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); + +struct platform_device *imx_add_imx_dma(char *name, resource_size_t iobase, +					int irq, int irq_err); +struct platform_device *imx_add_imx_sdma(char *name, +	resource_size_t iobase, int irq, struct sdma_platform_data *pdata); + +#include <linux/ahci_platform.h> +struct imx_ahci_imx_data { +	const char *devid; +	resource_size_t iobase; +	resource_size_t irq; +}; +struct platform_device *__init imx_add_ahci_imx( +		const struct imx_ahci_imx_data *data, +		const struct ahci_platform_data *pdata);  |