diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/platform_data/asoc-imx-ssi.h | 21 | ||||
| -rw-r--r-- | include/linux/platform_data/camera-mx1.h | 35 | ||||
| -rw-r--r-- | include/linux/platform_data/camera-mx2.h | 46 | ||||
| -rw-r--r-- | include/linux/platform_data/camera-mx3.h | 48 | ||||
| -rw-r--r-- | include/linux/platform_data/dma-imx-sdma.h | 59 | ||||
| -rw-r--r-- | include/linux/platform_data/dma-imx.h | 67 | ||||
| -rw-r--r-- | include/linux/platform_data/i2c-imx.h | 21 | ||||
| -rw-r--r-- | include/linux/platform_data/mmc-esdhc-imx.h | 43 | ||||
| -rw-r--r-- | include/linux/platform_data/mmc-mxcmmc.h | 39 | ||||
| -rw-r--r-- | include/linux/platform_data/mtd-mxc_nand.h | 32 | ||||
| -rw-r--r-- | include/linux/platform_data/serial-imx.h | 35 | ||||
| -rw-r--r-- | include/linux/platform_data/spi-imx.h | 27 | ||||
| -rw-r--r-- | include/linux/platform_data/usb-ehci-mxc.h | 59 | ||||
| -rw-r--r-- | include/linux/platform_data/usb-imx_udc.h | 23 | ||||
| -rw-r--r-- | include/linux/platform_data/usb-mx2.h | 38 | ||||
| -rw-r--r-- | include/linux/platform_data/video-imxfb.h | 84 | ||||
| -rw-r--r-- | include/linux/platform_data/video-mx3fb.h | 53 | 
17 files changed, 730 insertions, 0 deletions
diff --git a/include/linux/platform_data/asoc-imx-ssi.h b/include/linux/platform_data/asoc-imx-ssi.h new file mode 100644 index 00000000000..63f3c280423 --- /dev/null +++ b/include/linux/platform_data/asoc-imx-ssi.h @@ -0,0 +1,21 @@ +#ifndef __MACH_SSI_H +#define __MACH_SSI_H + +struct snd_ac97; + +extern unsigned char imx_ssi_fiq_start, imx_ssi_fiq_end; +extern unsigned long imx_ssi_fiq_base, imx_ssi_fiq_tx_buffer, imx_ssi_fiq_rx_buffer; + +struct imx_ssi_platform_data { +	unsigned int flags; +#define IMX_SSI_DMA            (1 << 0) +#define IMX_SSI_USE_AC97       (1 << 1) +#define IMX_SSI_NET            (1 << 2) +#define IMX_SSI_SYN            (1 << 3) +#define IMX_SSI_USE_I2S_SLAVE  (1 << 4) +	void (*ac97_reset) (struct snd_ac97 *ac97); +	void (*ac97_warm_reset)(struct snd_ac97 *ac97); +}; + +#endif /* __MACH_SSI_H */ + diff --git a/include/linux/platform_data/camera-mx1.h b/include/linux/platform_data/camera-mx1.h new file mode 100644 index 00000000000..4fd6c70314b --- /dev/null +++ b/include/linux/platform_data/camera-mx1.h @@ -0,0 +1,35 @@ +/* + * mx1_camera.h - i.MX1/i.MXL camera driver header file + * + * Copyright (c) 2008, Paulius Zaleckas <paulius.zaleckas@teltonika.lt> + * Copyright (C) 2009, Darius Augulis <augulis.darius@gmail.com> + * + * Based on PXA camera.h file: + * Copyright (C) 2003, Intel Corporation + * Copyright (C) 2008, Guennadi Liakhovetski <kernel@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. + */ + +#ifndef __ASM_ARCH_CAMERA_H_ +#define __ASM_ARCH_CAMERA_H_ + +#define MX1_CAMERA_DATA_HIGH	1 +#define MX1_CAMERA_PCLK_RISING	2 +#define MX1_CAMERA_VSYNC_HIGH	4 + +extern unsigned char mx1_camera_sof_fiq_start, mx1_camera_sof_fiq_end; + +/** + * struct mx1_camera_pdata - i.MX1/i.MXL camera platform data + * @mclk_10khz:	master clock frequency in 10kHz units + * @flags:	MX1 camera platform flags + */ +struct mx1_camera_pdata { +	unsigned long mclk_10khz; +	unsigned long flags; +}; + +#endif /* __ASM_ARCH_CAMERA_H_ */ diff --git a/include/linux/platform_data/camera-mx2.h b/include/linux/platform_data/camera-mx2.h new file mode 100644 index 00000000000..3c080a32dbf --- /dev/null +++ b/include/linux/platform_data/camera-mx2.h @@ -0,0 +1,46 @@ +/* + * mx2-cam.h - i.MX27/i.MX25 camera driver header file + * + * Copyright (C) 2003, Intel Corporation + * Copyright (C) 2008, Sascha Hauer <s.hauer@pengutronix.de> + * Copyright (C) 2010, Baruch Siach <baruch@tkos.co.il> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __MACH_MX2_CAM_H_ +#define __MACH_MX2_CAM_H_ + +#define MX2_CAMERA_SWAP16		(1 << 0) +#define MX2_CAMERA_EXT_VSYNC		(1 << 1) +#define MX2_CAMERA_CCIR			(1 << 2) +#define MX2_CAMERA_CCIR_INTERLACE	(1 << 3) +#define MX2_CAMERA_HSYNC_HIGH		(1 << 4) +#define MX2_CAMERA_GATED_CLOCK		(1 << 5) +#define MX2_CAMERA_INV_DATA		(1 << 6) +#define MX2_CAMERA_PCLK_SAMPLE_RISING	(1 << 7) +#define MX2_CAMERA_PACK_DIR_MSB		(1 << 8) + +/** + * struct mx2_camera_platform_data - optional platform data for mx2_camera + * @flags: any combination of MX2_CAMERA_* + * @clk: clock rate of the csi block / 2 + */ +struct mx2_camera_platform_data { +	unsigned long flags; +	unsigned long clk; +}; + +#endif /* __MACH_MX2_CAM_H_ */ diff --git a/include/linux/platform_data/camera-mx3.h b/include/linux/platform_data/camera-mx3.h new file mode 100644 index 00000000000..f226ee3777e --- /dev/null +++ b/include/linux/platform_data/camera-mx3.h @@ -0,0 +1,48 @@ +/* + * mx3_camera.h - i.MX3x camera driver header file + * + * Copyright (C) 2008, Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + */ + +#ifndef _MX3_CAMERA_H_ +#define _MX3_CAMERA_H_ + +#include <linux/device.h> + +#define MX3_CAMERA_CLK_SRC	1 +#define MX3_CAMERA_EXT_VSYNC	2 +#define MX3_CAMERA_DP		4 +#define MX3_CAMERA_PCP		8 +#define MX3_CAMERA_HSP		0x10 +#define MX3_CAMERA_VSP		0x20 +#define MX3_CAMERA_DATAWIDTH_4	0x40 +#define MX3_CAMERA_DATAWIDTH_8	0x80 +#define MX3_CAMERA_DATAWIDTH_10	0x100 +#define MX3_CAMERA_DATAWIDTH_15	0x200 + +#define MX3_CAMERA_DATAWIDTH_MASK (MX3_CAMERA_DATAWIDTH_4 | MX3_CAMERA_DATAWIDTH_8 | \ +				   MX3_CAMERA_DATAWIDTH_10 | MX3_CAMERA_DATAWIDTH_15) + +/** + * struct mx3_camera_pdata - i.MX3x camera platform data + * @flags:	MX3_CAMERA_* flags + * @mclk_10khz:	master clock frequency in 10kHz units + * @dma_dev:	IPU DMA device to match against in channel allocation + */ +struct mx3_camera_pdata { +	unsigned long flags; +	unsigned long mclk_10khz; +	struct device *dma_dev; +}; + +#endif diff --git a/include/linux/platform_data/dma-imx-sdma.h b/include/linux/platform_data/dma-imx-sdma.h new file mode 100644 index 00000000000..3a3942823c2 --- /dev/null +++ b/include/linux/platform_data/dma-imx-sdma.h @@ -0,0 +1,59 @@ +#ifndef __MACH_MXC_SDMA_H__ +#define __MACH_MXC_SDMA_H__ + +/** + * struct sdma_script_start_addrs - SDMA script start pointers + * + * start addresses of the different functions in the physical + * address space of the SDMA engine. + */ +struct sdma_script_start_addrs { +	s32 ap_2_ap_addr; +	s32 ap_2_bp_addr; +	s32 ap_2_ap_fixed_addr; +	s32 bp_2_ap_addr; +	s32 loopback_on_dsp_side_addr; +	s32 mcu_interrupt_only_addr; +	s32 firi_2_per_addr; +	s32 firi_2_mcu_addr; +	s32 per_2_firi_addr; +	s32 mcu_2_firi_addr; +	s32 uart_2_per_addr; +	s32 uart_2_mcu_addr; +	s32 per_2_app_addr; +	s32 mcu_2_app_addr; +	s32 per_2_per_addr; +	s32 uartsh_2_per_addr; +	s32 uartsh_2_mcu_addr; +	s32 per_2_shp_addr; +	s32 mcu_2_shp_addr; +	s32 ata_2_mcu_addr; +	s32 mcu_2_ata_addr; +	s32 app_2_per_addr; +	s32 app_2_mcu_addr; +	s32 shp_2_per_addr; +	s32 shp_2_mcu_addr; +	s32 mshc_2_mcu_addr; +	s32 mcu_2_mshc_addr; +	s32 spdif_2_mcu_addr; +	s32 mcu_2_spdif_addr; +	s32 asrc_2_mcu_addr; +	s32 ext_mem_2_ipu_addr; +	s32 descrambler_addr; +	s32 dptc_dvfs_addr; +	s32 utra_addr; +	s32 ram_code_start_addr; +}; + +/** + * struct sdma_platform_data - platform specific data for SDMA engine + * + * @fw_name		The firmware name + * @script_addrs	SDMA scripts addresses in SDMA ROM + */ +struct sdma_platform_data { +	char *fw_name; +	struct sdma_script_start_addrs *script_addrs; +}; + +#endif /* __MACH_MXC_SDMA_H__ */ diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/platform_data/dma-imx.h new file mode 100644 index 00000000000..1b9080385b4 --- /dev/null +++ b/include/linux/platform_data/dma-imx.h @@ -0,0 +1,67 @@ +/* + * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved. + * + * 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. + */ + +#ifndef __ASM_ARCH_MXC_DMA_H__ +#define __ASM_ARCH_MXC_DMA_H__ + +#include <linux/scatterlist.h> +#include <linux/device.h> +#include <linux/dmaengine.h> + +/* + * This enumerates peripheral types. Used for SDMA. + */ +enum sdma_peripheral_type { +	IMX_DMATYPE_SSI,	/* MCU domain SSI */ +	IMX_DMATYPE_SSI_SP,	/* Shared SSI */ +	IMX_DMATYPE_MMC,	/* MMC */ +	IMX_DMATYPE_SDHC,	/* SDHC */ +	IMX_DMATYPE_UART,	/* MCU domain UART */ +	IMX_DMATYPE_UART_SP,	/* Shared UART */ +	IMX_DMATYPE_FIRI,	/* FIRI */ +	IMX_DMATYPE_CSPI,	/* MCU domain CSPI */ +	IMX_DMATYPE_CSPI_SP,	/* Shared CSPI */ +	IMX_DMATYPE_SIM,	/* SIM */ +	IMX_DMATYPE_ATA,	/* ATA */ +	IMX_DMATYPE_CCM,	/* CCM */ +	IMX_DMATYPE_EXT,	/* External peripheral */ +	IMX_DMATYPE_MSHC,	/* Memory Stick Host Controller */ +	IMX_DMATYPE_MSHC_SP,	/* Shared Memory Stick Host Controller */ +	IMX_DMATYPE_DSP,	/* DSP */ +	IMX_DMATYPE_MEMORY,	/* Memory */ +	IMX_DMATYPE_FIFO_MEMORY,/* FIFO type Memory */ +	IMX_DMATYPE_SPDIF,	/* SPDIF */ +	IMX_DMATYPE_IPU_MEMORY,	/* IPU Memory */ +	IMX_DMATYPE_ASRC,	/* ASRC */ +	IMX_DMATYPE_ESAI,	/* ESAI */ +}; + +enum imx_dma_prio { +	DMA_PRIO_HIGH = 0, +	DMA_PRIO_MEDIUM = 1, +	DMA_PRIO_LOW = 2 +}; + +struct imx_dma_data { +	int dma_request; /* DMA request line */ +	enum sdma_peripheral_type peripheral_type; +	int priority; +}; + +static inline int imx_dma_is_ipu(struct dma_chan *chan) +{ +	return !strcmp(dev_name(chan->device->dev), "ipu-core"); +} + +static inline int imx_dma_is_general_purpose(struct dma_chan *chan) +{ +	return strstr(dev_name(chan->device->dev), "sdma") || +		!strcmp(dev_name(chan->device->dev), "imx-dma"); +} + +#endif diff --git a/include/linux/platform_data/i2c-imx.h b/include/linux/platform_data/i2c-imx.h new file mode 100644 index 00000000000..8289d915e61 --- /dev/null +++ b/include/linux/platform_data/i2c-imx.h @@ -0,0 +1,21 @@ +/* + * i2c.h - i.MX I2C driver header file + * + * Copyright (c) 2008, Darius Augulis <augulis.darius@gmail.com> + * + * This file is released under the GPLv2 + */ + +#ifndef __ASM_ARCH_I2C_H_ +#define __ASM_ARCH_I2C_H_ + +/** + * struct imxi2c_platform_data - structure of platform data for MXC I2C driver + * @bitrate:	Bus speed measured in Hz + * + **/ +struct imxi2c_platform_data { +	u32 bitrate; +}; + +#endif /* __ASM_ARCH_I2C_H_ */ diff --git a/include/linux/platform_data/mmc-esdhc-imx.h b/include/linux/platform_data/mmc-esdhc-imx.h new file mode 100644 index 00000000000..aaf97481f41 --- /dev/null +++ b/include/linux/platform_data/mmc-esdhc-imx.h @@ -0,0 +1,43 @@ +/* + * Copyright 2010 Wolfram Sang <w.sang@pengutronix.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; version 2 + * of the License. + */ + +#ifndef __ASM_ARCH_IMX_ESDHC_H +#define __ASM_ARCH_IMX_ESDHC_H + +enum wp_types { +	ESDHC_WP_NONE,		/* no WP, neither controller nor gpio */ +	ESDHC_WP_CONTROLLER,	/* mmc controller internal WP */ +	ESDHC_WP_GPIO,		/* external gpio pin for WP */ +}; + +enum cd_types { +	ESDHC_CD_NONE,		/* no CD, neither controller nor gpio */ +	ESDHC_CD_CONTROLLER,	/* mmc controller internal CD */ +	ESDHC_CD_GPIO,		/* external gpio pin for CD */ +	ESDHC_CD_PERMANENT,	/* no CD, card permanently wired to host */ +}; + +/** + * struct esdhc_platform_data - platform data for esdhc on i.MX + * + * ESDHC_WP(CD)_CONTROLLER type is not available on i.MX25/35. + * + * @wp_gpio:	gpio for write_protect + * @cd_gpio:	gpio for card_detect interrupt + * @wp_type:	type of write_protect method (see wp_types enum above) + * @cd_type:	type of card_detect method (see cd_types enum above) + */ + +struct esdhc_platform_data { +	unsigned int wp_gpio; +	unsigned int cd_gpio; +	enum wp_types wp_type; +	enum cd_types cd_type; +}; +#endif /* __ASM_ARCH_IMX_ESDHC_H */ diff --git a/include/linux/platform_data/mmc-mxcmmc.h b/include/linux/platform_data/mmc-mxcmmc.h new file mode 100644 index 00000000000..29115f405af --- /dev/null +++ b/include/linux/platform_data/mmc-mxcmmc.h @@ -0,0 +1,39 @@ +#ifndef ASMARM_ARCH_MMC_H +#define ASMARM_ARCH_MMC_H + +#include <linux/mmc/host.h> + +struct device; + +/* board specific SDHC data, optional. + * If not present, a writable card with 3,3V is assumed. + */ +struct imxmmc_platform_data { +	/* Return values for the get_ro callback should be: +	 *   0 for a read/write card +	 *   1 for a read-only card +	 *   -ENOSYS when not supported (equal to NULL callback) +	 *   or a negative errno value when something bad happened +	 */ +	int (*get_ro)(struct device *); + +	/* board specific hook to (de)initialize the SD slot. +	 * The board code can call 'handler' on a card detection +	 * change giving data as argument. +	 */ +	int (*init)(struct device *dev, irq_handler_t handler, void *data); +	void (*exit)(struct device *dev, void *data); + +	/* available voltages. If not given, assume +	 * MMC_VDD_32_33 | MMC_VDD_33_34 +	 */ +	unsigned int ocr_avail; + +	/* adjust slot voltage */ +	void (*setpower)(struct device *, unsigned int vdd); + +	/* enable card detect using DAT3 */ +	int dat3_card_detect; +}; + +#endif diff --git a/include/linux/platform_data/mtd-mxc_nand.h b/include/linux/platform_data/mtd-mxc_nand.h new file mode 100644 index 00000000000..6bb96ef1600 --- /dev/null +++ b/include/linux/platform_data/mtd-mxc_nand.h @@ -0,0 +1,32 @@ +/* + * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright 2008 Sascha Hauer, kernel@pengutronix.de + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#ifndef __ASM_ARCH_NAND_H +#define __ASM_ARCH_NAND_H + +#include <linux/mtd/partitions.h> + +struct mxc_nand_platform_data { +	unsigned int width;	/* data bus width in bytes */ +	unsigned int hw_ecc:1;	/* 0 if suppress hardware ECC */ +	unsigned int flash_bbt:1; /* set to 1 to use a flash based bbt */ +	struct mtd_partition *parts;	/* partition table */ +	int nr_parts;			/* size of parts */ +}; +#endif /* __ASM_ARCH_NAND_H */ diff --git a/include/linux/platform_data/serial-imx.h b/include/linux/platform_data/serial-imx.h new file mode 100644 index 00000000000..4adec9b154d --- /dev/null +++ b/include/linux/platform_data/serial-imx.h @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#ifndef ASMARM_ARCH_UART_H +#define ASMARM_ARCH_UART_H + +#define IMXUART_HAVE_RTSCTS (1<<0) +#define IMXUART_IRDA        (1<<1) + +struct imxuart_platform_data { +	int (*init)(struct platform_device *pdev); +	void (*exit)(struct platform_device *pdev); +	unsigned int flags; +	void (*irda_enable)(int enable); +	unsigned int irda_inv_rx:1; +	unsigned int irda_inv_tx:1; +	unsigned short transceiver_delay; +}; + +#endif diff --git a/include/linux/platform_data/spi-imx.h b/include/linux/platform_data/spi-imx.h new file mode 100644 index 00000000000..08be445e8eb --- /dev/null +++ b/include/linux/platform_data/spi-imx.h @@ -0,0 +1,27 @@ + +#ifndef __MACH_SPI_H_ +#define __MACH_SPI_H_ + +/* + * struct spi_imx_master - device.platform_data for SPI controller devices. + * @chipselect: Array of chipselects for this master. Numbers >= 0 mean gpio + *              pins, numbers < 0 mean internal CSPI chipselects according + *              to MXC_SPI_CS(). Normally you want to use gpio based chip + *              selects as the CSPI module tries to be intelligent about + *              when to assert the chipselect: The CSPI module deasserts the + *              chipselect once it runs out of input data. The other problem + *              is that it is not possible to mix between high active and low + *              active chipselects on one single bus using the internal + *              chipselects. Unfortunately Freescale decided to put some + *              chipselects on dedicated pins which are not usable as gpios, + *              so we have to support the internal chipselects. + * @num_chipselect: ARRAY_SIZE(chipselect) + */ +struct spi_imx_master { +	int	*chipselect; +	int	num_chipselect; +}; + +#define MXC_SPI_CS(no)	((no) - 32) + +#endif /* __MACH_SPI_H_*/ diff --git a/include/linux/platform_data/usb-ehci-mxc.h b/include/linux/platform_data/usb-ehci-mxc.h new file mode 100644 index 00000000000..7eb9d132967 --- /dev/null +++ b/include/linux/platform_data/usb-ehci-mxc.h @@ -0,0 +1,59 @@ +#ifndef __INCLUDE_ASM_ARCH_MXC_EHCI_H +#define __INCLUDE_ASM_ARCH_MXC_EHCI_H + +/* values for portsc field */ +#define MXC_EHCI_PHY_LOW_POWER_SUSPEND	(1 << 23) +#define MXC_EHCI_FORCE_FS		(1 << 24) +#define MXC_EHCI_UTMI_8BIT		(0 << 28) +#define MXC_EHCI_UTMI_16BIT		(1 << 28) +#define MXC_EHCI_SERIAL			(1 << 29) +#define MXC_EHCI_MODE_UTMI		(0 << 30) +#define MXC_EHCI_MODE_PHILIPS		(1 << 30) +#define MXC_EHCI_MODE_ULPI		(2 << 30) +#define MXC_EHCI_MODE_SERIAL		(3 << 30) + +/* values for flags field */ +#define MXC_EHCI_INTERFACE_DIFF_UNI	(0 << 0) +#define MXC_EHCI_INTERFACE_DIFF_BI	(1 << 0) +#define MXC_EHCI_INTERFACE_SINGLE_UNI	(2 << 0) +#define MXC_EHCI_INTERFACE_SINGLE_BI	(3 << 0) +#define MXC_EHCI_INTERFACE_MASK		(0xf) + +#define MXC_EHCI_POWER_PINS_ENABLED	(1 << 5) +#define MXC_EHCI_PWR_PIN_ACTIVE_HIGH	(1 << 6) +#define MXC_EHCI_OC_PIN_ACTIVE_LOW	(1 << 7) +#define MXC_EHCI_TTL_ENABLED		(1 << 8) + +#define MXC_EHCI_INTERNAL_PHY		(1 << 9) +#define MXC_EHCI_IPPUE_DOWN		(1 << 10) +#define MXC_EHCI_IPPUE_UP		(1 << 11) +#define MXC_EHCI_WAKEUP_ENABLED		(1 << 12) +#define MXC_EHCI_ITC_NO_THRESHOLD	(1 << 13) + +#define MXC_USBCTRL_OFFSET		0 +#define MXC_USB_PHY_CTR_FUNC_OFFSET	0x8 +#define MXC_USB_PHY_CTR_FUNC2_OFFSET	0xc +#define MXC_USBH2CTRL_OFFSET		0x14 + +#define MX5_USBOTHER_REGS_OFFSET	0x800 + +/* USB_PHY_CTRL_FUNC2*/ +#define MX5_USB_UTMI_PHYCTRL1_PLLDIV_MASK		0x3 +#define MX5_USB_UTMI_PHYCTRL1_PLLDIV_SHIFT		0 + +struct mxc_usbh_platform_data { +	int (*init)(struct platform_device *pdev); +	int (*exit)(struct platform_device *pdev); + +	unsigned int		 portsc; +	struct usb_phy		*otg; +}; + +int mx51_initialize_usb_hw(int port, unsigned int flags); +int mx25_initialize_usb_hw(int port, unsigned int flags); +int mx31_initialize_usb_hw(int port, unsigned int flags); +int mx35_initialize_usb_hw(int port, unsigned int flags); +int mx27_initialize_usb_hw(int port, unsigned int flags); + +#endif /* __INCLUDE_ASM_ARCH_MXC_EHCI_H */ + diff --git a/include/linux/platform_data/usb-imx_udc.h b/include/linux/platform_data/usb-imx_udc.h new file mode 100644 index 00000000000..be273371f34 --- /dev/null +++ b/include/linux/platform_data/usb-imx_udc.h @@ -0,0 +1,23 @@ +/* + *	Copyright (C) 2008 Darius Augulis <augulis.darius@gmail.com> + * + *	This program is free software; you can redistribute it and/or modify + *	it under the terms of the GNU General Public License as published by + *	the Free Software Foundation; either version 2 of the License, or + *	(at your option) any later version. + * + *	This program is distributed in the hope that it will be useful, + *	but WITHOUT ANY WARRANTY; without even the implied warranty of + *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *	GNU General Public License for more details. + */ + +#ifndef __ASM_ARCH_MXC_USB +#define __ASM_ARCH_MXC_USB + +struct imxusb_platform_data { +	int (*init)(struct device *); +	void (*exit)(struct device *); +}; + +#endif /* __ASM_ARCH_MXC_USB */ diff --git a/include/linux/platform_data/usb-mx2.h b/include/linux/platform_data/usb-mx2.h new file mode 100644 index 00000000000..22d0b596262 --- /dev/null +++ b/include/linux/platform_data/usb-mx2.h @@ -0,0 +1,38 @@ +/* + *	Copyright (C) 2009 Martin Fuzzey <mfuzzey@gmail.com> + * + *	This program is free software; you can redistribute it and/or modify + *	it under the terms of the GNU General Public License as published by + *	the Free Software Foundation; either version 2 of the License, or + *	(at your option) any later version. + * + *	This program is distributed in the hope that it will be useful, + *	but WITHOUT ANY WARRANTY; without even the implied warranty of + *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *	GNU General Public License for more details. + */ + +#ifndef __ASM_ARCH_MX21_USBH +#define __ASM_ARCH_MX21_USBH + +enum mx21_usbh_xcvr { +	/* Values below as used by hardware (HWMODE register) */ +	MX21_USBXCVR_TXDIF_RXDIF = 0, +	MX21_USBXCVR_TXDIF_RXSE = 1, +	MX21_USBXCVR_TXSE_RXDIF = 2, +	MX21_USBXCVR_TXSE_RXSE = 3, +}; + +struct mx21_usbh_platform_data { +	enum mx21_usbh_xcvr host_xcvr; /* tranceiver mode host 1,2 ports */ +	enum mx21_usbh_xcvr otg_xcvr; /* tranceiver mode otg (as host) port */ +	u16 	enable_host1:1, +		enable_host2:1, +		enable_otg_host:1, /* enable "OTG" port (as host) */ +		host1_xcverless:1, /* traceiverless host1 port */ +		host1_txenoe:1, /* output enable host1 transmit enable */ +		otg_ext_xcvr:1, /* external tranceiver for OTG port */ +		unused:10; +}; + +#endif /* __ASM_ARCH_MX21_USBH */ diff --git a/include/linux/platform_data/video-imxfb.h b/include/linux/platform_data/video-imxfb.h new file mode 100644 index 00000000000..9de8f062ad5 --- /dev/null +++ b/include/linux/platform_data/video-imxfb.h @@ -0,0 +1,84 @@ +/* + * This structure describes the machine which we are running on. + */ +#ifndef __MACH_IMXFB_H__ +#define __MACH_IMXFB_H__ + +#include <linux/fb.h> + +#define PCR_TFT		(1 << 31) +#define PCR_COLOR	(1 << 30) +#define PCR_PBSIZ_1	(0 << 28) +#define PCR_PBSIZ_2	(1 << 28) +#define PCR_PBSIZ_4	(2 << 28) +#define PCR_PBSIZ_8	(3 << 28) +#define PCR_BPIX_1	(0 << 25) +#define PCR_BPIX_2	(1 << 25) +#define PCR_BPIX_4	(2 << 25) +#define PCR_BPIX_8	(3 << 25) +#define PCR_BPIX_12	(4 << 25) +#define PCR_BPIX_16	(5 << 25) +#define PCR_BPIX_18	(6 << 25) +#define PCR_PIXPOL	(1 << 24) +#define PCR_FLMPOL	(1 << 23) +#define PCR_LPPOL	(1 << 22) +#define PCR_CLKPOL	(1 << 21) +#define PCR_OEPOL	(1 << 20) +#define PCR_SCLKIDLE	(1 << 19) +#define PCR_END_SEL	(1 << 18) +#define PCR_END_BYTE_SWAP (1 << 17) +#define PCR_REV_VS	(1 << 16) +#define PCR_ACD_SEL	(1 << 15) +#define PCR_ACD(x)	(((x) & 0x7f) << 8) +#define PCR_SCLK_SEL	(1 << 7) +#define PCR_SHARP	(1 << 6) +#define PCR_PCD(x)	((x) & 0x3f) + +#define PWMR_CLS(x)	(((x) & 0x1ff) << 16) +#define PWMR_LDMSK	(1 << 15) +#define PWMR_SCR1	(1 << 10) +#define PWMR_SCR0	(1 << 9) +#define PWMR_CC_EN	(1 << 8) +#define PWMR_PW(x)	((x) & 0xff) + +#define LSCR1_PS_RISE_DELAY(x)    (((x) & 0x7f) << 26) +#define LSCR1_CLS_RISE_DELAY(x)   (((x) & 0x3f) << 16) +#define LSCR1_REV_TOGGLE_DELAY(x) (((x) & 0xf) << 8) +#define LSCR1_GRAY2(x)            (((x) & 0xf) << 4) +#define LSCR1_GRAY1(x)            (((x) & 0xf)) + +#define DMACR_BURST	(1 << 31) +#define DMACR_HM(x)	(((x) & 0xf) << 16) +#define DMACR_TM(x)	((x) & 0xf) + +struct imx_fb_videomode { +	struct fb_videomode mode; +	u32 pcr; +	unsigned char	bpp; +}; + +struct imx_fb_platform_data { +	struct imx_fb_videomode *mode; +	int		num_modes; + +	u_int		cmap_greyscale:1, +			cmap_inverse:1, +			cmap_static:1, +			unused:29; + +	u_int		pwmr; +	u_int		lscr1; +	u_int		dmacr; + +	u_char * fixed_screen_cpu; +	dma_addr_t fixed_screen_dma; + +	int (*init)(struct platform_device *); +	void (*exit)(struct platform_device *); + +	void (*lcd_power)(int); +	void (*backlight_power)(int); +}; + +void set_imx_fb_info(struct imx_fb_platform_data *); +#endif /* ifndef __MACH_IMXFB_H__ */ diff --git a/include/linux/platform_data/video-mx3fb.h b/include/linux/platform_data/video-mx3fb.h new file mode 100644 index 00000000000..fdbe6000154 --- /dev/null +++ b/include/linux/platform_data/video-mx3fb.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2008 + * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.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. + */ + +#ifndef __ASM_ARCH_MX3FB_H__ +#define __ASM_ARCH_MX3FB_H__ + +#include <linux/device.h> +#include <linux/fb.h> + +/* Proprietary FB_SYNC_ flags */ +#define FB_SYNC_OE_ACT_HIGH	0x80000000 +#define FB_SYNC_CLK_INVERT	0x40000000 +#define FB_SYNC_DATA_INVERT	0x20000000 +#define FB_SYNC_CLK_IDLE_EN	0x10000000 +#define FB_SYNC_SHARP_MODE	0x08000000 +#define FB_SYNC_SWAP_RGB	0x04000000 +#define FB_SYNC_CLK_SEL_EN	0x02000000 + +/* + * Specify the way your display is connected. The IPU can arbitrarily + * map the internal colors to the external data lines. We only support + * the following mappings at the moment. + */ +enum disp_data_mapping { +	/* blue -> d[0..5], green -> d[6..11], red -> d[12..17] */ +	IPU_DISP_DATA_MAPPING_RGB666, +	/* blue -> d[0..4], green -> d[5..10], red -> d[11..15] */ +	IPU_DISP_DATA_MAPPING_RGB565, +	/* blue -> d[0..7], green -> d[8..15], red -> d[16..23] */ +	IPU_DISP_DATA_MAPPING_RGB888, +}; + +/** + * struct mx3fb_platform_data - mx3fb platform data + * + * @dma_dev:	pointer to the dma-device, used for dma-slave connection + * @mode:	pointer to a platform-provided per mxc_register_fb() videomode + */ +struct mx3fb_platform_data { +	struct device			*dma_dev; +	const char			*name; +	const struct fb_videomode	*mode; +	int				num_modes; +	enum disp_data_mapping		disp_data_fmt; +}; + +#endif  |