diff options
Diffstat (limited to 'arch/arm/mach-pxa/include/mach')
72 files changed, 437 insertions, 1223 deletions
diff --git a/arch/arm/mach-pxa/include/mach/addr-map.h b/arch/arm/mach-pxa/include/mach/addr-map.h new file mode 100644 index 00000000000..bbf9df37ad4 --- /dev/null +++ b/arch/arm/mach-pxa/include/mach/addr-map.h @@ -0,0 +1,48 @@ +#ifndef __ASM_MACH_ADDR_MAP_H +#define __ASM_MACH_ADDR_MAP_H + +/* + * Chip Selects + */ +#define PXA_CS0_PHYS		0x00000000 +#define PXA_CS1_PHYS		0x04000000 +#define PXA_CS2_PHYS		0x08000000 +#define PXA_CS3_PHYS		0x0C000000 +#define PXA_CS4_PHYS		0x10000000 +#define PXA_CS5_PHYS		0x14000000 + +#define PXA300_CS0_PHYS		0x00000000	/* PXA300/PXA310 _only_ */ +#define PXA300_CS1_PHYS		0x30000000	/* PXA300/PXA310 _only_ */ +#define PXA3xx_CS2_PHYS		0x10000000 +#define PXA3xx_CS3_PHYS		0x14000000 + +/* + * Peripheral Bus + */ +#define PERIPH_PHYS		0x40000000 +#define PERIPH_VIRT		IOMEM(0xf2000000) +#define PERIPH_SIZE		0x02000000 + +/* + * Static Memory Controller (w/ SDRAM controls on PXA25x/PXA27x) + */ +#define PXA2XX_SMEMC_PHYS	0x48000000 +#define PXA3XX_SMEMC_PHYS	0x4a000000 +#define SMEMC_VIRT		IOMEM(0xf6000000) +#define SMEMC_SIZE		0x00100000 + +/* + * Dynamic Memory Controller (only on PXA3xx) + */ +#define DMEMC_PHYS		0x48100000 +#define DMEMC_VIRT		IOMEM(0xf6100000) +#define DMEMC_SIZE		0x00100000 + +/* + * Internal Memory Controller (PXA27x and later) + */ +#define IMEMC_PHYS		0x58000000 +#define IMEMC_VIRT		IOMEM(0xfe000000) +#define IMEMC_SIZE		0x00100000 + +#endif /* __ASM_MACH_ADDR_MAP_H */ diff --git a/arch/arm/mach-pxa/include/mach/arcom-pcmcia.h b/arch/arm/mach-pxa/include/mach/arcom-pcmcia.h deleted file mode 100644 index d428be4db44..00000000000 --- a/arch/arm/mach-pxa/include/mach/arcom-pcmcia.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __ARCOM_PCMCIA_H -#define __ARCOM_PCMCIA_H - -struct arcom_pcmcia_pdata { -	int	cd_gpio; -	int	rdy_gpio; -	int	pwr_gpio; -	void	(*reset)(int state); -}; - -#endif diff --git a/arch/arm/mach-pxa/include/mach/balloon3.h b/arch/arm/mach-pxa/include/mach/balloon3.h index 561562b4360..1b0825911e6 100644 --- a/arch/arm/mach-pxa/include/mach/balloon3.h +++ b/arch/arm/mach-pxa/include/mach/balloon3.h @@ -14,6 +14,8 @@  #ifndef ASM_ARCH_BALLOON3_H  #define ASM_ARCH_BALLOON3_H +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ +  enum balloon3_features {  	BALLOON3_FEATURE_OHCI,  	BALLOON3_FEATURE_MMC, @@ -23,9 +25,11 @@ enum balloon3_features {  };  #define BALLOON3_FPGA_PHYS	PXA_CS4_PHYS -#define BALLOON3_FPGA_VIRT	(0xf1000000)	/* as per balloon2 */ +#define BALLOON3_FPGA_VIRT	IOMEM(0xf1000000)	/* as per balloon2 */  #define BALLOON3_FPGA_LENGTH	0x01000000 +#define	BALLOON3_FPGA_SETnCLR		(0x1000) +  /* FPGA / CPLD registers for CF socket */  #define	BALLOON3_CF_STATUS_REG		(BALLOON3_FPGA_VIRT + 0x00e00008)  #define	BALLOON3_CF_CONTROL_REG		(BALLOON3_FPGA_VIRT + 0x00e00008) @@ -35,7 +39,7 @@ enum balloon3_features {  #define	BALLOON3_NAND_BASE		(PXA_CS4_PHYS + 0x00e00000)  #define	BALLOON3_NAND_IO_REG		(BALLOON3_FPGA_VIRT + 0x00e00000)  #define	BALLOON3_NAND_CONTROL2_REG	(BALLOON3_FPGA_VIRT + 0x00e00010) -#define	BALLOON3_NAND_STAT_REG		(BALLOON3_FPGA_VIRT + 0x00e00010) +#define	BALLOON3_NAND_STAT_REG		(BALLOON3_FPGA_VIRT + 0x00e00014)  #define	BALLOON3_NAND_CONTROL_REG	(BALLOON3_FPGA_VIRT + 0x00e00014)  /* fpga/cpld interrupt control register */ @@ -170,11 +174,10 @@ enum balloon3_features {  /* Balloon3 Interrupts */  #define BALLOON3_IRQ(x)		(IRQ_BOARD_START + (x)) -#define BALLOON3_AUX_NIRQ	IRQ_GPIO(BALLOON3_GPIO_AUX_NIRQ) -#define BALLOON3_CODEC_IRQ	IRQ_GPIO(BALLOON3_GPIO_CODEC_IRQ) -#define BALLOON3_S0_CD_IRQ	IRQ_GPIO(BALLOON3_GPIO_S0_CD) +#define BALLOON3_AUX_NIRQ	PXA_GPIO_TO_IRQ(BALLOON3_GPIO_AUX_NIRQ) +#define BALLOON3_CODEC_IRQ	PXA_GPIO_TO_IRQ(BALLOON3_GPIO_CODEC_IRQ) -#define BALLOON3_NR_IRQS	(IRQ_BOARD_START + 4) +#define BALLOON3_NR_IRQS	(IRQ_BOARD_START + 16)  extern int balloon3_has(enum balloon3_features feature); diff --git a/arch/arm/mach-pxa/include/mach/camera.h b/arch/arm/mach-pxa/include/mach/camera.h deleted file mode 100644 index 6709b1cd7c7..00000000000 --- a/arch/arm/mach-pxa/include/mach/camera.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -    camera.h - PXA camera driver header 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 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef __ASM_ARCH_CAMERA_H_ -#define __ASM_ARCH_CAMERA_H_ - -#define PXA_CAMERA_MASTER	1 -#define PXA_CAMERA_DATAWIDTH_4	2 -#define PXA_CAMERA_DATAWIDTH_5	4 -#define PXA_CAMERA_DATAWIDTH_8	8 -#define PXA_CAMERA_DATAWIDTH_9	0x10 -#define PXA_CAMERA_DATAWIDTH_10	0x20 -#define PXA_CAMERA_PCLK_EN	0x40 -#define PXA_CAMERA_MCLK_EN	0x80 -#define PXA_CAMERA_PCP		0x100 -#define PXA_CAMERA_HSP		0x200 -#define PXA_CAMERA_VSP		0x400 - -struct pxacamera_platform_data { -	unsigned long flags; -	unsigned long mclk_10khz; -}; - -extern void pxa_set_camera_info(struct pxacamera_platform_data *); - -#endif /* __ASM_ARCH_CAMERA_H_ */ diff --git a/arch/arm/mach-pxa/include/mach/clkdev.h b/arch/arm/mach-pxa/include/mach/clkdev.h deleted file mode 100644 index 04b37a89801..00000000000 --- a/arch/arm/mach-pxa/include/mach/clkdev.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __ASM_MACH_CLKDEV_H -#define __ASM_MACH_CLKDEV_H - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - -#endif diff --git a/arch/arm/mach-pxa/include/mach/colibri.h b/arch/arm/mach-pxa/include/mach/colibri.h index 58dada11054..cb4236e98a0 100644 --- a/arch/arm/mach-pxa/include/mach/colibri.h +++ b/arch/arm/mach-pxa/include/mach/colibri.h @@ -9,14 +9,14 @@   */  enum { -	COLIBRI_PXA270_EVALBOARD = 0, +	COLIBRI_EVALBOARD = 0,  	COLIBRI_PXA270_INCOME,  }; -#if defined(CONFIG_MACH_COLIBRI_PXA270_EVALBOARD) -extern void colibri_pxa270_evalboard_init(void); +#if defined(CONFIG_MACH_COLIBRI_EVALBOARD) +extern void colibri_evalboard_init(void);  #else -static inline void colibri_pxa270_evalboard_init(void) {} +static inline void colibri_evalboard_init(void) {}  #endif  #if defined(CONFIG_MACH_COLIBRI_PXA270_INCOME) @@ -59,5 +59,11 @@ static inline void colibri_pxa3xx_init_nand(void) {}  #define GPIO0_COLIBRI_PXA270_SD_DETECT	0  #define GPIO113_COLIBRI_PXA270_TS_IRQ	113 +/* GPIO definitions for Colibri PXA300/310 */ +#define GPIO13_COLIBRI_PXA300_SD_DETECT	13 + +/* GPIO definitions for Colibri PXA320 */ +#define GPIO28_COLIBRI_PXA320_SD_DETECT	28 +  #endif /* _COLIBRI_H_ */ diff --git a/arch/arm/mach-pxa/include/mach/corgi.h b/arch/arm/mach-pxa/include/mach/corgi.h index 0011055bc3f..c030d955bbd 100644 --- a/arch/arm/mach-pxa/include/mach/corgi.h +++ b/arch/arm/mach-pxa/include/mach/corgi.h @@ -13,6 +13,7 @@  #ifndef __ASM_ARCH_CORGI_H  #define __ASM_ARCH_CORGI_H  1 +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */  /*   * Corgi (Non Standard) GPIO Definitions @@ -34,7 +35,7 @@  #define CORGI_GPIO_LCDCON_CS		(19) /* LCD Control Chip Select */  #define CORGI_GPIO_MAX1111_CS		(20) /* MAX1111 Chip Select */  #define CORGI_GPIO_ADC_TEMP_ON		(21) /* Select battery voltage or temperature */ -#define CORGI_GPIO_IR_ON			(22) /* Enable IR Transciever */ +#define CORGI_GPIO_IR_ON			(22) /* Enable IR Transceiver */  #define CORGI_GPIO_ADS7846_CS		(24) /* ADS7846 Chip Select */  #define CORGI_GPIO_SD_PWR			(33) /* MMC/SD Power */  #define CORGI_GPIO_CHRG_ON			(38) /* Enable battery Charging */ @@ -66,18 +67,18 @@  /*   * Corgi Interrupts   */ -#define CORGI_IRQ_GPIO_KEY_INT		IRQ_GPIO(0) -#define CORGI_IRQ_GPIO_AC_IN		IRQ_GPIO(1) -#define CORGI_IRQ_GPIO_WAKEUP		IRQ_GPIO(3) -#define CORGI_IRQ_GPIO_AK_INT		IRQ_GPIO(4) -#define CORGI_IRQ_GPIO_TP_INT		IRQ_GPIO(5) -#define CORGI_IRQ_GPIO_nSD_DETECT	IRQ_GPIO(9) -#define CORGI_IRQ_GPIO_nSD_INT		IRQ_GPIO(10) -#define CORGI_IRQ_GPIO_MAIN_BAT_LOW	IRQ_GPIO(11) -#define CORGI_IRQ_GPIO_CF_CD		IRQ_GPIO(14) -#define CORGI_IRQ_GPIO_CHRG_FULL	IRQ_GPIO(16)	/* Battery fully charged */ -#define CORGI_IRQ_GPIO_CF_IRQ		IRQ_GPIO(17) -#define CORGI_IRQ_GPIO_KEY_SENSE(a)	IRQ_GPIO(58+(a))	/* Keyboard Sense lines */ +#define CORGI_IRQ_GPIO_KEY_INT		PXA_GPIO_TO_IRQ(0) +#define CORGI_IRQ_GPIO_AC_IN		PXA_GPIO_TO_IRQ(1) +#define CORGI_IRQ_GPIO_WAKEUP		PXA_GPIO_TO_IRQ(3) +#define CORGI_IRQ_GPIO_AK_INT		PXA_GPIO_TO_IRQ(4) +#define CORGI_IRQ_GPIO_TP_INT		PXA_GPIO_TO_IRQ(5) +#define CORGI_IRQ_GPIO_nSD_DETECT	PXA_GPIO_TO_IRQ(9) +#define CORGI_IRQ_GPIO_nSD_INT		PXA_GPIO_TO_IRQ(10) +#define CORGI_IRQ_GPIO_MAIN_BAT_LOW	PXA_GPIO_TO_IRQ(11) +#define CORGI_IRQ_GPIO_CF_CD		PXA_GPIO_TO_IRQ(14) +#define CORGI_IRQ_GPIO_CHRG_FULL	PXA_GPIO_TO_IRQ(16)	/* Battery fully charged */ +#define CORGI_IRQ_GPIO_CF_IRQ		PXA_GPIO_TO_IRQ(17) +#define CORGI_IRQ_GPIO_KEY_SENSE(a)	PXA_GPIO_TO_IRQ(58+(a))	/* Keyboard Sense lines */  /* @@ -98,7 +99,7 @@  			CORGI_SCP_MIC_BIAS )  #define CORGI_SCOOP_IO_OUT	( CORGI_SCP_MUTE_L | CORGI_SCP_MUTE_R ) -#define CORGI_SCOOP_GPIO_BASE		(NR_BUILTIN_GPIO) +#define CORGI_SCOOP_GPIO_BASE		(PXA_NR_BUILTIN_GPIO)  #define CORGI_GPIO_LED_GREEN		(CORGI_SCOOP_GPIO_BASE + 0)  #define CORGI_GPIO_SWA			(CORGI_SCOOP_GPIO_BASE + 1)  /* Hinge Switch A */  #define CORGI_GPIO_SWB			(CORGI_SCOOP_GPIO_BASE + 2)  /* Hinge Switch B */ diff --git a/arch/arm/mach-pxa/include/mach/csb726.h b/arch/arm/mach-pxa/include/mach/csb726.h index 747ab1a71f2..00cfbbbf73f 100644 --- a/arch/arm/mach-pxa/include/mach/csb726.h +++ b/arch/arm/mach-pxa/include/mach/csb726.h @@ -11,6 +11,8 @@  #ifndef CSB726_H  #define CSB726_H +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  #define CSB726_GPIO_IRQ_LAN	52  #define CSB726_GPIO_IRQ_SM501	53  #define CSB726_GPIO_MMC_DETECT	100 @@ -19,8 +21,8 @@  #define CSB726_FLASH_SIZE	(64 * 1024 * 1024)  #define CSB726_FLASH_uMON	(8 * 1024 * 1024) -#define CSB726_IRQ_LAN		gpio_to_irq(CSB726_GPIO_IRQ_LAN) -#define CSB726_IRQ_SM501	gpio_to_irq(CSB726_GPIO_IRQ_SM501) +#define CSB726_IRQ_LAN		PXA_GPIO_TO_IRQ(CSB726_GPIO_IRQ_LAN) +#define CSB726_IRQ_SM501	PXA_GPIO_TO_IRQ(CSB726_GPIO_IRQ_SM501)  #endif diff --git a/arch/arm/mach-pxa/include/mach/debug-macro.S b/arch/arm/mach-pxa/include/mach/debug-macro.S deleted file mode 100644 index 7d5c75125d6..00000000000 --- a/arch/arm/mach-pxa/include/mach/debug-macro.S +++ /dev/null @@ -1,23 +0,0 @@ -/* arch/arm/mach-pxa/include/mach/debug-macro.S - * - * Debugging macro include header - * - *  Copyright (C) 1994-1999 Russell King - *  Moved from linux/arch/arm/kernel/debug.S by Ben Dooks - * - * 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 "hardware.h" - -		.macro	addruart, rp, rv -		mov	\rp, #0x00100000 -		orr	\rv, \rp, #io_p2v(0x40000000)	@ virtual -		orr	\rp, \rp, #0x40000000		@ physical -		.endm - -#define UART_SHIFT	2 -#include <asm/hardware/debug-8250.S> diff --git a/arch/arm/mach-pxa/include/mach/entry-macro.S b/arch/arm/mach-pxa/include/mach/entry-macro.S deleted file mode 100644 index a73bc86a3c2..00000000000 --- a/arch/arm/mach-pxa/include/mach/entry-macro.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - * arch/arm/mach-pxa/include/mach/entry-macro.S - * - * Low-level IRQ helper macros for PXA-based platforms - * - * This file is licensed under  the terms of the GNU General Public - * License version 2. This program is licensed "as is" without any - * warranty of any kind, whether express or implied. - */ -#include <mach/hardware.h> -#include <mach/irqs.h> - -		.macro	disable_fiq -		.endm - -		.macro  get_irqnr_preamble, base, tmp -		.endm - -		.macro  arch_ret_to_user, tmp1, tmp2 -		.endm - -		.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp -		mrc	p15, 0, \tmp, c0, c0, 0		@ CPUID -		mov	\tmp, \tmp, lsr #13 -		and	\tmp, \tmp, #0x7		@ Core G -		cmp	\tmp, #1 -		bhi	1002f - -		@ Core Generation 1 (PXA25x) -		mov	\base, #io_p2v(0x40000000)	@ IIR Ctl = 0x40d00000 -		add	\base, \base, #0x00d00000 -		ldr	\irqstat, [\base, #0]		@ ICIP -		ldr	\irqnr, [\base, #4]		@ ICMR - -		ands	\irqnr, \irqstat, \irqnr -		beq	1001f -		rsb	\irqstat, \irqnr, #0 -		and	\irqstat, \irqstat, \irqnr -		clz	\irqnr, \irqstat -		rsb	\irqnr, \irqnr, #(31 + PXA_IRQ(0)) -		b	1001f -1002: -		@ Core Generation 2 (PXA27x) or Core Generation 3 (PXA3xx) -		mrc	p6, 0, \irqstat, c5, c0, 0	@ ICHP -		tst	\irqstat, #0x80000000 -		beq	1001f -		bic	\irqstat, \irqstat, #0x80000000 -		mov	\irqnr, \irqstat, lsr #16 -		add	\irqnr, \irqnr, #(PXA_IRQ(0)) -1001: -		.endm diff --git a/arch/arm/mach-pxa/include/mach/generic.h b/arch/arm/mach-pxa/include/mach/generic.h new file mode 100644 index 00000000000..665542e0c9e --- /dev/null +++ b/arch/arm/mach-pxa/include/mach/generic.h @@ -0,0 +1 @@ +#include "../../generic.h" diff --git a/arch/arm/mach-pxa/include/mach/gpio.h b/arch/arm/mach-pxa/include/mach/gpio.h deleted file mode 100644 index b024a8b3743..00000000000 --- a/arch/arm/mach-pxa/include/mach/gpio.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * arch/arm/mach-pxa/include/mach/gpio.h - * - * PXA GPIO wrappers for arch-neutral GPIO calls - * - * Written by Philipp Zabel <philipp.zabel@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. - * - * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __ASM_ARCH_PXA_GPIO_H -#define __ASM_ARCH_PXA_GPIO_H - -#include <mach/irqs.h> -#include <mach/hardware.h> -#include <asm-generic/gpio.h> - -#define GPIO_REGS_VIRT	io_p2v(0x40E00000) - -#define BANK_OFF(n)	(((n) < 3) ? (n) << 2 : 0x100 + (((n) - 3) << 2)) -#define GPIO_REG(x)	(*(volatile u32 *)(GPIO_REGS_VIRT + (x))) - -/* GPIO Pin Level Registers */ -#define GPLR0		GPIO_REG(BANK_OFF(0) + 0x00) -#define GPLR1		GPIO_REG(BANK_OFF(1) + 0x00) -#define GPLR2		GPIO_REG(BANK_OFF(2) + 0x00) -#define GPLR3		GPIO_REG(BANK_OFF(3) + 0x00) - -/* GPIO Pin Direction Registers */ -#define GPDR0		GPIO_REG(BANK_OFF(0) + 0x0c) -#define GPDR1		GPIO_REG(BANK_OFF(1) + 0x0c) -#define GPDR2		GPIO_REG(BANK_OFF(2) + 0x0c) -#define GPDR3		GPIO_REG(BANK_OFF(3) + 0x0c) - -/* GPIO Pin Output Set Registers */ -#define GPSR0		GPIO_REG(BANK_OFF(0) + 0x18) -#define GPSR1		GPIO_REG(BANK_OFF(1) + 0x18) -#define GPSR2		GPIO_REG(BANK_OFF(2) + 0x18) -#define GPSR3		GPIO_REG(BANK_OFF(3) + 0x18) - -/* GPIO Pin Output Clear Registers */ -#define GPCR0		GPIO_REG(BANK_OFF(0) + 0x24) -#define GPCR1		GPIO_REG(BANK_OFF(1) + 0x24) -#define GPCR2		GPIO_REG(BANK_OFF(2) + 0x24) -#define GPCR3		GPIO_REG(BANK_OFF(3) + 0x24) - -/* GPIO Rising Edge Detect Registers */ -#define GRER0		GPIO_REG(BANK_OFF(0) + 0x30) -#define GRER1		GPIO_REG(BANK_OFF(1) + 0x30) -#define GRER2		GPIO_REG(BANK_OFF(2) + 0x30) -#define GRER3		GPIO_REG(BANK_OFF(3) + 0x30) - -/* GPIO Falling Edge Detect Registers */ -#define GFER0		GPIO_REG(BANK_OFF(0) + 0x3c) -#define GFER1		GPIO_REG(BANK_OFF(1) + 0x3c) -#define GFER2		GPIO_REG(BANK_OFF(2) + 0x3c) -#define GFER3		GPIO_REG(BANK_OFF(3) + 0x3c) - -/* GPIO Edge Detect Status Registers */ -#define GEDR0		GPIO_REG(BANK_OFF(0) + 0x48) -#define GEDR1		GPIO_REG(BANK_OFF(1) + 0x48) -#define GEDR2		GPIO_REG(BANK_OFF(2) + 0x48) -#define GEDR3		GPIO_REG(BANK_OFF(3) + 0x48) - -/* GPIO Alternate Function Select Registers */ -#define GAFR0_L		GPIO_REG(0x0054) -#define GAFR0_U		GPIO_REG(0x0058) -#define GAFR1_L		GPIO_REG(0x005C) -#define GAFR1_U		GPIO_REG(0x0060) -#define GAFR2_L		GPIO_REG(0x0064) -#define GAFR2_U		GPIO_REG(0x0068) -#define GAFR3_L		GPIO_REG(0x006C) -#define GAFR3_U		GPIO_REG(0x0070) - -/* More handy macros.  The argument is a literal GPIO number. */ - -#define GPIO_bit(x)	(1 << ((x) & 0x1f)) - -#define GPLR(x)		GPIO_REG(BANK_OFF((x) >> 5) + 0x00) -#define GPDR(x)		GPIO_REG(BANK_OFF((x) >> 5) + 0x0c) -#define GPSR(x)		GPIO_REG(BANK_OFF((x) >> 5) + 0x18) -#define GPCR(x)		GPIO_REG(BANK_OFF((x) >> 5) + 0x24) -#define GRER(x)		GPIO_REG(BANK_OFF((x) >> 5) + 0x30) -#define GFER(x)		GPIO_REG(BANK_OFF((x) >> 5) + 0x3c) -#define GEDR(x)		GPIO_REG(BANK_OFF((x) >> 5) + 0x48) -#define GAFR(x)		GPIO_REG(0x54 + (((x) & 0x70) >> 2)) - - -#define NR_BUILTIN_GPIO 128 - -#define gpio_to_bank(gpio)	((gpio) >> 5) -#define gpio_to_irq(gpio)	IRQ_GPIO(gpio) -#define irq_to_gpio(irq)	IRQ_TO_GPIO(irq) - -#ifdef CONFIG_CPU_PXA26x -/* GPIO86/87/88/89 on PXA26x have their direction bits in GPDR2 inverted, - * as well as their Alternate Function value being '1' for GPIO in GAFRx. - */ -static inline int __gpio_is_inverted(unsigned gpio) -{ -	return cpu_is_pxa25x() && gpio > 85; -} -#else -static inline int __gpio_is_inverted(unsigned gpio) { return 0; } -#endif - -/* - * On PXA25x and PXA27x, GAFRx and GPDRx together decide the alternate - * function of a GPIO, and GPDRx cannot be altered once configured. It - * is attributed as "occupied" here (I know this terminology isn't - * accurate, you are welcome to propose a better one :-) - */ -static inline int __gpio_is_occupied(unsigned gpio) -{ -	if (cpu_is_pxa27x() || cpu_is_pxa25x()) { -		int af = (GAFR(gpio) >> ((gpio & 0xf) * 2)) & 0x3; -		int dir = GPDR(gpio) & GPIO_bit(gpio); - -		if (__gpio_is_inverted(gpio)) -			return af != 1 || dir == 0; -		else -			return af != 0 || dir != 0; -	} else -		return GPDR(gpio) & GPIO_bit(gpio); -} - -#include <plat/gpio.h> -#endif diff --git a/arch/arm/mach-pxa/include/mach/gumstix.h b/arch/arm/mach-pxa/include/mach/gumstix.h index 9b898680b20..f7df27bbb42 100644 --- a/arch/arm/mach-pxa/include/mach/gumstix.h +++ b/arch/arm/mach-pxa/include/mach/gumstix.h @@ -6,6 +6,7 @@   * published by the Free Software Foundation.   */ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */  /* BTRESET - Reset line to Bluetooth module, active low signal. */  #define GPIO_GUMSTIX_BTRESET          7 @@ -24,7 +25,7 @@ has detected a cable insertion; driven low otherwise. */  #define GPIO_GUMSTIX_USB_GPIOx		41  /* usb state change */ -#define GUMSTIX_USB_INTR_IRQ		IRQ_GPIO(GPIO_GUMSTIX_USB_GPIOn) +#define GUMSTIX_USB_INTR_IRQ		PXA_GPIO_TO_IRQ(GPIO_GUMSTIX_USB_GPIOn)  #define GPIO_GUMSTIX_USB_GPIOn_MD	(GPIO_GUMSTIX_USB_GPIOn | GPIO_IN)  #define GPIO_GUMSTIX_USB_GPIOx_CON_MD	(GPIO_GUMSTIX_USB_GPIOx | GPIO_OUT) @@ -35,7 +36,7 @@ has detected a cable insertion; driven low otherwise. */   */  #define GUMSTIX_GPIO_nSD_WP		22 /* SD Write Protect */  #define GUMSTIX_GPIO_nSD_DETECT		11 /* MMC/SD Card Detect */ -#define GUMSTIX_IRQ_GPIO_nSD_DETECT	IRQ_GPIO(GUMSTIX_GPIO_nSD_DETECT) +#define GUMSTIX_IRQ_GPIO_nSD_DETECT	PXA_GPIO_TO_IRQ(GUMSTIX_GPIO_nSD_DETECT)  /*   * SMC Ethernet definitions @@ -49,10 +50,10 @@ has detected a cable insertion; driven low otherwise. */  #define GPIO_GUMSTIX_ETH0		36  #define GPIO_GUMSTIX_ETH0_MD		(GPIO_GUMSTIX_ETH0 | GPIO_IN) -#define GUMSTIX_ETH0_IRQ		IRQ_GPIO(GPIO_GUMSTIX_ETH0) +#define GUMSTIX_ETH0_IRQ		PXA_GPIO_TO_IRQ(GPIO_GUMSTIX_ETH0)  #define GPIO_GUMSTIX_ETH1		27  #define GPIO_GUMSTIX_ETH1_MD		(GPIO_GUMSTIX_ETH1 | GPIO_IN) -#define GUMSTIX_ETH1_IRQ		IRQ_GPIO(GPIO_GUMSTIX_ETH1) +#define GUMSTIX_ETH1_IRQ		PXA_GPIO_TO_IRQ(GPIO_GUMSTIX_ETH1)  /* CF reset line */ @@ -63,18 +64,18 @@ has detected a cable insertion; driven low otherwise. */  #define GPIO4_nSTSCHG			GPIO4_nBVD1  #define GPIO11_nCD			11  #define GPIO26_PRDY_nBSY		26 -#define GUMSTIX_S0_nSTSCHG_IRQ		IRQ_GPIO(GPIO4_nSTSCHG) -#define GUMSTIX_S0_nCD_IRQ		IRQ_GPIO(GPIO11_nCD) -#define GUMSTIX_S0_PRDY_nBSY_IRQ	IRQ_GPIO(GPIO26_PRDY_nBSY) +#define GUMSTIX_S0_nSTSCHG_IRQ		PXA_GPIO_TO_IRQ(GPIO4_nSTSCHG) +#define GUMSTIX_S0_nCD_IRQ		PXA_GPIO_TO_IRQ(GPIO11_nCD) +#define GUMSTIX_S0_PRDY_nBSY_IRQ	PXA_GPIO_TO_IRQ(GPIO26_PRDY_nBSY)  /* CF slot 1 */  #define GPIO18_nBVD1			18  #define GPIO18_nSTSCHG			GPIO18_nBVD1  #define GPIO36_nCD			36  #define GPIO27_PRDY_nBSY		27 -#define GUMSTIX_S1_nSTSCHG_IRQ		IRQ_GPIO(GPIO18_nSTSCHG) -#define GUMSTIX_S1_nCD_IRQ		IRQ_GPIO(GPIO36_nCD) -#define GUMSTIX_S1_PRDY_nBSY_IRQ	IRQ_GPIO(GPIO27_PRDY_nBSY) +#define GUMSTIX_S1_nSTSCHG_IRQ		PXA_GPIO_TO_IRQ(GPIO18_nSTSCHG) +#define GUMSTIX_S1_nCD_IRQ		PXA_GPIO_TO_IRQ(GPIO36_nCD) +#define GUMSTIX_S1_PRDY_nBSY_IRQ	PXA_GPIO_TO_IRQ(GPIO27_PRDY_nBSY)  /* CF GPIO line modes */  #define GPIO4_nSTSCHG_MD		(GPIO4_nSTSCHG | GPIO_IN) diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/arch/arm/mach-pxa/include/mach/hardware.h index 814f1458a06..ccb06e48552 100644 --- a/arch/arm/mach-pxa/include/mach/hardware.h +++ b/arch/arm/mach-pxa/include/mach/hardware.h @@ -13,6 +13,8 @@  #ifndef __ASM_ARCH_HARDWARE_H  #define __ASM_ARCH_HARDWARE_H +#include <mach/addr-map.h> +  /*   * Workarounds for at least 2 errata so far require this.   * The mapping is set in mach-pxa/generic.c. @@ -34,17 +36,16 @@   * Note that not all PXA2xx chips implement all those addresses, and the   * kernel only maps the minimum needed range of this mapping.   */ -#define io_p2v(x) (0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))  #define io_v2p(x) (0x3c000000 + ((x) & 0x01ffffff) + (((x) & 0x0e000000) << 1)) +#define io_p2v(x) IOMEM(0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))  #ifndef __ASSEMBLY__ - -# define __REG(x)	(*((volatile u32 *)io_p2v(x))) +# define __REG(x)	(*((volatile u32 __iomem *)io_p2v(x)))  /* With indexed regs we don't want to feed the index through io_p2v()     especially if it is a variable, otherwise horrible code will result. */  # define __REG2(x,y)	\ -	(*(volatile u32 *)((u32)&__REG(x) + (y))) +	(*(volatile u32 __iomem*)((u32)&__REG(x) + (y)))  # define __PREG(x)	(io_v2p((u32)&(x))) @@ -193,16 +194,6 @@  #define __cpu_is_pxa935(id)	(0)  #endif -#ifdef CONFIG_CPU_PXA950 -#define __cpu_is_pxa950(id)                             \ -	({                                              \ -		unsigned int _id = (id) >> 4 & 0xfff;	\ -		_id == 0x697;				\ -	 }) -#else -#define __cpu_is_pxa950(id)	(0) -#endif -  #define cpu_is_pxa210()					\  	({						\  		__cpu_is_pxa210(read_cpuid_id());	\ @@ -253,16 +244,11 @@  		__cpu_is_pxa935(read_cpuid_id());	\  	 }) -#define cpu_is_pxa950()					\ -	({						\ -		__cpu_is_pxa950(read_cpuid_id());	\ -	 })  /*   * CPUID Core Generation Bit   * <= 0x2 for pxa21x/pxa25x/pxa26x/pxa27x - * == 0x3 for pxa300/pxa310/pxa320   */  #if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x)  #define __cpu_is_pxa2xx(id)				\ @@ -277,8 +263,10 @@  #ifdef CONFIG_PXA3xx  #define __cpu_is_pxa3xx(id)				\  	({						\ -		unsigned int _id = (id) >> 13 & 0x7;	\ -		_id == 0x3;				\ +		__cpu_is_pxa300(id)			\ +			|| __cpu_is_pxa310(id)		\ +			|| __cpu_is_pxa320(id)		\ +			|| __cpu_is_pxa93x(id);		\  	 })  #else  #define __cpu_is_pxa3xx(id)	(0) @@ -287,8 +275,8 @@  #if defined(CONFIG_CPU_PXA930) || defined(CONFIG_CPU_PXA935)  #define __cpu_is_pxa93x(id)				\  	({						\ -		unsigned int _id = (id) >> 4 & 0xfff;	\ -		_id == 0x683 || _id == 0x693;		\ +		__cpu_is_pxa930(id)			\ +			|| __cpu_is_pxa935(id);		\  	 })  #else  #define __cpu_is_pxa93x(id)	(0) @@ -308,6 +296,8 @@  	({						\  		__cpu_is_pxa93x(read_cpuid_id());	\  	 }) + +  /*   * return current memory and LCD clock frequency in units of 10kHz   */ @@ -317,11 +307,4 @@ extern unsigned int get_memclk_frequency_10khz(void);  extern unsigned long get_clock_tick_rate(void);  #endif -#if defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI) -#define PCIBIOS_MIN_IO		0 -#define PCIBIOS_MIN_MEM		0 -#define pcibios_assign_all_busses()	1 -#define ARCH_HAS_DMA_SET_COHERENT_MASK -#endif -  #endif  /* _ASM_ARCH_HARDWARE_H */ diff --git a/arch/arm/mach-pxa/include/mach/hx4700.h b/arch/arm/mach-pxa/include/mach/hx4700.h index 37408449ec2..0e1bb46264f 100644 --- a/arch/arm/mach-pxa/include/mach/hx4700.h +++ b/arch/arm/mach-pxa/include/mach/hx4700.h @@ -14,8 +14,9 @@  #include <linux/gpio.h>  #include <linux/mfd/asic3.h> +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ -#define HX4700_ASIC3_GPIO_BASE	NR_BUILTIN_GPIO +#define HX4700_ASIC3_GPIO_BASE	PXA_NR_BUILTIN_GPIO  #define HX4700_EGPIO_BASE	(HX4700_ASIC3_GPIO_BASE + ASIC3_NUM_GPIOS)  #define HX4700_NR_IRQS		(IRQ_BOARD_START + 70) diff --git a/arch/arm/mach-pxa/include/mach/idp.h b/arch/arm/mach-pxa/include/mach/idp.h index 5eff96fcc94..7e63f468027 100644 --- a/arch/arm/mach-pxa/include/mach/idp.h +++ b/arch/arm/mach-pxa/include/mach/idp.h @@ -23,6 +23,7 @@   * IDP hardware.   */ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */  #define IDP_FLASH_PHYS		(PXA_CS0_PHYS)  #define IDP_ALT_FLASH_PHYS	(PXA_CS1_PHYS) @@ -131,28 +132,26 @@  #define PCC_VS2		(1 << 1)  #define PCC_VS1		(1 << 0) -#define PCC_DETECT(x)	(GPLR(7 + (x)) & GPIO_bit(7 + (x))) -  /* A listing of interrupts used by external hardware devices */ -#define TOUCH_PANEL_IRQ			IRQ_GPIO(5) -#define IDE_IRQ				IRQ_GPIO(21) +#define TOUCH_PANEL_IRQ			PXA_GPIO_TO_IRQ(5) +#define IDE_IRQ				PXA_GPIO_TO_IRQ(21)  #define TOUCH_PANEL_IRQ_EDGE		IRQ_TYPE_EDGE_FALLING -#define ETHERNET_IRQ			IRQ_GPIO(4) +#define ETHERNET_IRQ			PXA_GPIO_TO_IRQ(4)  #define ETHERNET_IRQ_EDGE		IRQ_TYPE_EDGE_RISING  #define IDE_IRQ_EDGE			IRQ_TYPE_EDGE_RISING -#define PCMCIA_S0_CD_VALID		IRQ_GPIO(7) +#define PCMCIA_S0_CD_VALID		PXA_GPIO_TO_IRQ(7)  #define PCMCIA_S0_CD_VALID_EDGE		IRQ_TYPE_EDGE_BOTH -#define PCMCIA_S1_CD_VALID		IRQ_GPIO(8) +#define PCMCIA_S1_CD_VALID		PXA_GPIO_TO_IRQ(8)  #define PCMCIA_S1_CD_VALID_EDGE		IRQ_TYPE_EDGE_BOTH -#define PCMCIA_S0_RDYINT		IRQ_GPIO(19) -#define PCMCIA_S1_RDYINT		IRQ_GPIO(22) +#define PCMCIA_S0_RDYINT		PXA_GPIO_TO_IRQ(19) +#define PCMCIA_S1_RDYINT		PXA_GPIO_TO_IRQ(22)  /* diff --git a/arch/arm/mach-pxa/include/mach/io.h b/arch/arm/mach-pxa/include/mach/io.h index fdca3be47d9..cd78b7fe356 100644 --- a/arch/arm/mach-pxa/include/mach/io.h +++ b/arch/arm/mach-pxa/include/mach/io.h @@ -6,8 +6,6 @@  #ifndef __ASM_ARM_ARCH_IO_H  #define __ASM_ARM_ARCH_IO_H -#include <mach/hardware.h> -  #define IO_SPACE_LIMIT 0xffffffff  /* @@ -15,6 +13,5 @@   * drivers out there that might just work if we fake them...   */  #define __io(a)		__typesafe_io(a) -#define __mem_pci(a)	(a)  #endif diff --git a/arch/arm/mach-pxa/include/mach/irda.h b/arch/arm/mach-pxa/include/mach/irda.h deleted file mode 100644 index 3cd41f77dda..00000000000 --- a/arch/arm/mach-pxa/include/mach/irda.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef ASMARM_ARCH_IRDA_H -#define ASMARM_ARCH_IRDA_H - -/* board specific transceiver capabilities */ - -#define IR_OFF		1 -#define IR_SIRMODE	2 -#define IR_FIRMODE	4 - -struct pxaficp_platform_data { -	int transceiver_cap; -	void (*transceiver_mode)(struct device *dev, int mode); -	int (*startup)(struct device *dev); -	void (*shutdown)(struct device *dev); -	int gpio_pwdown;		/* powerdown GPIO for the IrDA chip */ -	bool gpio_pwdown_inverted;	/* gpio_pwdown is inverted */ -}; - -extern void pxa_set_ficp_info(struct pxaficp_platform_data *info); - -#if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x) -void pxa2xx_transceiver_mode(struct device *dev, int mode); -#endif - -#endif diff --git a/arch/arm/mach-pxa/include/mach/irqs.h b/arch/arm/mach-pxa/include/mach/irqs.h index d372caa75dc..48c2fd85168 100644 --- a/arch/arm/mach-pxa/include/mach/irqs.h +++ b/arch/arm/mach-pxa/include/mach/irqs.h @@ -21,16 +21,14 @@  #define PXA_IRQ(x)	(PXA_ISA_IRQ_NUM + (x)) -#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)  #define IRQ_SSP3	PXA_IRQ(0)	/* SSP3 service request */  #define IRQ_MSL		PXA_IRQ(1)	/* MSL Interface interrupt */ -#define IRQ_USBH2	PXA_IRQ(2)	/* USB Host interrupt 1 (OHCI) */ -#define IRQ_USBH1	PXA_IRQ(3)	/* USB Host interrupt 2 (non-OHCI) */ +#define IRQ_USBH2	PXA_IRQ(2)	/* USB Host interrupt 1 (OHCI,PXA27x) */ +#define IRQ_USBH1	PXA_IRQ(3)	/* USB Host interrupt 2 (non-OHCI,PXA27x) */  #define IRQ_KEYPAD	PXA_IRQ(4)	/* Key pad controller */ -#define IRQ_MEMSTK	PXA_IRQ(5)	/* Memory Stick interrupt */ +#define IRQ_MEMSTK	PXA_IRQ(5)	/* Memory Stick interrupt (PXA27x) */ +#define IRQ_ACIPC0	PXA_IRQ(5)	/* AP-CP Communication (PXA930) */  #define IRQ_PWRI2C	PXA_IRQ(6)	/* Power I2C interrupt */ -#endif -  #define IRQ_HWUART	PXA_IRQ(7)	/* HWUART Transmit/Receive/Error (PXA26x) */  #define IRQ_OST_4_11	PXA_IRQ(7)	/* OS timer 4-11 matches (PXA27x) */  #define	IRQ_GPIO0	PXA_IRQ(8)	/* GPIO0 Edge Detect */ @@ -38,7 +36,8 @@  #define	IRQ_GPIO_2_x	PXA_IRQ(10)	/* GPIO[2-x] Edge Detect */  #define	IRQ_USB		PXA_IRQ(11)	/* USB Service */  #define	IRQ_PMU		PXA_IRQ(12)	/* Performance Monitoring Unit */ -#define	IRQ_I2S		PXA_IRQ(13)	/* I2S Interrupt */ +#define	IRQ_I2S		PXA_IRQ(13)	/* I2S Interrupt (PXA27x) */ +#define IRQ_SSP4	PXA_IRQ(13)	/* SSP4 service request (PXA3xx) */  #define	IRQ_AC97	PXA_IRQ(14)	/* AC97 Interrupt */  #define IRQ_ASSP	PXA_IRQ(15)	/* Audio SSP Service Request (PXA25x) */  #define IRQ_USIM	PXA_IRQ(15)     /* Smart Card interface interrupt (PXA27x) */ @@ -47,6 +46,7 @@  #define	IRQ_LCD		PXA_IRQ(17)	/* LCD Controller Service Request */  #define	IRQ_I2C		PXA_IRQ(18)	/* I2C Service Request */  #define	IRQ_ICP		PXA_IRQ(19)	/* ICP Transmit/Receive/Error */ +#define IRQ_ACIPC2	PXA_IRQ(19)	/* AP-CP Communication (PXA930) */  #define	IRQ_STUART	PXA_IRQ(20)	/* STUART Transmit/Receive/Error */  #define	IRQ_BTUART	PXA_IRQ(21)	/* BTUART Transmit/Receive/Error */  #define	IRQ_FFUART	PXA_IRQ(22)	/* FFUART Transmit/Receive/Error*/ @@ -60,19 +60,17 @@  #define	IRQ_RTC1Hz	PXA_IRQ(30)	/* RTC HZ Clock Tick */  #define	IRQ_RTCAlrm	PXA_IRQ(31)	/* RTC Alarm */ -#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)  #define IRQ_TPM		PXA_IRQ(32)	/* TPM interrupt */  #define IRQ_CAMERA	PXA_IRQ(33)	/* Camera Interface */ -#endif - -#ifdef CONFIG_PXA3xx -#define IRQ_SSP4	PXA_IRQ(13)	/* SSP4 service request */  #define IRQ_CIR		PXA_IRQ(34)	/* Consumer IR */  #define IRQ_COMM_WDT	PXA_IRQ(35) 	/* Comm WDT interrupt */  #define IRQ_TSI		PXA_IRQ(36)	/* Touch Screen Interface (PXA320) */ +#define IRQ_ENHROT	PXA_IRQ(37)	/* Enhanced Rotary (PXA930) */  #define IRQ_USIM2	PXA_IRQ(38)	/* USIM2 Controller */ -#define IRQ_GCU		PXA_IRQ(39)	/* Graphics Controller */ +#define IRQ_GCU		PXA_IRQ(39)	/* Graphics Controller (PXA3xx) */ +#define IRQ_ACIPC1	PXA_IRQ(40)	/* AP-CP Communication (PXA930) */  #define IRQ_MMC2	PXA_IRQ(41)	/* MMC2 Controller */ +#define IRQ_TRKBALL	PXA_IRQ(43)	/* Track Ball (PXA930) */  #define IRQ_1WIRE	PXA_IRQ(44)	/* 1-Wire Controller */  #define IRQ_NAND	PXA_IRQ(45)	/* NAND Controller */  #define IRQ_USB2	PXA_IRQ(46)	/* USB 2.0 Device Controller */ @@ -80,39 +78,17 @@  #define IRQ_WAKEUP1	PXA_IRQ(50)	/* EXT_WAKEUP1 */  #define IRQ_DMEMC	PXA_IRQ(51)	/* Dynamic Memory Controller */  #define IRQ_MMC3	PXA_IRQ(55)	/* MMC3 Controller (PXA310) */ -#endif -#ifdef CONFIG_CPU_PXA935  #define IRQ_U2O		PXA_IRQ(64)	/* USB OTG 2.0 Controller (PXA935) */  #define IRQ_U2H		PXA_IRQ(65)	/* USB Host 2.0 Controller (PXA935) */ - -#define IRQ_MMC3_PXA935	PXA_IRQ(72)	/* MMC3 Controller (PXA935) */ -#define IRQ_MMC4_PXA935	PXA_IRQ(73)	/* MMC4 Controller (PXA935) */ -#define IRQ_MMC5_PXA935	PXA_IRQ(74)	/* MMC5 Controller (PXA935) */ - +#define IRQ_PXA935_MMC0	PXA_IRQ(72)	/* MMC0 Controller (PXA935) */ +#define IRQ_PXA935_MMC1	PXA_IRQ(73)	/* MMC1 Controller (PXA935) */ +#define IRQ_PXA935_MMC2	PXA_IRQ(74)	/* MMC2 Controller (PXA935) */  #define IRQ_U2P		PXA_IRQ(93)	/* USB PHY D+/D- Lines (PXA935) */ -#endif - -#ifdef CONFIG_CPU_PXA930 -#define IRQ_ENHROT	PXA_IRQ(37)	/* Enhanced Rotary (PXA930) */ -#define IRQ_ACIPC0	PXA_IRQ(5) -#define IRQ_ACIPC1	PXA_IRQ(40) -#define IRQ_ACIPC2	PXA_IRQ(19) -#define IRQ_TRKBALL	PXA_IRQ(43)	/* Track Ball */ -#endif - -#ifdef CONFIG_CPU_PXA950 -#define IRQ_GC500	PXA_IRQ(70)	/* Graphics Controller (PXA950) */ -#endif  #define PXA_GPIO_IRQ_BASE	PXA_IRQ(96) -#define PXA_GPIO_IRQ_NUM	(192) - -#define GPIO_2_x_TO_IRQ(x)	(PXA_GPIO_IRQ_BASE + (x)) -#define IRQ_GPIO(x)	(((x) < 2) ? (IRQ_GPIO0 + (x)) : GPIO_2_x_TO_IRQ(x)) - -#define IRQ_TO_GPIO_2_x(i)	((i) - PXA_GPIO_IRQ_BASE) -#define IRQ_TO_GPIO(i)	(((i) < IRQ_GPIO(2)) ? ((i) - IRQ_GPIO0) : IRQ_TO_GPIO_2_x(i)) +#define PXA_NR_BUILTIN_GPIO	(192) +#define PXA_GPIO_TO_IRQ(x)	(PXA_GPIO_IRQ_BASE + (x))  /*   * The following interrupts are for board specific purposes. Since @@ -121,8 +97,20 @@   * By default, no board IRQ is reserved. It should be finished in   * custom board since sparse IRQ is already enabled.   */ -#define IRQ_BOARD_START		(PXA_GPIO_IRQ_BASE + PXA_GPIO_IRQ_NUM) +#define IRQ_BOARD_START		(PXA_GPIO_IRQ_BASE + PXA_NR_BUILTIN_GPIO) + +#define PXA_NR_IRQS		(IRQ_BOARD_START) + +#ifndef __ASSEMBLY__ +struct irq_data; +struct pt_regs; -#define NR_IRQS			(IRQ_BOARD_START) +void pxa_mask_irq(struct irq_data *); +void pxa_unmask_irq(struct irq_data *); +void icip_handle_irq(struct pt_regs *); +void ichp_handle_irq(struct pt_regs *); + +void pxa_init_irq(int irq_nr, int (*set_wake)(struct irq_data *, unsigned int)); +#endif  #endif /* __ASM_MACH_IRQS_H */ diff --git a/arch/arm/mach-pxa/include/mach/littleton.h b/arch/arm/mach-pxa/include/mach/littleton.h index 2a5726c15e0..8066be54e9f 100644 --- a/arch/arm/mach-pxa/include/mach/littleton.h +++ b/arch/arm/mach-pxa/include/mach/littleton.h @@ -1,13 +1,11 @@  #ifndef __ASM_ARCH_LITTLETON_H  #define __ASM_ARCH_LITTLETON_H -#include <mach/gpio.h> -  #define LITTLETON_ETH_PHYS	0x30000000  #define LITTLETON_GPIO_LCD_CS	(17) -#define EXT0_GPIO_BASE	(NR_BUILTIN_GPIO) +#define EXT0_GPIO_BASE	(PXA_NR_BUILTIN_GPIO)  #define EXT0_GPIO(x)	(EXT0_GPIO_BASE + (x))  #define LITTLETON_NR_IRQS	(IRQ_BOARD_START + 8) diff --git a/arch/arm/mach-pxa/include/mach/lpd270.h b/arch/arm/mach-pxa/include/mach/lpd270.h index cd070092b6e..4edc712a2de 100644 --- a/arch/arm/mach-pxa/include/mach/lpd270.h +++ b/arch/arm/mach-pxa/include/mach/lpd270.h @@ -13,13 +13,13 @@  #define __ASM_ARCH_LPD270_H  #define LPD270_CPLD_PHYS	PXA_CS2_PHYS -#define LPD270_CPLD_VIRT	0xf0000000 +#define LPD270_CPLD_VIRT	IOMEM(0xf0000000)  #define LPD270_CPLD_SIZE	0x00100000  #define LPD270_ETH_PHYS		(PXA_CS2_PHYS + 0x01000000)  /* CPLD registers  */ -#define LPD270_CPLD_REG(x)	((unsigned long)(LPD270_CPLD_VIRT + (x))) +#define LPD270_CPLD_REG(x)	(LPD270_CPLD_VIRT + (x))  #define LPD270_CONTROL		LPD270_CPLD_REG(0x00)  #define LPD270_PERIPHERAL0	LPD270_CPLD_REG(0x04)  #define LPD270_PERIPHERAL1	LPD270_CPLD_REG(0x08) diff --git a/arch/arm/mach-pxa/include/mach/lubbock.h b/arch/arm/mach-pxa/include/mach/lubbock.h index 2a086e8373e..958cd6af938 100644 --- a/arch/arm/mach-pxa/include/mach/lubbock.h +++ b/arch/arm/mach-pxa/include/mach/lubbock.h @@ -10,6 +10,8 @@   * published by the Free Software Foundation.   */ +#include <mach/irqs.h> +  #define LUBBOCK_ETH_PHYS	PXA_CS3_PHYS  #define LUBBOCK_FPGA_PHYS	PXA_CS2_PHYS diff --git a/arch/arm/mach-pxa/include/mach/magician.h b/arch/arm/mach-pxa/include/mach/magician.h index 0a2efcf7947..ba6a6e1d29e 100644 --- a/arch/arm/mach-pxa/include/mach/magician.h +++ b/arch/arm/mach-pxa/include/mach/magician.h @@ -12,6 +12,7 @@  #ifndef _MAGICIAN_H_  #define _MAGICIAN_H_ +#include <linux/gpio.h>  #include <mach/irqs.h>  /* @@ -77,7 +78,7 @@   * CPLD EGPIOs   */ -#define MAGICIAN_EGPIO_BASE			0x80 /* GPIO_BOARD_START */ +#define MAGICIAN_EGPIO_BASE			PXA_NR_BUILTIN_GPIO  #define MAGICIAN_EGPIO(reg,bit) \  	(MAGICIAN_EGPIO_BASE + 8*reg + bit) diff --git a/arch/arm/mach-pxa/include/mach/mainstone.h b/arch/arm/mach-pxa/include/mach/mainstone.h index 4c2d11cd824..1bfc4e822a4 100644 --- a/arch/arm/mach-pxa/include/mach/mainstone.h +++ b/arch/arm/mach-pxa/include/mach/mainstone.h @@ -13,6 +13,8 @@  #ifndef ASM_ARCH_MAINSTONE_H  #define ASM_ARCH_MAINSTONE_H +#include <mach/irqs.h> +  #define MST_ETH_PHYS		PXA_CS4_PHYS  #define MST_FPGA_PHYS		PXA_CS2_PHYS diff --git a/arch/arm/mach-pxa/include/mach/memory.h b/arch/arm/mach-pxa/include/mach/memory.h deleted file mode 100644 index 92361a66b22..00000000000 --- a/arch/arm/mach-pxa/include/mach/memory.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - *  arch/arm/mach-pxa/include/mach/memory.h - * - * Author:	Nicolas Pitre - * Copyright:	(C) 2001 MontaVista Software Inc. - * - * 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_MEMORY_H -#define __ASM_ARCH_MEMORY_H - -/* - * Physical DRAM offset. - */ -#define PHYS_OFFSET	UL(0xa0000000) - -#if !defined(__ASSEMBLY__) && defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI) -void cmx2xx_pci_adjust_zones(unsigned long *size, unsigned long *holes); - -#define arch_adjust_zones(size, holes) \ -	cmx2xx_pci_adjust_zones(size, holes) - -#define ISA_DMA_THRESHOLD	(PHYS_OFFSET + SZ_64M - 1) -#define MAX_DMA_ADDRESS		(PAGE_OFFSET + SZ_64M) -#endif - -#endif diff --git a/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h b/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h index ec0f0b0b674..b6132aa95dc 100644 --- a/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h +++ b/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h @@ -158,7 +158,9 @@  #define GPIO44_BTUART_CTS	MFP_CFG_IN(GPIO44, AF1)  #define GPIO42_BTUART_RXD	MFP_CFG_IN(GPIO42, AF1)  #define GPIO45_BTUART_RTS	MFP_CFG_OUT(GPIO45, AF2, DRIVE_HIGH) +#define GPIO45_BTUART_RTS_LPM_LOW	MFP_CFG_OUT(GPIO45, AF2, DRIVE_LOW)  #define GPIO43_BTUART_TXD	MFP_CFG_OUT(GPIO43, AF2, DRIVE_HIGH) +#define GPIO43_BTUART_TXD_LPM_LOW	MFP_CFG_OUT(GPIO43, AF2, DRIVE_LOW)  /* STUART */  #define GPIO46_STUART_RXD	MFP_CFG_IN(GPIO46, AF2) @@ -206,6 +208,7 @@  #define GPIO113_I2S_SYSCLK	MFP_CFG_OUT(GPIO113, AF1, DRIVE_LOW)  /* SSP 1 */ +#define GPIO23_SSP1_SCLK_IN	MFP_CFG_IN(GPIO23, AF2)  #define GPIO23_SSP1_SCLK	MFP_CFG_OUT(GPIO23, AF2, DRIVE_LOW)  #define GPIO29_SSP1_SCLK	MFP_CFG_IN(GPIO29, AF3)  #define GPIO27_SSP1_SYSCLK	MFP_CFG_OUT(GPIO27, AF1, DRIVE_LOW) @@ -460,6 +463,9 @@  	GPIO76_LCD_PCLK,	\  	GPIO77_LCD_BIAS +/* these enable a work-around for a hw bug in pxa27x during ac97 warm reset */ +#define GPIO113_AC97_nRESET_GPIO_HIGH MFP_CFG_OUT(GPIO113, AF0, DEFAULT) +#define GPIO95_AC97_nRESET_GPIO_HIGH MFP_CFG_OUT(GPIO95, AF0, DEFAULT)  extern int keypad_set_wake(unsigned int on);  #endif /* __ASM_ARCH_MFP_PXA27X_H */ diff --git a/arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h b/arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h index c54cef25895..cbf51ae8185 100644 --- a/arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h +++ b/arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h @@ -17,6 +17,7 @@   *   * bit     23 - Input/Output (PXA2xx specific)   * bit     24 - Wakeup Enable(PXA2xx specific) + * bit     25 - Keep Output  (PXA2xx specific)   */  #define MFP_DIR_IN		(0x0 << 23) @@ -25,6 +26,12 @@  #define MFP_DIR(x)		(((x) >> 23) & 0x1)  #define MFP_LPM_CAN_WAKEUP	(0x1 << 24) + +/* + * MFP_LPM_KEEP_OUTPUT must be specified for pins that need to + * retain their last output level (low or high). + * Note: MFP_LPM_KEEP_OUTPUT has no effect on pins configured for input. + */  #define MFP_LPM_KEEP_OUTPUT	(0x1 << 25)  #define WAKEUP_ON_EDGE_RISE	(MFP_LPM_CAN_WAKEUP | MFP_LPM_EDGE_RISE) diff --git a/arch/arm/mach-pxa/include/mach/mioa701.h b/arch/arm/mach-pxa/include/mach/mioa701.h index 02868447b0b..e57f5c724e8 100644 --- a/arch/arm/mach-pxa/include/mach/mioa701.h +++ b/arch/arm/mach-pxa/include/mach/mioa701.h @@ -61,6 +61,9 @@  #define GPIO93_KEY_VOLUME_UP			93  #define GPIO94_KEY_VOLUME_DOWN			94 +/* Camera */ +#define GPIO56_MT9M111_nOE			56 +  extern struct input_dev *mioa701_evdev;  extern void mioa701_gpio_lpm_set(unsigned long mfp_pin); diff --git a/arch/arm/mach-pxa/include/mach/mmc.h b/arch/arm/mach-pxa/include/mach/mmc.h deleted file mode 100644 index 9eb515bb799..00000000000 --- a/arch/arm/mach-pxa/include/mach/mmc.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef ASMARM_ARCH_MMC_H -#define ASMARM_ARCH_MMC_H - -#include <linux/mmc/host.h> -#include <linux/interrupt.h> - -struct device; -struct mmc_host; - -struct pxamci_platform_data { -	unsigned int ocr_mask;			/* available voltages */ -	unsigned long detect_delay_ms;		/* delay in millisecond before detecting cards after interrupt */ -	int (*init)(struct device *, irq_handler_t , void *); -	int (*get_ro)(struct device *); -	void (*setpower)(struct device *, unsigned int); -	void (*exit)(struct device *, void *); -	int gpio_card_detect;			/* gpio detecting card insertion */ -	int gpio_card_ro;			/* gpio detecting read only toggle */ -	bool gpio_card_ro_invert;		/* gpio ro is inverted */ -	int gpio_power;				/* gpio powering up MMC bus */ -	bool gpio_power_invert;			/* gpio power is inverted */ -}; - -extern void pxa_set_mci_info(struct pxamci_platform_data *info); -extern void pxa3xx_set_mci2_info(struct pxamci_platform_data *info); -extern void pxa3xx_set_mci3_info(struct pxamci_platform_data *info); - -#endif diff --git a/arch/arm/mach-pxa/include/mach/mtd-xip.h b/arch/arm/mach-pxa/include/mach/mtd-xip.h index 297387ec361..990d2bf2fb4 100644 --- a/arch/arm/mach-pxa/include/mach/mtd-xip.h +++ b/arch/arm/mach-pxa/include/mach/mtd-xip.h @@ -16,7 +16,6 @@  #define __ARCH_PXA_MTD_XIP_H__  #include <mach/regs-ost.h> -#include <mach/regs-intc.h>  #define xip_irqpending()	(ICIP & ICMR) diff --git a/arch/arm/mach-pxa/include/mach/ohci.h b/arch/arm/mach-pxa/include/mach/ohci.h deleted file mode 100644 index 95b6e2a6e51..00000000000 --- a/arch/arm/mach-pxa/include/mach/ohci.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef ASMARM_ARCH_OHCI_H -#define ASMARM_ARCH_OHCI_H - -struct device; - -struct pxaohci_platform_data { -	int (*init)(struct device *); -	void (*exit)(struct device *); - -	unsigned long flags; -#define ENABLE_PORT1		(1 << 0) -#define ENABLE_PORT2		(1 << 1) -#define ENABLE_PORT3		(1 << 2) -#define ENABLE_PORT_ALL		(ENABLE_PORT1 | ENABLE_PORT2 | ENABLE_PORT3) - -#define POWER_SENSE_LOW		(1 << 3) -#define POWER_CONTROL_LOW	(1 << 4) -#define NO_OC_PROTECTION	(1 << 5) -#define OC_MODE_GLOBAL		(0 << 6) -#define OC_MODE_PERPORT		(1 << 6) - -	int power_on_delay;	/* Power On to Power Good time - in ms -				 * HCD must wait for this duration before -				 * accessing a powered on port -				 */ -	int port_mode; -#define PMM_NPS_MODE           1 -#define PMM_GLOBAL_MODE        2 -#define PMM_PERPORT_MODE       3 - -	int power_budget; -}; - -extern void pxa_set_ohci_info(struct pxaohci_platform_data *info); - -#endif diff --git a/arch/arm/mach-pxa/include/mach/palm27x.h b/arch/arm/mach-pxa/include/mach/palm27x.h index 0a5e5eadebf..d4eac3d6ffb 100644 --- a/arch/arm/mach-pxa/include/mach/palm27x.h +++ b/arch/arm/mach-pxa/include/mach/palm27x.h @@ -34,11 +34,11 @@ extern struct pxafb_mode_info palm_320x320_new_lcd_mode;  extern void __init palm27x_lcd_init(int power,  					struct pxafb_mode_info *mode);  #else -static inline void palm27x_lcd_init(int power, struct pxafb_mode_info *mode) {} +#define palm27x_lcd_init(power, mode)	do {} while (0)  #endif -#if	defined(CONFIG_USB_GADGET_PXA27X) || \ -	defined(CONFIG_USB_GADGET_PXA27X_MODULE) +#if	defined(CONFIG_USB_PXA27X) || \ +	defined(CONFIG_USB_PXA27X_MODULE)  extern void __init palm27x_udc_init(int vbus, int pullup,  					int vbus_inverted);  #else diff --git a/arch/arm/mach-pxa/include/mach/palmasoc.h b/arch/arm/mach-pxa/include/mach/palmasoc.h deleted file mode 100644 index 58afb30d529..00000000000 --- a/arch/arm/mach-pxa/include/mach/palmasoc.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _INCLUDE_PALMASOC_H_ -#define _INCLUDE_PALMASOC_H_ - -struct palm27x_asoc_info { -	int	jack_gpio; -}; - -#endif diff --git a/arch/arm/mach-pxa/include/mach/palmld.h b/arch/arm/mach-pxa/include/mach/palmld.h index ae536e86d8e..b184f296023 100644 --- a/arch/arm/mach-pxa/include/mach/palmld.h +++ b/arch/arm/mach-pxa/include/mach/palmld.h @@ -13,6 +13,8 @@  #ifndef _INCLUDE_PALMLD_H_  #define _INCLUDE_PALMLD_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  /** HERE ARE GPIOs **/  /* GPIOs */ @@ -68,10 +70,10 @@  /* 20, 53 and 86 are usb related too */  /* INTERRUPTS */ -#define IRQ_GPIO_PALMLD_GPIO_RESET	IRQ_GPIO(GPIO_NR_PALMLD_GPIO_RESET) -#define IRQ_GPIO_PALMLD_SD_DETECT_N	IRQ_GPIO(GPIO_NR_PALMLD_SD_DETECT_N) -#define IRQ_GPIO_PALMLD_WM9712_IRQ	IRQ_GPIO(GPIO_NR_PALMLD_WM9712_IRQ) -#define IRQ_GPIO_PALMLD_IDE_IRQ		IRQ_GPIO(GPIO_NR_PALMLD_IDE_IRQ) +#define IRQ_GPIO_PALMLD_GPIO_RESET	PXA_GPIO_TO_IRQ(GPIO_NR_PALMLD_GPIO_RESET) +#define IRQ_GPIO_PALMLD_SD_DETECT_N	PXA_GPIO_TO_IRQ(GPIO_NR_PALMLD_SD_DETECT_N) +#define IRQ_GPIO_PALMLD_WM9712_IRQ	PXA_GPIO_TO_IRQ(GPIO_NR_PALMLD_WM9712_IRQ) +#define IRQ_GPIO_PALMLD_IDE_IRQ		PXA_GPIO_TO_IRQ(GPIO_NR_PALMLD_IDE_IRQ)  /** HERE ARE INIT VALUES **/ diff --git a/arch/arm/mach-pxa/include/mach/palmt5.h b/arch/arm/mach-pxa/include/mach/palmt5.h index 6baf7469d4e..e342c592140 100644 --- a/arch/arm/mach-pxa/include/mach/palmt5.h +++ b/arch/arm/mach-pxa/include/mach/palmt5.h @@ -15,6 +15,8 @@  #ifndef _INCLUDE_PALMT5_H_  #define _INCLUDE_PALMT5_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  /** HERE ARE GPIOs **/  /* GPIOs */ @@ -48,10 +50,10 @@  #define GPIO_NR_PALMT5_BT_RESET			83  /* INTERRUPTS */ -#define IRQ_GPIO_PALMT5_SD_DETECT_N	IRQ_GPIO(GPIO_NR_PALMT5_SD_DETECT_N) -#define IRQ_GPIO_PALMT5_WM9712_IRQ	IRQ_GPIO(GPIO_NR_PALMT5_WM9712_IRQ) -#define IRQ_GPIO_PALMT5_USB_DETECT	IRQ_GPIO(GPIO_NR_PALMT5_USB_DETECT) -#define IRQ_GPIO_PALMT5_GPIO_RESET	IRQ_GPIO(GPIO_NR_PALMT5_GPIO_RESET) +#define IRQ_GPIO_PALMT5_SD_DETECT_N	PXA_GPIO_TO_IRQ(GPIO_NR_PALMT5_SD_DETECT_N) +#define IRQ_GPIO_PALMT5_WM9712_IRQ	PXA_GPIO_TO_IRQ(GPIO_NR_PALMT5_WM9712_IRQ) +#define IRQ_GPIO_PALMT5_USB_DETECT	PXA_GPIO_TO_IRQ(GPIO_NR_PALMT5_USB_DETECT) +#define IRQ_GPIO_PALMT5_GPIO_RESET	PXA_GPIO_TO_IRQ(GPIO_NR_PALMT5_GPIO_RESET)  /** HERE ARE INIT VALUES **/ diff --git a/arch/arm/mach-pxa/include/mach/palmtc.h b/arch/arm/mach-pxa/include/mach/palmtc.h index 3f9dd3fd463..81c727b3cfd 100644 --- a/arch/arm/mach-pxa/include/mach/palmtc.h +++ b/arch/arm/mach-pxa/include/mach/palmtc.h @@ -16,6 +16,8 @@  #ifndef _INCLUDE_PALMTC_H_  #define _INCLUDE_PALMTC_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  /** HERE ARE GPIOs **/  /* GPIOs */ @@ -52,8 +54,8 @@  #define GPIO_NR_PALMTC_IR_DISABLE	45  /* IRQs */ -#define IRQ_GPIO_PALMTC_SD_DETECT_N	IRQ_GPIO(GPIO_NR_PALMTC_SD_DETECT_N) -#define IRQ_GPIO_PALMTC_WLAN_READY	IRQ_GPIO(GPIO_NR_PALMTC_WLAN_READY) +#define IRQ_GPIO_PALMTC_SD_DETECT_N	PXA_GPIO_TO_IRQ(GPIO_NR_PALMTC_SD_DETECT_N) +#define IRQ_GPIO_PALMTC_WLAN_READY	PXA_GPIO_TO_IRQ(GPIO_NR_PALMTC_WLAN_READY)  /* UCB1400 GPIOs */  #define GPIO_NR_PALMTC_POWER_DETECT	(0x80 | 0x00) diff --git a/arch/arm/mach-pxa/include/mach/palmtreo.h b/arch/arm/mach-pxa/include/mach/palmtreo.h index 2d3f14e3be2..714b6574393 100644 --- a/arch/arm/mach-pxa/include/mach/palmtreo.h +++ b/arch/arm/mach-pxa/include/mach/palmtreo.h @@ -38,13 +38,14 @@  #define GPIO_NR_TREO_LCD_POWER	25  /* Treo680 specific GPIOs */ -#ifdef CONFIG_MACH_TREO680  #define GPIO_NR_TREO680_SD_READONLY	33  #define GPIO_NR_TREO680_SD_POWER	42  #define GPIO_NR_TREO680_VIBRATE_EN	44  #define GPIO_NR_TREO680_KEYB_BL		24  #define GPIO_NR_TREO680_BT_EN		43 -#endif /* CONFIG_MACH_TREO680 */ +#define GPIO_NR_TREO680_LCD_POWER	77 +#define GPIO_NR_TREO680_LCD_EN		86 +#define GPIO_NR_TREO680_LCD_EN_N	25  /* Centro685 specific GPIOs */  #define GPIO_NR_CENTRO_SD_POWER		21 diff --git a/arch/arm/mach-pxa/include/mach/palmtx.h b/arch/arm/mach-pxa/include/mach/palmtx.h index 10abc4f2e8e..92bc1f05300 100644 --- a/arch/arm/mach-pxa/include/mach/palmtx.h +++ b/arch/arm/mach-pxa/include/mach/palmtx.h @@ -16,6 +16,8 @@  #ifndef _INCLUDE_PALMTX_H_  #define _INCLUDE_PALMTX_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  /** HERE ARE GPIOs **/  /* GPIOs */ @@ -62,16 +64,16 @@  #define GPIO_NR_PALMTX_NAND_BUFFER_DIR		79  /* INTERRUPTS */ -#define IRQ_GPIO_PALMTX_SD_DETECT_N	IRQ_GPIO(GPIO_NR_PALMTX_SD_DETECT_N) -#define IRQ_GPIO_PALMTX_WM9712_IRQ	IRQ_GPIO(GPIO_NR_PALMTX_WM9712_IRQ) -#define IRQ_GPIO_PALMTX_USB_DETECT	IRQ_GPIO(GPIO_NR_PALMTX_USB_DETECT) -#define IRQ_GPIO_PALMTX_GPIO_RESET	IRQ_GPIO(GPIO_NR_PALMTX_GPIO_RESET) +#define IRQ_GPIO_PALMTX_SD_DETECT_N	PXA_GPIO_TO_IRQ(GPIO_NR_PALMTX_SD_DETECT_N) +#define IRQ_GPIO_PALMTX_WM9712_IRQ	PXA_GPIO_TO_IRQ(GPIO_NR_PALMTX_WM9712_IRQ) +#define IRQ_GPIO_PALMTX_USB_DETECT	PXA_GPIO_TO_IRQ(GPIO_NR_PALMTX_USB_DETECT) +#define IRQ_GPIO_PALMTX_GPIO_RESET	PXA_GPIO_TO_IRQ(GPIO_NR_PALMTX_GPIO_RESET)  /** HERE ARE INIT VALUES **/  /* Various addresses  */  #define PALMTX_PCMCIA_PHYS	0x28000000 -#define PALMTX_PCMCIA_VIRT	0xf0000000 +#define PALMTX_PCMCIA_VIRT	IOMEM(0xf0000000)  #define PALMTX_PCMCIA_SIZE	0x100000  #define PALMTX_PHYS_RAM_START	0xa0000000 @@ -84,8 +86,8 @@  #define PALMTX_NAND_ALE_PHYS	(PALMTX_PHYS_NAND_START | (1 << 24))  #define PALMTX_NAND_CLE_PHYS	(PALMTX_PHYS_NAND_START | (1 << 25)) -#define PALMTX_NAND_ALE_VIRT	0xff100000 -#define PALMTX_NAND_CLE_VIRT	0xff200000 +#define PALMTX_NAND_ALE_VIRT	IOMEM(0xff100000) +#define PALMTX_NAND_CLE_VIRT	IOMEM(0xff200000)  /* TOUCHSCREEN */  #define AC97_LINK_FRAME			21 diff --git a/arch/arm/mach-pxa/include/mach/palmz72.h b/arch/arm/mach-pxa/include/mach/palmz72.h index 2bbcf70dd93..0d4700a7961 100644 --- a/arch/arm/mach-pxa/include/mach/palmz72.h +++ b/arch/arm/mach-pxa/include/mach/palmz72.h @@ -44,6 +44,11 @@  #define GPIO_NR_PALMZ72_BT_POWER		17  #define GPIO_NR_PALMZ72_BT_RESET		83 +/* Camera */ +#define GPIO_NR_PALMZ72_CAM_PWDN		56 +#define GPIO_NR_PALMZ72_CAM_RESET		57 +#define GPIO_NR_PALMZ72_CAM_POWER		91 +  /** Initial values **/  /* Battery */ diff --git a/arch/arm/mach-pxa/include/mach/pata_pxa.h b/arch/arm/mach-pxa/include/mach/pata_pxa.h deleted file mode 100644 index 6cf7df1d583..00000000000 --- a/arch/arm/mach-pxa/include/mach/pata_pxa.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Generic PXA PATA driver - * - * Copyright (C) 2010 Marek Vasut <marek.vasut@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, 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; see the file COPYING.  If not, write to - *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef	__MACH_PATA_PXA_H__ -#define	__MACH_PATA_PXA_H__ - -struct pata_pxa_pdata { -	/* PXA DMA DREQ<0:2> pin */ -	uint32_t	dma_dreq; -	/* Register shift */ -	uint32_t	reg_shift; -	/* IRQ flags */ -	uint32_t	irq_flags; -}; - -#endif	/* __MACH_PATA_PXA_H__ */ diff --git a/arch/arm/mach-pxa/include/mach/pcm027.h b/arch/arm/mach-pxa/include/mach/pcm027.h index 4bac588478a..86ebd7b6c96 100644 --- a/arch/arm/mach-pxa/include/mach/pcm027.h +++ b/arch/arm/mach-pxa/include/mach/pcm027.h @@ -23,6 +23,8 @@   * Definitions of CPU card resources only   */ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  /* phyCORE-PXA270 (PCM027) Interrupts */  #define PCM027_IRQ(x)          (IRQ_BOARD_START + (x))  #define PCM027_BTDET_IRQ       PCM027_IRQ(0) @@ -34,7 +36,7 @@  /* I2C RTC */  #define PCM027_RTC_IRQ_GPIO	0 -#define PCM027_RTC_IRQ		IRQ_GPIO(PCM027_RTC_IRQ_GPIO) +#define PCM027_RTC_IRQ		PXA_GPIO_TO_IRQ(PCM027_RTC_IRQ_GPIO)  #define PCM027_RTC_IRQ_EDGE	IRQ_TYPE_EDGE_FALLING  #define ADR_PCM027_RTC		0x51	/* I2C address */ @@ -43,21 +45,21 @@  /* Ethernet chip (SMSC91C111) */  #define PCM027_ETH_IRQ_GPIO	52 -#define PCM027_ETH_IRQ		IRQ_GPIO(PCM027_ETH_IRQ_GPIO) +#define PCM027_ETH_IRQ		PXA_GPIO_TO_IRQ(PCM027_ETH_IRQ_GPIO)  #define PCM027_ETH_IRQ_EDGE	IRQ_TYPE_EDGE_RISING  #define PCM027_ETH_PHYS		PXA_CS5_PHYS  #define PCM027_ETH_SIZE		(1*1024*1024)  /* CAN controller SJA1000 (unsupported yet) */  #define PCM027_CAN_IRQ_GPIO	114 -#define PCM027_CAN_IRQ		IRQ_GPIO(PCM027_CAN_IRQ_GPIO) +#define PCM027_CAN_IRQ		PXA_GPIO_TO_IRQ(PCM027_CAN_IRQ_GPIO)  #define PCM027_CAN_IRQ_EDGE	IRQ_TYPE_EDGE_FALLING  #define PCM027_CAN_PHYS		0x22000000  #define PCM027_CAN_SIZE		0x100  /* SPI GPIO expander (unsupported yet) */  #define PCM027_EGPIO_IRQ_GPIO	27 -#define PCM027_EGPIO_IRQ	IRQ_GPIO(PCM027_EGPIO_IRQ_GPIO) +#define PCM027_EGPIO_IRQ	PXA_GPIO_TO_IRQ(PCM027_EGPIO_IRQ_GPIO)  #define PCM027_EGPIO_IRQ_EDGE	IRQ_TYPE_EDGE_FALLING  #define PCM027_EGPIO_CS		24  /* diff --git a/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h b/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h index 8a4383b776d..7e544c14967 100644 --- a/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h +++ b/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h @@ -20,6 +20,7 @@   */  #include <mach/pcm027.h> +#include "irqs.h" /* PXA_GPIO_TO_IRQ */  /*   * definitions relevant only when the PCM-990 @@ -28,14 +29,13 @@  /* CPLD's interrupt controller is connected to PCM-027 GPIO 9 */  #define PCM990_CTRL_INT_IRQ_GPIO	9 -#define PCM990_CTRL_INT_IRQ		IRQ_GPIO(PCM990_CTRL_INT_IRQ_GPIO) +#define PCM990_CTRL_INT_IRQ		PXA_GPIO_TO_IRQ(PCM990_CTRL_INT_IRQ_GPIO)  #define PCM990_CTRL_INT_IRQ_EDGE	IRQ_TYPE_EDGE_RISING  #define PCM990_CTRL_PHYS		PXA_CS1_PHYS	/* 16-Bit */ -#define PCM990_CTRL_BASE		0xea000000  #define PCM990_CTRL_SIZE		(1*1024*1024)  #define PCM990_CTRL_PWR_IRQ_GPIO	14 -#define PCM990_CTRL_PWR_IRQ		IRQ_GPIO(PCM990_CTRL_PWR_IRQ_GPIO) +#define PCM990_CTRL_PWR_IRQ		PXA_GPIO_TO_IRQ(PCM990_CTRL_PWR_IRQ_GPIO)  #define PCM990_CTRL_PWR_IRQ_EDGE	IRQ_TYPE_EDGE_RISING  /* visible CPLD (U7) registers */ @@ -69,13 +69,13 @@  #define PCM990_CTRL_MMC2DE	0x0004	/* R MMC2 Card detect */  #define PCM990_CTRL_MMC2WP	0x0008	/* R MMC2 Card write protect */ -#define PCM990_CTRL_REG6	0x000C	/* Interrupt Clear REGISTER */ +#define PCM990_CTRL_INTSETCLR	0x000C	/* Interrupt Clear REGISTER */  #define PCM990_CTRL_INTC0	0x0001	/* Clear Reg BT Detect */  #define PCM990_CTRL_INTC1	0x0002	/* Clear Reg FR RI */  #define PCM990_CTRL_INTC2	0x0004	/* Clear Reg MMC1 Detect */  #define PCM990_CTRL_INTC3	0x0008	/* Clear Reg PM_5V off */ -#define PCM990_CTRL_REG7	0x000E	/* Interrupt Enable REGISTER */ +#define PCM990_CTRL_INTMSKENA	0x000E	/* Interrupt Enable REGISTER */  #define PCM990_CTRL_ENAINT0	0x0001	/* Enable Int BT Detect */  #define PCM990_CTRL_ENAINT1	0x0002	/* Enable Int FR RI */  #define PCM990_CTRL_ENAINT2	0x0004	/* Enable Int MMC1 Detect */ @@ -102,37 +102,11 @@  #define PCM990_CTRL_ACPRES	0x0004	/* DC Present */  #define PCM990_CTRL_ACALARM	0x0008	/* Error Akku */ -#define PCM990_CTRL_P2V(x)	((x) - PCM990_CTRL_PHYS + PCM990_CTRL_BASE) -#define PCM990_CTRL_V2P(x)	((x) - PCM990_CTRL_BASE + PCM990_CTRL_PHYS) - -#ifndef __ASSEMBLY__ -#  define __PCM990_CTRL_REG(x) \ -		(*((volatile unsigned char *)PCM990_CTRL_P2V(x))) -#else -#  define __PCM990_CTRL_REG(x)	PCM990_CTRL_P2V(x) -#endif - -#define PCM990_INTMSKENA __PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG7) -#define PCM990_INTSETCLR __PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG6) -#define PCM990_CTRL0	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG0) -#define PCM990_CTRL1	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG1) -#define PCM990_CTRL2	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG2) -#define PCM990_CTRL3	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG3) -#define PCM990_CTRL4	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG4) -#define PCM990_CTRL5	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG5) -#define PCM990_CTRL6	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG6) -#define PCM990_CTRL7	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG7) -#define PCM990_CTRL8	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG8) -#define PCM990_CTRL9	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG9) -#define PCM990_CTRL10	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG10) -#define PCM990_CTRL11	__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG11) - -  /*   * IDE   */  #define PCM990_IDE_IRQ_GPIO	13 -#define PCM990_IDE_IRQ		IRQ_GPIO(PCM990_IDE_IRQ_GPIO) +#define PCM990_IDE_IRQ		PXA_GPIO_TO_IRQ(PCM990_IDE_IRQ_GPIO)  #define PCM990_IDE_IRQ_EDGE	IRQ_TYPE_EDGE_RISING  #define PCM990_IDE_PLD_PHYS	0x20000000	/* 16 bit wide */  #define PCM990_IDE_PLD_BASE	0xee000000 @@ -166,40 +140,18 @@  #define PCM990_IDE_PLD_P2V(x) ((x) - PCM990_IDE_PLD_PHYS + PCM990_IDE_PLD_BASE)  #define PCM990_IDE_PLD_V2P(x) ((x) - PCM990_IDE_PLD_BASE + PCM990_IDE_PLD_PHYS) -#ifndef __ASSEMBLY__ -# define  __PCM990_IDE_PLD_REG(x) \ -	(*((volatile unsigned char *)PCM990_IDE_PLD_P2V(x))) -#else -# define  __PCM990_IDE_PLD_REG(x)	PCM990_IDE_PLD_P2V(x) -#endif - -#define PCM990_IDE0 \ -	__PCM990_IDE_PLD_REG(PCM990_IDE_PLD_PHYS + PCM990_IDE_PLD_REG0) -#define PCM990_IDE1 \ -	__PCM990_IDE_PLD_REG(PCM990_IDE_PLD_PHYS + PCM990_IDE_PLD_REG1) -#define PCM990_IDE2 \ -	__PCM990_IDE_PLD_REG(PCM990_IDE_PLD_PHYS + PCM990_IDE_PLD_REG2) -#define PCM990_IDE3 \ -	__PCM990_IDE_PLD_REG(PCM990_IDE_PLD_PHYS + PCM990_IDE_PLD_REG3) -#define PCM990_IDE4 \ -	__PCM990_IDE_PLD_REG(PCM990_IDE_PLD_PHYS + PCM990_IDE_PLD_REG4) -  /*   * Compact Flash   */  #define PCM990_CF_IRQ_GPIO	11 -#define PCM990_CF_IRQ		IRQ_GPIO(PCM990_CF_IRQ_GPIO) +#define PCM990_CF_IRQ		PXA_GPIO_TO_IRQ(PCM990_CF_IRQ_GPIO)  #define PCM990_CF_IRQ_EDGE	IRQ_TYPE_EDGE_RISING  #define PCM990_CF_CD_GPIO	12 -#define PCM990_CF_CD		IRQ_GPIO(PCM990_CF_CD_GPIO) +#define PCM990_CF_CD		PXA_GPIO_TO_IRQ(PCM990_CF_CD_GPIO)  #define PCM990_CF_CD_EDGE	IRQ_TYPE_EDGE_RISING  #define PCM990_CF_PLD_PHYS	0x30000000	/* 16 bit wide */ -#define PCM990_CF_PLD_BASE	0xef000000 -#define PCM990_CF_PLD_SIZE	(1*1024*1024) -#define PCM990_CF_PLD_P2V(x)	((x) - PCM990_CF_PLD_PHYS + PCM990_CF_PLD_BASE) -#define PCM990_CF_PLD_V2P(x)	((x) - PCM990_CF_PLD_BASE + PCM990_CF_PLD_PHYS)  /* visible CPLD (U6) registers */  #define PCM990_CF_PLD_REG0	0x1000	/* OFFSET CF REGISTER 0 */ @@ -239,33 +191,18 @@  #define PCM990_CF_REG6_CD1	0x0001	/* R CF Card_Detect1 */  #define PCM990_CF_REG6_CD2	0x0002	/* R CF Card_Detect2 */ -#ifndef __ASSEMBLY__ -#  define  __PCM990_CF_PLD_REG(x) \ -	(*((volatile unsigned char *)PCM990_CF_PLD_P2V(x))) -#else -#  define  __PCM990_CF_PLD_REG(x)	PCM990_CF_PLD_P2V(x) -#endif - -#define PCM990_CF0 __PCM990_CF_PLD_REG(PCM990_CF_PLD_PHYS + PCM990_CF_PLD_REG0) -#define PCM990_CF1 __PCM990_CF_PLD_REG(PCM990_CF_PLD_PHYS + PCM990_CF_PLD_REG1) -#define PCM990_CF2 __PCM990_CF_PLD_REG(PCM990_CF_PLD_PHYS + PCM990_CF_PLD_REG2) -#define PCM990_CF3 __PCM990_CF_PLD_REG(PCM990_CF_PLD_PHYS + PCM990_CF_PLD_REG3) -#define PCM990_CF4 __PCM990_CF_PLD_REG(PCM990_CF_PLD_PHYS + PCM990_CF_PLD_REG4) -#define PCM990_CF5 __PCM990_CF_PLD_REG(PCM990_CF_PLD_PHYS + PCM990_CF_PLD_REG5) -#define PCM990_CF6 __PCM990_CF_PLD_REG(PCM990_CF_PLD_PHYS + PCM990_CF_PLD_REG6) -  /*   * Wolfson AC97 Touch   */  #define PCM990_AC97_IRQ_GPIO	10 -#define PCM990_AC97_IRQ		IRQ_GPIO(PCM990_AC97_IRQ_GPIO) +#define PCM990_AC97_IRQ		PXA_GPIO_TO_IRQ(PCM990_AC97_IRQ_GPIO)  #define PCM990_AC97_IRQ_EDGE	IRQ_TYPE_EDGE_RISING  /*   * MMC phyCORE   */  #define PCM990_MMC0_IRQ_GPIO	9 -#define PCM990_MMC0_IRQ		IRQ_GPIO(PCM990_MMC0_IRQ_GPIO) +#define PCM990_MMC0_IRQ		PXA_GPIO_TO_IRQ(PCM990_MMC0_IRQ_GPIO)  #define PCM990_MMC0_IRQ_EDGE	IRQ_TYPE_EDGE_FALLING  /* diff --git a/arch/arm/mach-pxa/include/mach/pm.h b/arch/arm/mach-pxa/include/mach/pm.h index fd8360c6839..51558bcee99 100644 --- a/arch/arm/mach-pxa/include/mach/pm.h +++ b/arch/arm/mach-pxa/include/mach/pm.h @@ -22,9 +22,8 @@ struct pxa_cpu_pm_fns {  extern struct pxa_cpu_pm_fns *pxa_cpu_pm_fns;  /* sleep.S */ -extern void pxa25x_cpu_suspend(unsigned int); -extern void pxa27x_cpu_suspend(unsigned int); -extern void pxa_cpu_resume(void); +extern int pxa25x_finish_suspend(unsigned long); +extern int pxa27x_finish_suspend(unsigned long);  extern int pxa_pm_enter(suspend_state_t state);  extern int pxa_pm_prepare(void); diff --git a/arch/arm/mach-pxa/include/mach/poodle.h b/arch/arm/mach-pxa/include/mach/poodle.h index 83d1cfd00fc..b56b19351a0 100644 --- a/arch/arm/mach-pxa/include/mach/poodle.h +++ b/arch/arm/mach-pxa/include/mach/poodle.h @@ -15,6 +15,8 @@  #ifndef __ASM_ARCH_POODLE_H  #define __ASM_ARCH_POODLE_H  1 +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  /*   * GPIOs   */ @@ -47,18 +49,18 @@  #define POODLE_GPIO_DISCHARGE_ON        (42) /* Enable battery discharge */  /* PXA GPIOs */ -#define POODLE_IRQ_GPIO_ON_KEY		IRQ_GPIO(0) -#define POODLE_IRQ_GPIO_AC_IN		IRQ_GPIO(1) -#define POODLE_IRQ_GPIO_HP_IN		IRQ_GPIO(4) -#define POODLE_IRQ_GPIO_CO		IRQ_GPIO(16) -#define POODLE_IRQ_GPIO_TP_INT		IRQ_GPIO(5) -#define POODLE_IRQ_GPIO_WAKEUP		IRQ_GPIO(11) -#define POODLE_IRQ_GPIO_GA_INT		IRQ_GPIO(10) -#define POODLE_IRQ_GPIO_CF_IRQ		IRQ_GPIO(17) -#define POODLE_IRQ_GPIO_CF_CD		IRQ_GPIO(14) -#define POODLE_IRQ_GPIO_nSD_INT		IRQ_GPIO(8) -#define POODLE_IRQ_GPIO_nSD_DETECT	IRQ_GPIO(9) -#define POODLE_IRQ_GPIO_MAIN_BAT_LOW	IRQ_GPIO(13) +#define POODLE_IRQ_GPIO_ON_KEY		PXA_GPIO_TO_IRQ(0) +#define POODLE_IRQ_GPIO_AC_IN		PXA_GPIO_TO_IRQ(1) +#define POODLE_IRQ_GPIO_HP_IN		PXA_GPIO_TO_IRQ(4) +#define POODLE_IRQ_GPIO_CO		PXA_GPIO_TO_IRQ(16) +#define POODLE_IRQ_GPIO_TP_INT		PXA_GPIO_TO_IRQ(5) +#define POODLE_IRQ_GPIO_WAKEUP		PXA_GPIO_TO_IRQ(11) +#define POODLE_IRQ_GPIO_GA_INT		PXA_GPIO_TO_IRQ(10) +#define POODLE_IRQ_GPIO_CF_IRQ		PXA_GPIO_TO_IRQ(17) +#define POODLE_IRQ_GPIO_CF_CD		PXA_GPIO_TO_IRQ(14) +#define POODLE_IRQ_GPIO_nSD_INT		PXA_GPIO_TO_IRQ(8) +#define POODLE_IRQ_GPIO_nSD_DETECT	PXA_GPIO_TO_IRQ(9) +#define POODLE_IRQ_GPIO_MAIN_BAT_LOW	PXA_GPIO_TO_IRQ(13)  /* SCOOP GPIOs */  #define POODLE_SCOOP_CHARGE_ON	SCOOP_GPCR_PA11 @@ -71,7 +73,7 @@  #define POODLE_SCOOP_IO_DIR	( POODLE_SCOOP_VPEN | POODLE_SCOOP_HS_OUT )  #define POODLE_SCOOP_IO_OUT	( 0 ) -#define POODLE_SCOOP_GPIO_BASE	(NR_BUILTIN_GPIO) +#define POODLE_SCOOP_GPIO_BASE	(PXA_NR_BUILTIN_GPIO)  #define POODLE_GPIO_CHARGE_ON	(POODLE_SCOOP_GPIO_BASE + 0)  #define POODLE_GPIO_CP401	(POODLE_SCOOP_GPIO_BASE + 2)  #define POODLE_GPIO_VPEN	(POODLE_SCOOP_GPIO_BASE + 7) diff --git a/arch/arm/mach-pxa/include/mach/pxa25x.h b/arch/arm/mach-pxa/include/mach/pxa25x.h index 508c3ba1f4d..3ac0baac735 100644 --- a/arch/arm/mach-pxa/include/mach/pxa25x.h +++ b/arch/arm/mach-pxa/include/mach/pxa25x.h @@ -4,5 +4,14 @@  #include <mach/hardware.h>  #include <mach/pxa2xx-regs.h>  #include <mach/mfp-pxa25x.h> +#include <mach/irqs.h> + +extern void __init pxa25x_map_io(void); +extern void __init pxa25x_init_irq(void); +#ifdef CONFIG_CPU_PXA26x +extern void __init pxa26x_init_irq(void); +#endif + +#define pxa25x_handle_irq	icip_handle_irq  #endif /* __MACH_PXA25x_H */ diff --git a/arch/arm/mach-pxa/include/mach/pxa27x-udc.h b/arch/arm/mach-pxa/include/mach/pxa27x-udc.h index ab1443f8bd8..4cf28f67070 100644 --- a/arch/arm/mach-pxa/include/mach/pxa27x-udc.h +++ b/arch/arm/mach-pxa/include/mach/pxa27x-udc.h @@ -56,9 +56,9 @@  #define UDCFNR          __REG(0x40600014) /* UDC Frame Number Register */  #define UDCOTGICR	__REG(0x40600018) /* UDC On-The-Go interrupt control */  #define UDCOTGICR_IESF	(1 << 24)	/* OTG SET_FEATURE command recvd */ -#define UDCOTGICR_IEXR	(1 << 17)	/* Extra Transciever Interrupt +#define UDCOTGICR_IEXR	(1 << 17)	/* Extra Transceiver Interrupt  					   Rising Edge Interrupt Enable */ -#define UDCOTGICR_IEXF	(1 << 16)	/* Extra Transciever Interrupt +#define UDCOTGICR_IEXF	(1 << 16)	/* Extra Transceiver Interrupt  					   Falling Edge Interrupt Enable */  #define UDCOTGICR_IEVV40R (1 << 9)	/* OTG Vbus Valid 4.0V Rising Edge  					   Interrupt Enable */ diff --git a/arch/arm/mach-pxa/include/mach/pxa27x.h b/arch/arm/mach-pxa/include/mach/pxa27x.h index 0b702693f45..7cff640582b 100644 --- a/arch/arm/mach-pxa/include/mach/pxa27x.h +++ b/arch/arm/mach-pxa/include/mach/pxa27x.h @@ -1,9 +1,11 @@  #ifndef __MACH_PXA27x_H  #define __MACH_PXA27x_H +#include <linux/suspend.h>  #include <mach/hardware.h>  #include <mach/pxa2xx-regs.h>  #include <mach/mfp-pxa27x.h> +#include <mach/irqs.h>  #define ARB_CNTRL	__REG(0x48000048)  /* Arbiter Control Register */ @@ -17,6 +19,11 @@  #define ARB_CORE_PARK		(1<<24)	   /* Be parked with core when idle */  #define ARB_LOCK_FLAG		(1<<23)	   /* Only Locking masters gain access to the bus */ +extern void __init pxa27x_map_io(void); +extern void __init pxa27x_init_irq(void);  extern int __init pxa27x_set_pwrmode(unsigned int mode); +extern void pxa27x_cpu_pm_enter(suspend_state_t state); + +#define pxa27x_handle_irq	ichp_handle_irq  #endif /* __MACH_PXA27x_H */ diff --git a/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h b/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h index 4fcddd9cab7..ee6ced1cea7 100644 --- a/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h +++ b/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h @@ -17,72 +17,6 @@  #include <mach/hardware.h>  /* - * PXA Chip selects - */ - -#define PXA_CS0_PHYS	0x00000000 -#define PXA_CS1_PHYS	0x04000000 -#define PXA_CS2_PHYS	0x08000000 -#define PXA_CS3_PHYS	0x0C000000 -#define PXA_CS4_PHYS	0x10000000 -#define PXA_CS5_PHYS	0x14000000 - -/* - * Memory controller - */ - -#define MDCNFG		__REG(0x48000000)  /* SDRAM Configuration Register 0 */ -#define MDREFR		__REG(0x48000004)  /* SDRAM Refresh Control Register */ -#define MSC0		__REG(0x48000008)  /* Static Memory Control Register 0 */ -#define MSC1		__REG(0x4800000C)  /* Static Memory Control Register 1 */ -#define MSC2		__REG(0x48000010)  /* Static Memory Control Register 2 */ -#define MECR		__REG(0x48000014)  /* Expansion Memory (PCMCIA/Compact Flash) Bus Configuration */ -#define SXLCR		__REG(0x48000018)  /* LCR value to be written to SDRAM-Timing Synchronous Flash */ -#define SXCNFG		__REG(0x4800001C)  /* Synchronous Static Memory Control Register */ -#define SXMRS		__REG(0x48000024)  /* MRS value to be written to Synchronous Flash or SMROM */ -#define MCMEM0		__REG(0x48000028)  /* Card interface Common Memory Space Socket 0 Timing */ -#define MCMEM1		__REG(0x4800002C)  /* Card interface Common Memory Space Socket 1 Timing */ -#define MCATT0		__REG(0x48000030)  /* Card interface Attribute Space Socket 0 Timing Configuration */ -#define MCATT1		__REG(0x48000034)  /* Card interface Attribute Space Socket 1 Timing Configuration */ -#define MCIO0		__REG(0x48000038)  /* Card interface I/O Space Socket 0 Timing Configuration */ -#define MCIO1		__REG(0x4800003C)  /* Card interface I/O Space Socket 1 Timing Configuration */ -#define MDMRS		__REG(0x48000040)  /* MRS value to be written to SDRAM */ -#define BOOT_DEF	__REG(0x48000044)  /* Read-Only Boot-Time Register. Contains BOOT_SEL and PKG_SEL */ - -/* - * More handy macros for PCMCIA - * - * Arg is socket number - */ -#define MCMEM(s)	__REG2(0x48000028, (s)<<2 )  /* Card interface Common Memory Space Socket s Timing */ -#define MCATT(s)	__REG2(0x48000030, (s)<<2 )  /* Card interface Attribute Space Socket s Timing Configuration */ -#define MCIO(s)		__REG2(0x48000038, (s)<<2 )  /* Card interface I/O Space Socket s Timing Configuration */ - -/* MECR register defines */ -#define MECR_NOS	(1 << 0)	/* Number Of Sockets: 0 -> 1 sock, 1 -> 2 sock */ -#define MECR_CIT	(1 << 1)	/* Card Is There: 0 -> no card, 1 -> card inserted */ - -#define MDCNFG_DE0	(1 << 0)	/* SDRAM Bank 0 Enable */ -#define MDCNFG_DE1	(1 << 1)	/* SDRAM Bank 1 Enable */ -#define MDCNFG_DE2	(1 << 16)	/* SDRAM Bank 2 Enable */ -#define MDCNFG_DE3	(1 << 17)	/* SDRAM Bank 3 Enable */ - -#define MDREFR_K0DB4	(1 << 29)	/* SDCLK0 Divide by 4 Control/Status */ -#define MDREFR_K2FREE	(1 << 25)	/* SDRAM Free-Running Control */ -#define MDREFR_K1FREE	(1 << 24)	/* SDRAM Free-Running Control */ -#define MDREFR_K0FREE	(1 << 23)	/* SDRAM Free-Running Control */ -#define MDREFR_SLFRSH	(1 << 22)	/* SDRAM Self-Refresh Control/Status */ -#define MDREFR_APD	(1 << 20)	/* SDRAM/SSRAM Auto-Power-Down Enable */ -#define MDREFR_K2DB2	(1 << 19)	/* SDCLK2 Divide by 2 Control/Status */ -#define MDREFR_K2RUN	(1 << 18)	/* SDCLK2 Run Control/Status */ -#define MDREFR_K1DB2	(1 << 17)	/* SDCLK1 Divide by 2 Control/Status */ -#define MDREFR_K1RUN	(1 << 16)	/* SDCLK1 Run Control/Status */ -#define MDREFR_E1PIN	(1 << 15)	/* SDCKE1 Level Control/Status */ -#define MDREFR_K0DB2	(1 << 14)	/* SDCLK0 Divide by 2 Control/Status */ -#define MDREFR_K0RUN	(1 << 13)	/* SDCLK0 Run Control/Status */ -#define MDREFR_E0PIN	(1 << 12)	/* SDCKE0 Level Control/Status */ - -/*   * Power Manager   */ diff --git a/arch/arm/mach-pxa/include/mach/pxa2xx_spi.h b/arch/arm/mach-pxa/include/mach/pxa2xx_spi.h deleted file mode 100644 index b87cecd9bbd..00000000000 --- a/arch/arm/mach-pxa/include/mach/pxa2xx_spi.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2005 Stephen Street / StreetFire Sound Labs - * - * 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., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef PXA2XX_SPI_H_ -#define PXA2XX_SPI_H_ - -#define PXA2XX_CS_ASSERT (0x01) -#define PXA2XX_CS_DEASSERT (0x02) - -/* device.platform_data for SSP controller devices */ -struct pxa2xx_spi_master { -	u32 clock_enable; -	u16 num_chipselect; -	u8 enable_dma; -}; - -/* spi_board_info.controller_data for SPI slave devices, - * copied to spi_device.platform_data ... mostly for dma tuning - */ -struct pxa2xx_spi_chip { -	u8 tx_threshold; -	u8 rx_threshold; -	u8 dma_burst_size; -	u32 timeout; -	u8 enable_loopback; -	int gpio_cs; -	void (*cs_control)(u32 command); -}; - -extern void pxa2xx_set_spi_info(unsigned id, struct pxa2xx_spi_master *info); - -#endif /*PXA2XX_SPI_H_*/ diff --git a/arch/arm/mach-pxa/include/mach/pxa300.h b/arch/arm/mach-pxa/include/mach/pxa300.h index 2f33076c9e4..733b6412c3d 100644 --- a/arch/arm/mach-pxa/include/mach/pxa300.h +++ b/arch/arm/mach-pxa/include/mach/pxa300.h @@ -1,8 +1,7 @@  #ifndef __MACH_PXA300_H  #define __MACH_PXA300_H -#include <mach/hardware.h> -#include <mach/pxa3xx-regs.h> +#include <mach/pxa3xx.h>  #include <mach/mfp-pxa300.h>  #endif /* __MACH_PXA300_H */ diff --git a/arch/arm/mach-pxa/include/mach/pxa320.h b/arch/arm/mach-pxa/include/mach/pxa320.h index cab78e90327..b6204e470d8 100644 --- a/arch/arm/mach-pxa/include/mach/pxa320.h +++ b/arch/arm/mach-pxa/include/mach/pxa320.h @@ -1,8 +1,7 @@  #ifndef __MACH_PXA320_H  #define __MACH_PXA320_H -#include <mach/hardware.h> -#include <mach/pxa3xx-regs.h> +#include <mach/pxa3xx.h>  #include <mach/mfp-pxa320.h>  #endif /* __MACH_PXA320_H */ diff --git a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h index e91d63cfe81..f4d48d20754 100644 --- a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h +++ b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h @@ -16,15 +16,6 @@  #include <mach/hardware.h>  /* - * Static Chip Selects - */ - -#define PXA300_CS0_PHYS		(0x00000000)	/* PXA300/PXA310 _only_ */ -#define PXA300_CS1_PHYS		(0x30000000)	/* PXA300/PXA310 _only_ */ -#define PXA3xx_CS2_PHYS		(0x10000000) -#define PXA3xx_CS3_PHYS		(0x14000000) - -/*   * Oscillator Configuration Register (OSCC)   */  #define OSCC           __REG(0x41350000)  /* Oscillator Configuration Register */ @@ -47,7 +38,7 @@  #define PCMD(x)		__REG(0x40F50110 + ((x) << 2))  /* - * Slave Power Managment Unit + * Slave Power Management Unit   */  #define ASCR		__REG(0x40f40000)	/* Application Subsystem Power Status/Configuration */  #define ARSR		__REG(0x40f40004)	/* Application Subsystem Reset Status */ @@ -140,6 +131,7 @@  #define AICSR		__REG(0x41340008)	/* Application Subsystem Interrupt Control/Status Register */  #define CKENA		__REG(0x4134000C)	/* A Clock Enable Register */  #define CKENB		__REG(0x41340010)	/* B Clock Enable Register */ +#define CKENC		__REG(0x41340024)	/* C Clock Enable Register */  #define AC97_DIV	__REG(0x41340014)	/* AC97 clock divisor value register */  #define ACCR_XPDIS		(1 << 31)	/* Core PLL Output Disable */ diff --git a/arch/arm/mach-pxa/include/mach/pxa3xx-u2d.h b/arch/arm/mach-pxa/include/mach/pxa3xx-u2d.h deleted file mode 100644 index 9d82cb65ea5..00000000000 --- a/arch/arm/mach-pxa/include/mach/pxa3xx-u2d.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * PXA3xx U2D header - * - * Copyright (C) 2010 CompuLab Ltd. - * - * Igor Grinberg <grinberg@compulab.co.il> - * - * 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 __PXA310_U2D__ -#define __PXA310_U2D__ - -#include <linux/usb/ulpi.h> - -struct pxa3xx_u2d_platform_data { - -#define ULPI_SER_6PIN	(1 << 0) -#define ULPI_SER_3PIN	(1 << 1) -	unsigned int ulpi_mode; - -	int (*init)(struct device *); -	void (*exit)(struct device *); -}; - - -/* Start PXA3xx U2D host */ -int pxa3xx_u2d_start_hc(struct usb_bus *host); -/* Stop PXA3xx U2D host */ -void pxa3xx_u2d_stop_hc(struct usb_bus *host); - -extern void pxa3xx_set_u2d_info(struct pxa3xx_u2d_platform_data *info); - -#endif /* __PXA310_U2D__ */ diff --git a/arch/arm/mach-pxa/include/mach/pxa3xx.h b/arch/arm/mach-pxa/include/mach/pxa3xx.h new file mode 100644 index 00000000000..6dd7fa163e2 --- /dev/null +++ b/arch/arm/mach-pxa/include/mach/pxa3xx.h @@ -0,0 +1,13 @@ +#ifndef __MACH_PXA3XX_H	 +#define __MACH_PXA3XX_H + +#include <mach/hardware.h> +#include <mach/pxa3xx-regs.h> +#include <mach/irqs.h> + +extern void __init pxa3xx_map_io(void); +extern void __init pxa3xx_init_irq(void); + +#define pxa3xx_handle_irq	ichp_handle_irq + +#endif /* __MACH_PXA3XX_H */ diff --git a/arch/arm/mach-pxa/include/mach/pxa930.h b/arch/arm/mach-pxa/include/mach/pxa930.h index d45f76a9b54..190363b98d0 100644 --- a/arch/arm/mach-pxa/include/mach/pxa930.h +++ b/arch/arm/mach-pxa/include/mach/pxa930.h @@ -1,8 +1,7 @@  #ifndef __MACH_PXA930_H  #define __MACH_PXA930_H -#include <mach/hardware.h> -#include <mach/pxa3xx-regs.h> +#include <mach/pxa3xx.h>  #include <mach/mfp-pxa930.h>  #endif /* __MACH_PXA930_H */ diff --git a/arch/arm/mach-pxa/include/mach/pxa930_rotary.h b/arch/arm/mach-pxa/include/mach/pxa930_rotary.h deleted file mode 100644 index 053587caffd..00000000000 --- a/arch/arm/mach-pxa/include/mach/pxa930_rotary.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __ASM_ARCH_PXA930_ROTARY_H -#define __ASM_ARCH_PXA930_ROTARY_H - -/* NOTE: - * - * rotary can be either interpreted as a ralative input event (e.g. - * REL_WHEEL or REL_HWHEEL) or a specific key event (e.g. UP/DOWN - * or LEFT/RIGHT), depending on if up_key & down_key are assigned - * or rel_code is assigned a non-zero value. When all are non-zero, - * up_key and down_key will be preferred. - */ -struct pxa930_rotary_platform_data { -	int	up_key; -	int	down_key; -	int	rel_code; -}; - -void __init pxa930_set_rotarykey_info(struct pxa930_rotary_platform_data *info); - -#endif /* __ASM_ARCH_PXA930_ROTARY_H */ diff --git a/arch/arm/mach-pxa/include/mach/pxa930_trkball.h b/arch/arm/mach-pxa/include/mach/pxa930_trkball.h deleted file mode 100644 index 5e0789bc472..00000000000 --- a/arch/arm/mach-pxa/include/mach/pxa930_trkball.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __ASM_ARCH_PXA930_TRKBALL_H -#define __ASM_ARCH_PXA930_TRKBALL_H - -struct pxa930_trkball_platform_data { -	int x_filter; -	int y_filter; -}; - -#endif /* __ASM_ARCH_PXA930_TRKBALL_H */ - diff --git a/arch/arm/mach-pxa/include/mach/pxafb.h b/arch/arm/mach-pxa/include/mach/pxafb.h deleted file mode 100644 index 160ec83f51a..00000000000 --- a/arch/arm/mach-pxa/include/mach/pxafb.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - *  arch/arm/mach-pxa/include/mach/pxafb.h - * - *  Support for the xscale frame buffer. - * - *  Author:     Jean-Frederic Clere - *  Created:    Sep 22, 2003 - *  Copyright:  jfclere@sinix.net - * - *  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/fb.h> -#include <mach/regs-lcd.h> - -/* - * Supported LCD connections - * - * bits 0 - 3: for LCD panel type: - * - *   STN  - for passive matrix - *   DSTN - for dual scan passive matrix - *   TFT  - for active matrix - * - * bits 4 - 9 : for bus width - * bits 10-17 : for AC Bias Pin Frequency - * bit     18 : for output enable polarity - * bit     19 : for pixel clock edge - * bit     20 : for output pixel format when base is RGBT16 - */ -#define LCD_CONN_TYPE(_x)	((_x) & 0x0f) -#define LCD_CONN_WIDTH(_x)	(((_x) >> 4) & 0x1f) - -#define LCD_TYPE_MASK		0xf -#define LCD_TYPE_UNKNOWN	0 -#define LCD_TYPE_MONO_STN	1 -#define LCD_TYPE_MONO_DSTN	2 -#define LCD_TYPE_COLOR_STN	3 -#define LCD_TYPE_COLOR_DSTN	4 -#define LCD_TYPE_COLOR_TFT	5 -#define LCD_TYPE_SMART_PANEL	6 -#define LCD_TYPE_MAX		7 - -#define LCD_MONO_STN_4BPP	((4  << 4) | LCD_TYPE_MONO_STN) -#define LCD_MONO_STN_8BPP	((8  << 4) | LCD_TYPE_MONO_STN) -#define LCD_MONO_DSTN_8BPP	((8  << 4) | LCD_TYPE_MONO_DSTN) -#define LCD_COLOR_STN_8BPP	((8  << 4) | LCD_TYPE_COLOR_STN) -#define LCD_COLOR_DSTN_16BPP	((16 << 4) | LCD_TYPE_COLOR_DSTN) -#define LCD_COLOR_TFT_8BPP	((8  << 4) | LCD_TYPE_COLOR_TFT) -#define LCD_COLOR_TFT_16BPP	((16 << 4) | LCD_TYPE_COLOR_TFT) -#define LCD_COLOR_TFT_18BPP	((18 << 4) | LCD_TYPE_COLOR_TFT) -#define LCD_SMART_PANEL_8BPP	((8  << 4) | LCD_TYPE_SMART_PANEL) -#define LCD_SMART_PANEL_16BPP	((16 << 4) | LCD_TYPE_SMART_PANEL) -#define LCD_SMART_PANEL_18BPP	((18 << 4) | LCD_TYPE_SMART_PANEL) - -#define LCD_AC_BIAS_FREQ(x)	(((x) & 0xff) << 10) -#define LCD_BIAS_ACTIVE_HIGH	(0 << 18) -#define LCD_BIAS_ACTIVE_LOW	(1 << 18) -#define LCD_PCLK_EDGE_RISE	(0 << 19) -#define LCD_PCLK_EDGE_FALL	(1 << 19) -#define LCD_ALTERNATE_MAPPING	(1 << 20) - -/* - * This structure describes the machine which we are running on. - * It is set in linux/arch/arm/mach-pxa/machine_name.c and used in the probe routine - * of linux/drivers/video/pxafb.c - */ -struct pxafb_mode_info { -	u_long		pixclock; - -	u_short		xres; -	u_short		yres; - -	u_char		bpp; -	u_int		cmap_greyscale:1, -			depth:8, -			transparency:1, -			unused:22; - -	/* Parallel Mode Timing */ -	u_char		hsync_len; -	u_char		left_margin; -	u_char		right_margin; - -	u_char		vsync_len; -	u_char		upper_margin; -	u_char		lower_margin; -	u_char		sync; - -	/* Smart Panel Mode Timing - see PXA27x DM 7.4.15.0.3 for details -	 * Note: -	 * 1. all parameters in nanosecond (ns) -	 * 2. a0cs{rd,wr}_set_hld are controlled by the same register bits -	 *    in pxa27x and pxa3xx, initialize them to the same value or -	 *    the larger one will be used -	 * 3. same to {rd,wr}_pulse_width -	 * -	 * 4. LCD_PCLK_EDGE_{RISE,FALL} controls the L_PCLK_WR polarity -	 * 5. sync & FB_SYNC_HOR_HIGH_ACT controls the L_LCLK_A0 -	 * 6. sync & FB_SYNC_VERT_HIGH_ACT controls the L_LCLK_RD -	 */ -	unsigned	a0csrd_set_hld;	/* A0 and CS Setup/Hold Time before/after L_FCLK_RD */ -	unsigned	a0cswr_set_hld;	/* A0 and CS Setup/Hold Time before/after L_PCLK_WR */ -	unsigned	wr_pulse_width;	/* L_PCLK_WR pulse width */ -	unsigned	rd_pulse_width;	/* L_FCLK_RD pulse width */ -	unsigned	cmd_inh_time;	/* Command Inhibit time between two writes */ -	unsigned	op_hold_time;	/* Output Hold time from L_FCLK_RD negation */ -}; - -struct pxafb_mach_info { -	struct pxafb_mode_info *modes; -	unsigned int num_modes; - -	unsigned int	lcd_conn; -	unsigned long	video_mem_size; - -	u_int		fixed_modes:1, -			cmap_inverse:1, -			cmap_static:1, -			acceleration_enabled:1, -			unused:28; - -	/* The following should be defined in LCCR0 -	 *      LCCR0_Act or LCCR0_Pas          Active or Passive -	 *      LCCR0_Sngl or LCCR0_Dual        Single/Dual panel -	 *      LCCR0_Mono or LCCR0_Color       Mono/Color -	 *      LCCR0_4PixMono or LCCR0_8PixMono (in mono single mode) -	 *      LCCR0_DMADel(Tcpu) (optional)   DMA request delay -	 * -	 * The following should not be defined in LCCR0: -	 *      LCCR0_OUM, LCCR0_BM, LCCR0_QDM, LCCR0_DIS, LCCR0_EFM -	 *      LCCR0_IUM, LCCR0_SFM, LCCR0_LDM, LCCR0_ENB -	 */ -	u_int		lccr0; -	/* The following should be defined in LCCR3 -	 *      LCCR3_OutEnH or LCCR3_OutEnL    Output enable polarity -	 *      LCCR3_PixRsEdg or LCCR3_PixFlEdg Pixel clock edge type -	 *      LCCR3_Acb(X)                    AB Bias pin frequency -	 *      LCCR3_DPC (optional)            Double Pixel Clock mode (untested) -	 * -	 * The following should not be defined in LCCR3 -	 *      LCCR3_HSP, LCCR3_VSP, LCCR0_Pcd(x), LCCR3_Bpp -	 */ -	u_int		lccr3; -	/* The following should be defined in LCCR4 -	 *	LCCR4_PAL_FOR_0 or LCCR4_PAL_FOR_1 or LCCR4_PAL_FOR_2 -	 * -	 * All other bits in LCCR4 should be left alone. -	 */ -	u_int		lccr4; -	void (*pxafb_backlight_power)(int); -	void (*pxafb_lcd_power)(int, struct fb_var_screeninfo *); -	void (*smart_update)(struct fb_info *); -}; -void set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info); -void set_pxa_fb_parent(struct device *parent_dev); -unsigned long pxafb_get_hsync_time(struct device *dev); - -extern int pxafb_smart_queue(struct fb_info *info, uint16_t *cmds, int); -extern int pxafb_smart_flush(struct fb_info *info); diff --git a/arch/arm/mach-pxa/include/mach/regs-intc.h b/arch/arm/mach-pxa/include/mach/regs-intc.h deleted file mode 100644 index 68464ce1c1e..00000000000 --- a/arch/arm/mach-pxa/include/mach/regs-intc.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef __ASM_MACH_REGS_INTC_H -#define __ASM_MACH_REGS_INTC_H - -#include <mach/hardware.h> - -/* - * Interrupt Controller - */ - -#define ICIP		__REG(0x40D00000)  /* Interrupt Controller IRQ Pending Register */ -#define ICMR		__REG(0x40D00004)  /* Interrupt Controller Mask Register */ -#define ICLR		__REG(0x40D00008)  /* Interrupt Controller Level Register */ -#define ICFP		__REG(0x40D0000C)  /* Interrupt Controller FIQ Pending Register */ -#define ICPR		__REG(0x40D00010)  /* Interrupt Controller Pending Register */ -#define ICCR		__REG(0x40D00014)  /* Interrupt Controller Control Register */ -#define ICHP		__REG(0x40D00018)  /* Interrupt Controller Highest Priority Register */ - -#define ICIP2		__REG(0x40D0009C)  /* Interrupt Controller IRQ Pending Register 2 */ -#define ICMR2		__REG(0x40D000A0)  /* Interrupt Controller Mask Register 2 */ -#define ICLR2		__REG(0x40D000A4)  /* Interrupt Controller Level Register 2 */ -#define ICFP2		__REG(0x40D000A8)  /* Interrupt Controller FIQ Pending Register 2 */ -#define ICPR2		__REG(0x40D000AC)  /* Interrupt Controller Pending Register 2 */ - -#define ICIP3		__REG(0x40D00130)  /* Interrupt Controller IRQ Pending Register 3 */ -#define ICMR3		__REG(0x40D00134)  /* Interrupt Controller Mask Register 3 */ -#define ICLR3		__REG(0x40D00138)  /* Interrupt Controller Level Register 3 */ -#define ICFP3		__REG(0x40D0013C)  /* Interrupt Controller FIQ Pending Register 3 */ -#define ICPR3		__REG(0x40D00140)  /* Interrupt Controller Pending Register 3 */ - -#define IPR(x)		__REG(0x40D0001C + (x < 32 ? (x << 2)		\ -				: (x < 64 ? (0x94 + ((x - 32) << 2))	\ -				: (0x128 + ((x - 64) << 2))))) - -#endif /* __ASM_MACH_REGS_INTC_H */ diff --git a/arch/arm/mach-pxa/include/mach/regs-ost.h b/arch/arm/mach-pxa/include/mach/regs-ost.h index a3e5f86ef67..628819995c5 100644 --- a/arch/arm/mach-pxa/include/mach/regs-ost.h +++ b/arch/arm/mach-pxa/include/mach/regs-ost.h @@ -7,17 +7,17 @@   * OS Timer & Match Registers   */ -#define OSMR0		__REG(0x40A00000)  /* */ -#define OSMR1		__REG(0x40A00004)  /* */ -#define OSMR2		__REG(0x40A00008)  /* */ -#define OSMR3		__REG(0x40A0000C)  /* */ -#define OSMR4		__REG(0x40A00080)  /* */ -#define OSCR		__REG(0x40A00010)  /* OS Timer Counter Register */ -#define OSCR4		__REG(0x40A00040)  /* OS Timer Counter Register */ -#define OMCR4		__REG(0x40A000C0)  /* */ -#define OSSR		__REG(0x40A00014)  /* OS Timer Status Register */ -#define OWER		__REG(0x40A00018)  /* OS Timer Watchdog Enable Register */ -#define OIER		__REG(0x40A0001C)  /* OS Timer Interrupt Enable Register */ +#define OSMR0		io_p2v(0x40A00000)  /* */ +#define OSMR1		io_p2v(0x40A00004)  /* */ +#define OSMR2		io_p2v(0x40A00008)  /* */ +#define OSMR3		io_p2v(0x40A0000C)  /* */ +#define OSMR4		io_p2v(0x40A00080)  /* */ +#define OSCR		io_p2v(0x40A00010)  /* OS Timer Counter Register */ +#define OSCR4		io_p2v(0x40A00040)  /* OS Timer Counter Register */ +#define OMCR4		io_p2v(0x40A000C0)  /* */ +#define OSSR		io_p2v(0x40A00014)  /* OS Timer Status Register */ +#define OWER		io_p2v(0x40A00018)  /* OS Timer Watchdog Enable Register */ +#define OIER		io_p2v(0x40A0001C)  /* OS Timer Interrupt Enable Register */  #define OSSR_M3		(1 << 3)	/* Match status channel 3 */  #define OSSR_M2		(1 << 2)	/* Match status channel 2 */ diff --git a/arch/arm/mach-pxa/include/mach/smemc.h b/arch/arm/mach-pxa/include/mach/smemc.h new file mode 100644 index 00000000000..b802f285fe0 --- /dev/null +++ b/arch/arm/mach-pxa/include/mach/smemc.h @@ -0,0 +1,75 @@ +/* + * Static memory controller register definitions for PXA CPUs + * + * Copyright (C) 2010 Marek Vasut <marek.vasut@gmail.com> + * + * 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 __SMEMC_REGS_H +#define __SMEMC_REGS_H + +#define PXA2XX_SMEMC_BASE	0x48000000 +#define PXA3XX_SMEMC_BASE	0x4a000000 +#define SMEMC_VIRT		IOMEM(0xf6000000) + +#define MDCNFG		(SMEMC_VIRT + 0x00)  /* SDRAM Configuration Register 0 */ +#define MDREFR		(SMEMC_VIRT + 0x04)  /* SDRAM Refresh Control Register */ +#define MSC0		(SMEMC_VIRT + 0x08)  /* Static Memory Control Register 0 */ +#define MSC1		(SMEMC_VIRT + 0x0C)  /* Static Memory Control Register 1 */ +#define MSC2		(SMEMC_VIRT + 0x10)  /* Static Memory Control Register 2 */ +#define MECR		(SMEMC_VIRT + 0x14)  /* Expansion Memory (PCMCIA/Compact Flash) Bus Configuration */ +#define SXLCR		(SMEMC_VIRT + 0x18)  /* LCR value to be written to SDRAM-Timing Synchronous Flash */ +#define SXCNFG		(SMEMC_VIRT + 0x1C)  /* Synchronous Static Memory Control Register */ +#define SXMRS		(SMEMC_VIRT + 0x24)  /* MRS value to be written to Synchronous Flash or SMROM */ +#define MCMEM0		(SMEMC_VIRT + 0x28)  /* Card interface Common Memory Space Socket 0 Timing */ +#define MCMEM1		(SMEMC_VIRT + 0x2C)  /* Card interface Common Memory Space Socket 1 Timing */ +#define MCATT0		(SMEMC_VIRT + 0x30)  /* Card interface Attribute Space Socket 0 Timing Configuration */ +#define MCATT1		(SMEMC_VIRT + 0x34)  /* Card interface Attribute Space Socket 1 Timing Configuration */ +#define MCIO0		(SMEMC_VIRT + 0x38)  /* Card interface I/O Space Socket 0 Timing Configuration */ +#define MCIO1		(SMEMC_VIRT + 0x3C)  /* Card interface I/O Space Socket 1 Timing Configuration */ +#define MDMRS		(SMEMC_VIRT + 0x40)  /* MRS value to be written to SDRAM */ +#define BOOT_DEF	(SMEMC_VIRT + 0x44)  /* Read-Only Boot-Time Register. Contains BOOT_SEL and PKG_SEL */ +#define MEMCLKCFG	(SMEMC_VIRT + 0x68)  /* Clock Configuration */ +#define CSADRCFG0	(SMEMC_VIRT + 0x80)  /* Address Configuration Register for CS0 */ +#define CSADRCFG1	(SMEMC_VIRT + 0x84)  /* Address Configuration Register for CS1 */ +#define CSADRCFG2	(SMEMC_VIRT + 0x88)  /* Address Configuration Register for CS2 */ +#define CSADRCFG3	(SMEMC_VIRT + 0x8C)  /* Address Configuration Register for CS3 */ +#define CSMSADRCFG	(SMEMC_VIRT + 0xA0)  /* Chip Select Configuration Register */ + +/* + * More handy macros for PCMCIA + * + * Arg is socket number + */ +#define MCMEM(s)	(SMEMC_VIRT + 0x28 + ((s)<<2))  /* Card interface Common Memory Space Socket s Timing */ +#define MCATT(s)	(SMEMC_VIRT + 0x30 + ((s)<<2))  /* Card interface Attribute Space Socket s Timing Configuration */ +#define MCIO(s)		(SMEMC_VIRT + 0x38 + ((s)<<2))  /* Card interface I/O Space Socket s Timing Configuration */ + +/* MECR register defines */ +#define MECR_NOS	(1 << 0)	/* Number Of Sockets: 0 -> 1 sock, 1 -> 2 sock */ +#define MECR_CIT	(1 << 1)	/* Card Is There: 0 -> no card, 1 -> card inserted */ + +#define MDCNFG_DE0	(1 << 0)	/* SDRAM Bank 0 Enable */ +#define MDCNFG_DE1	(1 << 1)	/* SDRAM Bank 1 Enable */ +#define MDCNFG_DE2	(1 << 16)	/* SDRAM Bank 2 Enable */ +#define MDCNFG_DE3	(1 << 17)	/* SDRAM Bank 3 Enable */ + +#define MDREFR_K0DB4	(1 << 29)	/* SDCLK0 Divide by 4 Control/Status */ +#define MDREFR_K2FREE	(1 << 25)	/* SDRAM Free-Running Control */ +#define MDREFR_K1FREE	(1 << 24)	/* SDRAM Free-Running Control */ +#define MDREFR_K0FREE	(1 << 23)	/* SDRAM Free-Running Control */ +#define MDREFR_SLFRSH	(1 << 22)	/* SDRAM Self-Refresh Control/Status */ +#define MDREFR_APD	(1 << 20)	/* SDRAM/SSRAM Auto-Power-Down Enable */ +#define MDREFR_K2DB2	(1 << 19)	/* SDCLK2 Divide by 2 Control/Status */ +#define MDREFR_K2RUN	(1 << 18)	/* SDCLK2 Run Control/Status */ +#define MDREFR_K1DB2	(1 << 17)	/* SDCLK1 Divide by 2 Control/Status */ +#define MDREFR_K1RUN	(1 << 16)	/* SDCLK1 Run Control/Status */ +#define MDREFR_E1PIN	(1 << 15)	/* SDCKE1 Level Control/Status */ +#define MDREFR_K0DB2	(1 << 14)	/* SDCLK0 Divide by 2 Control/Status */ +#define MDREFR_K0RUN	(1 << 13)	/* SDCLK0 Run Control/Status */ +#define MDREFR_E0PIN	(1 << 12)	/* SDCKE0 Level Control/Status */ + +#endif diff --git a/arch/arm/mach-pxa/include/mach/spitz.h b/arch/arm/mach-pxa/include/mach/spitz.h index 685749a51c4..25c9f62e46a 100644 --- a/arch/arm/mach-pxa/include/mach/spitz.h +++ b/arch/arm/mach-pxa/include/mach/spitz.h @@ -15,8 +15,8 @@  #define __ASM_ARCH_SPITZ_H  1  #endif +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO, PXA_GPIO_TO_IRQ */  #include <linux/fb.h> -#include <linux/gpio.h>  /* Spitz/Akita GPIOs */ @@ -108,7 +108,7 @@  #define SPITZ_SCP_SUS_CLR     (SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)  #define SPITZ_SCP_SUS_SET     0 -#define SPITZ_SCP_GPIO_BASE	(NR_BUILTIN_GPIO) +#define SPITZ_SCP_GPIO_BASE	(PXA_NR_BUILTIN_GPIO)  #define SPITZ_GPIO_LED_GREEN	(SPITZ_SCP_GPIO_BASE + 0)  #define SPITZ_GPIO_JK_B		(SPITZ_SCP_GPIO_BASE + 1)  #define SPITZ_GPIO_CHRG_ON	(SPITZ_SCP_GPIO_BASE + 2) @@ -140,7 +140,7 @@                               SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)  #define SPITZ_SCP2_SUS_SET  (SPITZ_SCP2_IR_ON | SPITZ_SCP2_RESERVED_1) -#define SPITZ_SCP2_GPIO_BASE		(NR_BUILTIN_GPIO + 12) +#define SPITZ_SCP2_GPIO_BASE		(PXA_NR_BUILTIN_GPIO + 12)  #define SPITZ_GPIO_IR_ON		(SPITZ_SCP2_GPIO_BASE + 0)  #define SPITZ_GPIO_AKIN_PULLUP		(SPITZ_SCP2_GPIO_BASE + 1)  #define SPITZ_GPIO_RESERVED_1		(SPITZ_SCP2_GPIO_BASE + 2) @@ -152,7 +152,7 @@  #define SPITZ_GPIO_MIC_BIAS		(SPITZ_SCP2_GPIO_BASE + 8)  /* Akita IO Expander GPIOs */ -#define AKITA_IOEXP_GPIO_BASE		(NR_BUILTIN_GPIO + 12) +#define AKITA_IOEXP_GPIO_BASE		(PXA_NR_BUILTIN_GPIO + 12)  #define AKITA_GPIO_RESERVED_0		(AKITA_IOEXP_GPIO_BASE + 0)  #define AKITA_GPIO_RESERVED_1		(AKITA_IOEXP_GPIO_BASE + 1)  #define AKITA_GPIO_MIC_BIAS		(AKITA_IOEXP_GPIO_BASE + 2) @@ -164,23 +164,23 @@  /* Spitz IRQ Definitions */ -#define SPITZ_IRQ_GPIO_KEY_INT        IRQ_GPIO(SPITZ_GPIO_KEY_INT) -#define SPITZ_IRQ_GPIO_AC_IN          IRQ_GPIO(SPITZ_GPIO_AC_IN) -#define SPITZ_IRQ_GPIO_AK_INT         IRQ_GPIO(SPITZ_GPIO_AK_INT) -#define SPITZ_IRQ_GPIO_HP_IN          IRQ_GPIO(SPITZ_GPIO_HP_IN) -#define SPITZ_IRQ_GPIO_TP_INT         IRQ_GPIO(SPITZ_GPIO_TP_INT) -#define SPITZ_IRQ_GPIO_SYNC           IRQ_GPIO(SPITZ_GPIO_SYNC) -#define SPITZ_IRQ_GPIO_ON_KEY         IRQ_GPIO(SPITZ_GPIO_ON_KEY) -#define SPITZ_IRQ_GPIO_SWA            IRQ_GPIO(SPITZ_GPIO_SWA) -#define SPITZ_IRQ_GPIO_SWB            IRQ_GPIO(SPITZ_GPIO_SWB) -#define SPITZ_IRQ_GPIO_BAT_COVER      IRQ_GPIO(SPITZ_GPIO_BAT_COVER) -#define SPITZ_IRQ_GPIO_FATAL_BAT      IRQ_GPIO(SPITZ_GPIO_FATAL_BAT) -#define SPITZ_IRQ_GPIO_CO             IRQ_GPIO(SPITZ_GPIO_CO) -#define SPITZ_IRQ_GPIO_CF_IRQ         IRQ_GPIO(SPITZ_GPIO_CF_IRQ) -#define SPITZ_IRQ_GPIO_CF_CD          IRQ_GPIO(SPITZ_GPIO_CF_CD) -#define SPITZ_IRQ_GPIO_CF2_IRQ        IRQ_GPIO(SPITZ_GPIO_CF2_IRQ) -#define SPITZ_IRQ_GPIO_nSD_INT        IRQ_GPIO(SPITZ_GPIO_nSD_INT) -#define SPITZ_IRQ_GPIO_nSD_DETECT     IRQ_GPIO(SPITZ_GPIO_nSD_DETECT) +#define SPITZ_IRQ_GPIO_KEY_INT        PXA_GPIO_TO_IRQ(SPITZ_GPIO_KEY_INT) +#define SPITZ_IRQ_GPIO_AC_IN          PXA_GPIO_TO_IRQ(SPITZ_GPIO_AC_IN) +#define SPITZ_IRQ_GPIO_AK_INT         PXA_GPIO_TO_IRQ(SPITZ_GPIO_AK_INT) +#define SPITZ_IRQ_GPIO_HP_IN          PXA_GPIO_TO_IRQ(SPITZ_GPIO_HP_IN) +#define SPITZ_IRQ_GPIO_TP_INT         PXA_GPIO_TO_IRQ(SPITZ_GPIO_TP_INT) +#define SPITZ_IRQ_GPIO_SYNC           PXA_GPIO_TO_IRQ(SPITZ_GPIO_SYNC) +#define SPITZ_IRQ_GPIO_ON_KEY         PXA_GPIO_TO_IRQ(SPITZ_GPIO_ON_KEY) +#define SPITZ_IRQ_GPIO_SWA            PXA_GPIO_TO_IRQ(SPITZ_GPIO_SWA) +#define SPITZ_IRQ_GPIO_SWB            PXA_GPIO_TO_IRQ(SPITZ_GPIO_SWB) +#define SPITZ_IRQ_GPIO_BAT_COVER      PXA_GPIO_TO_IRQ(SPITZ_GPIO_BAT_COVER) +#define SPITZ_IRQ_GPIO_FATAL_BAT      PXA_GPIO_TO_IRQ(SPITZ_GPIO_FATAL_BAT) +#define SPITZ_IRQ_GPIO_CO             PXA_GPIO_TO_IRQ(SPITZ_GPIO_CO) +#define SPITZ_IRQ_GPIO_CF_IRQ         PXA_GPIO_TO_IRQ(SPITZ_GPIO_CF_IRQ) +#define SPITZ_IRQ_GPIO_CF_CD          PXA_GPIO_TO_IRQ(SPITZ_GPIO_CF_CD) +#define SPITZ_IRQ_GPIO_CF2_IRQ        PXA_GPIO_TO_IRQ(SPITZ_GPIO_CF2_IRQ) +#define SPITZ_IRQ_GPIO_nSD_INT        PXA_GPIO_TO_IRQ(SPITZ_GPIO_nSD_INT) +#define SPITZ_IRQ_GPIO_nSD_DETECT     PXA_GPIO_TO_IRQ(SPITZ_GPIO_nSD_DETECT)  /*   * Shared data structures diff --git a/arch/arm/mach-pxa/include/mach/system.h b/arch/arm/mach-pxa/include/mach/system.h deleted file mode 100644 index d1fce8b6d10..00000000000 --- a/arch/arm/mach-pxa/include/mach/system.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * arch/arm/mach-pxa/include/mach/system.h - * - * Author:	Nicolas Pitre - * Created:	Jun 15, 2001 - * Copyright:	MontaVista Software Inc. - * - * 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 <asm/proc-fns.h> -#include "hardware.h" -#include "pxa2xx-regs.h" - -static inline void arch_idle(void) -{ -	cpu_do_idle(); -} - - -void arch_reset(char mode, const char *cmd); diff --git a/arch/arm/mach-pxa/include/mach/timex.h b/arch/arm/mach-pxa/include/mach/timex.h deleted file mode 100644 index af6760a50e1..00000000000 --- a/arch/arm/mach-pxa/include/mach/timex.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * arch/arm/mach-pxa/include/mach/timex.h - * - * Author:	Nicolas Pitre - * Created:	Jun 15, 2001 - * Copyright:	MontaVista Software Inc. - * - * 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. - */ - -/* Various drivers are still using the constant of CLOCK_TICK_RATE, for - * those drivers to at least work, the definition is provided here. - * - * NOTE: this is no longer accurate when multiple processors and boards - * are selected, newer drivers should not depend on this any more.  Use - * either the clocksource/clockevent or get this at run-time by calling - * get_clock_tick_rate() (as defined in generic.c). - */ - -#if defined(CONFIG_PXA25x) -/* PXA250/210 timer base */ -#define CLOCK_TICK_RATE 3686400 -#elif defined(CONFIG_PXA27x) -/* PXA27x timer base */ -#ifdef CONFIG_MACH_MAINSTONE -#define CLOCK_TICK_RATE 3249600 -#else -#define CLOCK_TICK_RATE 3250000 -#endif -#else -#define CLOCK_TICK_RATE 3250000 -#endif diff --git a/arch/arm/mach-pxa/include/mach/tosa.h b/arch/arm/mach-pxa/include/mach/tosa.h index 1272c4b56ce..0497d95cef2 100644 --- a/arch/arm/mach-pxa/include/mach/tosa.h +++ b/arch/arm/mach-pxa/include/mach/tosa.h @@ -13,6 +13,8 @@  #ifndef _ASM_ARCH_TOSA_H_  #define _ASM_ARCH_TOSA_H_ 1 +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ +  /*  TOSA Chip selects  */  #define TOSA_LCDC_PHYS		PXA_CS4_PHYS  /* Internel Scoop */ @@ -24,7 +26,7 @@  /*   * SCOOP2 internal GPIOs   */ -#define TOSA_SCOOP_GPIO_BASE		NR_BUILTIN_GPIO +#define TOSA_SCOOP_GPIO_BASE		PXA_NR_BUILTIN_GPIO  #define TOSA_SCOOP_PXA_VCORE1		SCOOP_GPCR_PA11  #define TOSA_GPIO_TC6393XB_REST_IN	(TOSA_SCOOP_GPIO_BASE + 1)  #define TOSA_GPIO_IR_POWERDWN		(TOSA_SCOOP_GPIO_BASE + 2) @@ -42,7 +44,7 @@  /*   * SCOOP2 jacket GPIOs   */ -#define TOSA_SCOOP_JC_GPIO_BASE		(NR_BUILTIN_GPIO + 12) +#define TOSA_SCOOP_JC_GPIO_BASE		(PXA_NR_BUILTIN_GPIO + 12)  #define TOSA_GPIO_BT_LED		(TOSA_SCOOP_JC_GPIO_BASE + 0)  #define TOSA_GPIO_NOTE_LED		(TOSA_SCOOP_JC_GPIO_BASE + 1)  #define TOSA_GPIO_CHRG_ERR_LED		(TOSA_SCOOP_JC_GPIO_BASE + 2) @@ -59,7 +61,7 @@  /*   * TC6393XB GPIOs   */ -#define TOSA_TC6393XB_GPIO_BASE		(NR_BUILTIN_GPIO + 2 * 12) +#define TOSA_TC6393XB_GPIO_BASE		(PXA_NR_BUILTIN_GPIO + 2 * 12)  #define TOSA_GPIO_TG_ON			(TOSA_TC6393XB_GPIO_BASE + 0)  #define TOSA_GPIO_L_MUTE		(TOSA_TC6393XB_GPIO_BASE + 1) @@ -141,30 +143,30 @@  /*   * Interrupts   */ -#define TOSA_IRQ_GPIO_WAKEUP        	IRQ_GPIO(TOSA_GPIO_WAKEUP) -#define TOSA_IRQ_GPIO_AC_IN         	IRQ_GPIO(TOSA_GPIO_AC_IN) -#define TOSA_IRQ_GPIO_RECORD_BTN    	IRQ_GPIO(TOSA_GPIO_RECORD_BTN) -#define TOSA_IRQ_GPIO_SYNC          	IRQ_GPIO(TOSA_GPIO_SYNC) -#define TOSA_IRQ_GPIO_USB_IN        	IRQ_GPIO(TOSA_GPIO_USB_IN) -#define TOSA_IRQ_GPIO_JACKET_DETECT 	IRQ_GPIO(TOSA_GPIO_JACKET_DETECT) -#define TOSA_IRQ_GPIO_nSD_INT       	IRQ_GPIO(TOSA_GPIO_nSD_INT) -#define TOSA_IRQ_GPIO_nSD_DETECT    	IRQ_GPIO(TOSA_GPIO_nSD_DETECT) -#define TOSA_IRQ_GPIO_BAT1_CRG      	IRQ_GPIO(TOSA_GPIO_BAT1_CRG) -#define TOSA_IRQ_GPIO_CF_CD         	IRQ_GPIO(TOSA_GPIO_CF_CD) -#define TOSA_IRQ_GPIO_BAT0_CRG      	IRQ_GPIO(TOSA_GPIO_BAT0_CRG) -#define TOSA_IRQ_GPIO_TC6393XB_INT    	IRQ_GPIO(TOSA_GPIO_TC6393XB_INT) -#define TOSA_IRQ_GPIO_BAT0_LOW      	IRQ_GPIO(TOSA_GPIO_BAT0_LOW) -#define TOSA_IRQ_GPIO_EAR_IN        	IRQ_GPIO(TOSA_GPIO_EAR_IN) -#define TOSA_IRQ_GPIO_CF_IRQ        	IRQ_GPIO(TOSA_GPIO_CF_IRQ) -#define TOSA_IRQ_GPIO_ON_KEY        	IRQ_GPIO(TOSA_GPIO_ON_KEY) -#define TOSA_IRQ_GPIO_VGA_LINE      	IRQ_GPIO(TOSA_GPIO_VGA_LINE) -#define TOSA_IRQ_GPIO_TP_INT        	IRQ_GPIO(TOSA_GPIO_TP_INT) -#define TOSA_IRQ_GPIO_JC_CF_IRQ     	IRQ_GPIO(TOSA_GPIO_JC_CF_IRQ) -#define TOSA_IRQ_GPIO_BAT_LOCKED    	IRQ_GPIO(TOSA_GPIO_BAT_LOCKED) -#define TOSA_IRQ_GPIO_BAT1_LOW      	IRQ_GPIO(TOSA_GPIO_BAT1_LOW) -#define TOSA_IRQ_GPIO_KEY_SENSE(a)  	IRQ_GPIO(69+(a)) - -#define TOSA_IRQ_GPIO_MAIN_BAT_LOW 	IRQ_GPIO(TOSA_GPIO_MAIN_BAT_LOW) +#define TOSA_IRQ_GPIO_WAKEUP        	PXA_GPIO_TO_IRQ(TOSA_GPIO_WAKEUP) +#define TOSA_IRQ_GPIO_AC_IN         	PXA_GPIO_TO_IRQ(TOSA_GPIO_AC_IN) +#define TOSA_IRQ_GPIO_RECORD_BTN    	PXA_GPIO_TO_IRQ(TOSA_GPIO_RECORD_BTN) +#define TOSA_IRQ_GPIO_SYNC          	PXA_GPIO_TO_IRQ(TOSA_GPIO_SYNC) +#define TOSA_IRQ_GPIO_USB_IN        	PXA_GPIO_TO_IRQ(TOSA_GPIO_USB_IN) +#define TOSA_IRQ_GPIO_JACKET_DETECT 	PXA_GPIO_TO_IRQ(TOSA_GPIO_JACKET_DETECT) +#define TOSA_IRQ_GPIO_nSD_INT       	PXA_GPIO_TO_IRQ(TOSA_GPIO_nSD_INT) +#define TOSA_IRQ_GPIO_nSD_DETECT    	PXA_GPIO_TO_IRQ(TOSA_GPIO_nSD_DETECT) +#define TOSA_IRQ_GPIO_BAT1_CRG      	PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT1_CRG) +#define TOSA_IRQ_GPIO_CF_CD         	PXA_GPIO_TO_IRQ(TOSA_GPIO_CF_CD) +#define TOSA_IRQ_GPIO_BAT0_CRG      	PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT0_CRG) +#define TOSA_IRQ_GPIO_TC6393XB_INT    	PXA_GPIO_TO_IRQ(TOSA_GPIO_TC6393XB_INT) +#define TOSA_IRQ_GPIO_BAT0_LOW      	PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT0_LOW) +#define TOSA_IRQ_GPIO_EAR_IN        	PXA_GPIO_TO_IRQ(TOSA_GPIO_EAR_IN) +#define TOSA_IRQ_GPIO_CF_IRQ        	PXA_GPIO_TO_IRQ(TOSA_GPIO_CF_IRQ) +#define TOSA_IRQ_GPIO_ON_KEY        	PXA_GPIO_TO_IRQ(TOSA_GPIO_ON_KEY) +#define TOSA_IRQ_GPIO_VGA_LINE      	PXA_GPIO_TO_IRQ(TOSA_GPIO_VGA_LINE) +#define TOSA_IRQ_GPIO_TP_INT        	PXA_GPIO_TO_IRQ(TOSA_GPIO_TP_INT) +#define TOSA_IRQ_GPIO_JC_CF_IRQ     	PXA_GPIO_TO_IRQ(TOSA_GPIO_JC_CF_IRQ) +#define TOSA_IRQ_GPIO_BAT_LOCKED    	PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT_LOCKED) +#define TOSA_IRQ_GPIO_BAT1_LOW      	PXA_GPIO_TO_IRQ(TOSA_GPIO_BAT1_LOW) +#define TOSA_IRQ_GPIO_KEY_SENSE(a)  	PXA_GPIO_TO_IRQ(69+(a)) + +#define TOSA_IRQ_GPIO_MAIN_BAT_LOW 	PXA_GPIO_TO_IRQ(TOSA_GPIO_MAIN_BAT_LOW)  #define TOSA_KEY_SYNC		KEY_102ND /* ??? */ diff --git a/arch/arm/mach-pxa/include/mach/trizeps4.h b/arch/arm/mach-pxa/include/mach/trizeps4.h index 903e1a2e664..ae3ca013afa 100644 --- a/arch/arm/mach-pxa/include/mach/trizeps4.h +++ b/arch/arm/mach-pxa/include/mach/trizeps4.h @@ -10,6 +10,8 @@  #ifndef _TRIPEPS4_H_  #define _TRIPEPS4_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ +  /* physical memory regions */  #define TRIZEPS4_FLASH_PHYS	(PXA_CS0_PHYS)  /* Flash region */  #define TRIZEPS4_DISK_PHYS	(PXA_CS1_PHYS)  /* Disk On Chip region */ @@ -43,30 +45,30 @@  /* Ethernet Controller Davicom DM9000 */  #define GPIO_DM9000		101 -#define TRIZEPS4_ETH_IRQ	IRQ_GPIO(GPIO_DM9000) +#define TRIZEPS4_ETH_IRQ	PXA_GPIO_TO_IRQ(GPIO_DM9000)  /* UCB1400 audio / TS-controller */  #define GPIO_UCB1400		1 -#define TRIZEPS4_UCB1400_IRQ	IRQ_GPIO(GPIO_UCB1400) +#define TRIZEPS4_UCB1400_IRQ	PXA_GPIO_TO_IRQ(GPIO_UCB1400)  /* PCMCIA socket Compact Flash */  #define GPIO_PCD		11		/* PCMCIA Card Detect */ -#define TRIZEPS4_CD_IRQ		IRQ_GPIO(GPIO_PCD) +#define TRIZEPS4_CD_IRQ		PXA_GPIO_TO_IRQ(GPIO_PCD)  #define GPIO_PRDY		13		/* READY / nINT */ -#define TRIZEPS4_READY_NINT	IRQ_GPIO(GPIO_PRDY) +#define TRIZEPS4_READY_NINT	PXA_GPIO_TO_IRQ(GPIO_PRDY)  /* MMC socket */  #define GPIO_MMC_DET		12 -#define TRIZEPS4_MMC_IRQ	IRQ_GPIO(GPIO_MMC_DET) +#define TRIZEPS4_MMC_IRQ	PXA_GPIO_TO_IRQ(GPIO_MMC_DET)  /* DOC NAND chip */  #define GPIO_DOC_LOCK           94  #define GPIO_DOC_IRQ            93 -#define TRIZEPS4_DOC_IRQ        IRQ_GPIO(GPIO_DOC_IRQ) +#define TRIZEPS4_DOC_IRQ        PXA_GPIO_TO_IRQ(GPIO_DOC_IRQ)  /* SPI interface */  #define GPIO_SPI                53 -#define TRIZEPS4_SPI_IRQ        IRQ_GPIO(GPIO_SPI) +#define TRIZEPS4_SPI_IRQ        PXA_GPIO_TO_IRQ(GPIO_SPI)  /* LEDS using tx2 / rx2 */  #define GPIO_SYS_BUSY_LED	46 @@ -74,7 +76,7 @@  /* Off-module PIC on ConXS board */  #define GPIO_PIC		0 -#define TRIZEPS4_PIC_IRQ	IRQ_GPIO(GPIO_PIC) +#define TRIZEPS4_PIC_IRQ	PXA_GPIO_TO_IRQ(GPIO_PIC)  #ifdef CONFIG_MACH_TRIZEPS_CONXS  /* for CONXS base board define these registers */ diff --git a/arch/arm/mach-pxa/include/mach/udc.h b/arch/arm/mach-pxa/include/mach/udc.h index 2f82332e81a..9a827e32db9 100644 --- a/arch/arm/mach-pxa/include/mach/udc.h +++ b/arch/arm/mach-pxa/include/mach/udc.h @@ -2,7 +2,7 @@   * arch/arm/mach-pxa/include/mach/udc.h   *   */ -#include <asm/mach/udc_pxa2xx.h> +#include <linux/platform_data/pxa2xx_udc.h>  extern void pxa_set_udc_info(struct pxa2xx_udc_mach_info *info); diff --git a/arch/arm/mach-pxa/include/mach/uncompress.h b/arch/arm/mach-pxa/include/mach/uncompress.h index 759b851ec98..8c27757e68f 100644 --- a/arch/arm/mach-pxa/include/mach/uncompress.h +++ b/arch/arm/mach-pxa/include/mach/uncompress.h @@ -16,9 +16,9 @@  #define BTUART_BASE	(0x40200000)  #define STUART_BASE	(0x40700000) -static unsigned long uart_base; -static unsigned int uart_shift; -static unsigned int uart_is_pxa; +unsigned long uart_base; +unsigned int uart_shift; +unsigned int uart_is_pxa;  static inline unsigned char uart_read(int offset)  { @@ -72,8 +72,3 @@ static inline void arch_decomp_setup(void)  		uart_is_pxa = 0;  	}  } - -/* - * nothing to do - */ -#define arch_decomp_wdog() diff --git a/arch/arm/mach-pxa/include/mach/vmalloc.h b/arch/arm/mach-pxa/include/mach/vmalloc.h deleted file mode 100644 index bfecfbf5f46..00000000000 --- a/arch/arm/mach-pxa/include/mach/vmalloc.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * arch/arm/mach-pxa/include/mach/vmalloc.h - * - * Author:	Nicolas Pitre - * Copyright:	(C) 2001 MontaVista Software Inc. - * - * 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. - */ -#define VMALLOC_END       (0xe8000000UL) diff --git a/arch/arm/mach-pxa/include/mach/z2.h b/arch/arm/mach-pxa/include/mach/z2.h index 8835c16bc82..7b0f71ef316 100644 --- a/arch/arm/mach-pxa/include/mach/z2.h +++ b/arch/arm/mach-pxa/include/mach/z2.h @@ -25,8 +25,7 @@  #define	GPIO98_ZIPITZ2_LID_BUTTON	98  /* Libertas GSPI8686 WiFi */ -#define	GPIO14_ZIPITZ2_WIFI_RESET	14 -#define	GPIO15_ZIPITZ2_WIFI_POWER	15 +#define	GPIO14_ZIPITZ2_WIFI_POWER	14  #define	GPIO24_ZIPITZ2_WIFI_CS		24  #define	GPIO36_ZIPITZ2_WIFI_IRQ		36 diff --git a/arch/arm/mach-pxa/include/mach/zeus.h b/arch/arm/mach-pxa/include/mach/zeus.h index faa408ab7ad..56024f81d57 100644 --- a/arch/arm/mach-pxa/include/mach/zeus.h +++ b/arch/arm/mach-pxa/include/mach/zeus.h @@ -64,11 +64,11 @@  /*   * CPLD registers: - * Only 4 registers, but spreaded over a 32MB address space. + * Only 4 registers, but spread over a 32MB address space.   * Be gentle, and remap that over 32kB...   */ -#define ZEUS_CPLD		(0xf0000000) +#define ZEUS_CPLD		IOMEM(0xf0000000)  #define ZEUS_CPLD_VERSION	(ZEUS_CPLD + 0x0000)  #define ZEUS_CPLD_ISA_IRQ	(ZEUS_CPLD + 0x1000)  #define ZEUS_CPLD_CONTROL	(ZEUS_CPLD + 0x2000) @@ -76,7 +76,7 @@  /* CPLD register bits */  #define ZEUS_CPLD_CONTROL_CF_RST        0x01 -#define ZEUS_PC104IO		(0xf1000000) +#define ZEUS_PC104IO		IOMEM(0xf1000000)  #define ZEUS_SRAM_SIZE		(256 * 1024) diff --git a/arch/arm/mach-pxa/include/mach/zylonite.h b/arch/arm/mach-pxa/include/mach/zylonite.h index ea24998b923..ecca976f03d 100644 --- a/arch/arm/mach-pxa/include/mach/zylonite.h +++ b/arch/arm/mach-pxa/include/mach/zylonite.h @@ -19,7 +19,7 @@ extern int wm9713_irq;  extern int lcd_id;  extern int lcd_orientation; -#ifdef CONFIG_CPU_PXA300 +#ifdef CONFIG_MACH_ZYLONITE300  extern void zylonite_pxa300_init(void);  #else  static inline void zylonite_pxa300_init(void) @@ -29,7 +29,7 @@ static inline void zylonite_pxa300_init(void)  }  #endif -#ifdef CONFIG_CPU_PXA320 +#ifdef CONFIG_MACH_ZYLONITE320  extern void zylonite_pxa320_init(void);  #else  static inline void zylonite_pxa320_init(void)  | 
