diff options
Diffstat (limited to 'arch/arm/mach-sa1100')
| -rw-r--r-- | arch/arm/mach-sa1100/Kconfig | 4 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/badge4.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/collie.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/cpu-sa1110.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/include/mach/collie.h | 7 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/include/mach/irqs.h | 91 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/jornada720.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/jornada720_ssp.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/neponset.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-sa1100/time.c | 8 | 
10 files changed, 29 insertions, 105 deletions
diff --git a/arch/arm/mach-sa1100/Kconfig b/arch/arm/mach-sa1100/Kconfig index b17d52f7cc4..fd4c52b7ccb 100644 --- a/arch/arm/mach-sa1100/Kconfig +++ b/arch/arm/mach-sa1100/Kconfig @@ -57,7 +57,7 @@ config SA1100_COLLIE  config SA1100_H3100  	bool "Compaq iPAQ H3100"  	select HTC_EGPIO -	select CPU_FREQ_SA1100 +	select CPU_FREQ_SA1110  	help  	  Say Y here if you intend to run this kernel on the Compaq iPAQ  	  H3100 handheld computer.  Information about this machine and the @@ -68,7 +68,7 @@ config SA1100_H3100  config SA1100_H3600  	bool "Compaq iPAQ H3600/H3700"  	select HTC_EGPIO -	select CPU_FREQ_SA1100 +	select CPU_FREQ_SA1110  	help  	  Say Y here if you intend to run this kernel on the Compaq iPAQ  	  H3600 handheld computer.  Information about this machine and the diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c index 051ec0f0023..259cb2c15ff 100644 --- a/arch/arm/mach-sa1100/badge4.c +++ b/arch/arm/mach-sa1100/badge4.c @@ -51,6 +51,10 @@ static struct resource sa1111_resources[] = {  	},  }; +static struct sa1111_platform_data sa1111_info = { +	.irq_base	= IRQ_BOARD_END, +}; +  static u64 sa1111_dmamask = 0xffffffffUL;  static struct platform_device sa1111_device = { @@ -59,6 +63,7 @@ static struct platform_device sa1111_device = {  	.dev		= {  		.dma_mask = &sa1111_dmamask,  		.coherent_dma_mask = 0xffffffff, +		.platform_data = &sa1111_info,  	},  	.num_resources	= ARRAY_SIZE(sa1111_resources),  	.resource	= sa1111_resources, diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index 9982c5c28ed..5d5f330c5d9 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c @@ -234,6 +234,10 @@ static struct resource locomo_resources[] = {  	},  }; +static struct locomo_platform_data locomo_info = { +	.irq_base	= IRQ_BOARD_START, +}; +  struct platform_device collie_locomo_device = {  	.name		= "locomo",  	.id		= 0, diff --git a/arch/arm/mach-sa1100/cpu-sa1110.c b/arch/arm/mach-sa1100/cpu-sa1110.c index 63b32b68b29..7252874d328 100644 --- a/arch/arm/mach-sa1100/cpu-sa1110.c +++ b/arch/arm/mach-sa1100/cpu-sa1110.c @@ -363,6 +363,9 @@ static int __init sa1110_clk_init(void)  	struct sdram_params *sdram;  	const char *name = sdram_name; +	if (!cpu_is_sa1110()) +		return -ENODEV; +  	if (!name[0]) {  		if (machine_is_assabet())  			name = "TC59SM716-CL3"; diff --git a/arch/arm/mach-sa1100/include/mach/collie.h b/arch/arm/mach-sa1100/include/mach/collie.h index 71a0b3fdcc8..52acda7061b 100644 --- a/arch/arm/mach-sa1100/include/mach/collie.h +++ b/arch/arm/mach-sa1100/include/mach/collie.h @@ -72,13 +72,6 @@  #define COLLIE_IRQ_GPIO_GA_INT		IRQ_GPIO25  #define COLLIE_IRQ_GPIO_MAIN_BAT_LOW	IRQ_GPIO26 -#define COLLIE_LCM_IRQ_GPIO_RTS		IRQ_LOCOMO_GPIO0 -#define COLLIE_LCM_IRQ_GPIO_CTS		IRQ_LOCOMO_GPIO1 -#define COLLIE_LCM_IRQ_GPIO_DSR		IRQ_LOCOMO_GPIO2 -#define COLLIE_LCM_IRQ_GPIO_DTR		IRQ_LOCOMO_GPIO3 -#define COLLIE_LCM_IRQ_GPIO_nSD_DETECT	IRQ_LOCOMO_GPIO13 -#define COLLIE_LCM_IRQ_GPIO_nSD_WP	IRQ_LOCOMO_GPIO14 -  /* GPIO's on the TC35143AF (Toshiba Analog Frontend) */  #define COLLIE_TC35143_GPIO_BASE	(GPIO_MAX + 13)  #define COLLIE_TC35143_GPIO_VERSION0    UCB_IO_0 diff --git a/arch/arm/mach-sa1100/include/mach/irqs.h b/arch/arm/mach-sa1100/include/mach/irqs.h index ae81f80b0cf..8c8845b5ae5 100644 --- a/arch/arm/mach-sa1100/include/mach/irqs.h +++ b/arch/arm/mach-sa1100/include/mach/irqs.h @@ -68,93 +68,17 @@  #define IRQ_BOARD_START		49  #define IRQ_BOARD_END		65 -#define IRQ_SA1111_START	(IRQ_BOARD_END) -#define IRQ_GPAIN0		(IRQ_BOARD_END + 0) -#define IRQ_GPAIN1		(IRQ_BOARD_END + 1) -#define IRQ_GPAIN2		(IRQ_BOARD_END + 2) -#define IRQ_GPAIN3		(IRQ_BOARD_END + 3) -#define IRQ_GPBIN0		(IRQ_BOARD_END + 4) -#define IRQ_GPBIN1		(IRQ_BOARD_END + 5) -#define IRQ_GPBIN2		(IRQ_BOARD_END + 6) -#define IRQ_GPBIN3		(IRQ_BOARD_END + 7) -#define IRQ_GPBIN4		(IRQ_BOARD_END + 8) -#define IRQ_GPBIN5		(IRQ_BOARD_END + 9) -#define IRQ_GPCIN0		(IRQ_BOARD_END + 10) -#define IRQ_GPCIN1		(IRQ_BOARD_END + 11) -#define IRQ_GPCIN2		(IRQ_BOARD_END + 12) -#define IRQ_GPCIN3		(IRQ_BOARD_END + 13) -#define IRQ_GPCIN4		(IRQ_BOARD_END + 14) -#define IRQ_GPCIN5		(IRQ_BOARD_END + 15) -#define IRQ_GPCIN6		(IRQ_BOARD_END + 16) -#define IRQ_GPCIN7		(IRQ_BOARD_END + 17) -#define IRQ_MSTXINT		(IRQ_BOARD_END + 18) -#define IRQ_MSRXINT		(IRQ_BOARD_END + 19) -#define IRQ_MSSTOPERRINT	(IRQ_BOARD_END + 20) -#define IRQ_TPTXINT		(IRQ_BOARD_END + 21) -#define IRQ_TPRXINT		(IRQ_BOARD_END + 22) -#define IRQ_TPSTOPERRINT	(IRQ_BOARD_END + 23) -#define SSPXMTINT		(IRQ_BOARD_END + 24) -#define SSPRCVINT		(IRQ_BOARD_END + 25) -#define SSPROR			(IRQ_BOARD_END + 26) -#define AUDXMTDMADONEA		(IRQ_BOARD_END + 32) -#define AUDRCVDMADONEA		(IRQ_BOARD_END + 33) -#define AUDXMTDMADONEB		(IRQ_BOARD_END + 34) -#define AUDRCVDMADONEB		(IRQ_BOARD_END + 35) -#define AUDTFSR			(IRQ_BOARD_END + 36) -#define AUDRFSR			(IRQ_BOARD_END + 37) -#define AUDTUR			(IRQ_BOARD_END + 38) -#define AUDROR			(IRQ_BOARD_END + 39) -#define AUDDTS			(IRQ_BOARD_END + 40) -#define AUDRDD			(IRQ_BOARD_END + 41) -#define AUDSTO			(IRQ_BOARD_END + 42) -#define IRQ_USBPWR		(IRQ_BOARD_END + 43) -#define IRQ_HCIM		(IRQ_BOARD_END + 44) -#define IRQ_HCIBUFFACC		(IRQ_BOARD_END + 45) -#define IRQ_HCIRMTWKP		(IRQ_BOARD_END + 46) -#define IRQ_NHCIMFCIR		(IRQ_BOARD_END + 47) -#define IRQ_USB_PORT_RESUME	(IRQ_BOARD_END + 48) -#define IRQ_S0_READY_NINT	(IRQ_BOARD_END + 49) -#define IRQ_S1_READY_NINT	(IRQ_BOARD_END + 50) -#define IRQ_S0_CD_VALID		(IRQ_BOARD_END + 51) -#define IRQ_S1_CD_VALID		(IRQ_BOARD_END + 52) -#define IRQ_S0_BVD1_STSCHG	(IRQ_BOARD_END + 53) -#define IRQ_S1_BVD1_STSCHG	(IRQ_BOARD_END + 54) - -#define IRQ_LOCOMO_START	(IRQ_BOARD_END) -#define IRQ_LOCOMO_KEY		(IRQ_BOARD_END + 0) -#define IRQ_LOCOMO_GPIO0	(IRQ_BOARD_END + 1) -#define IRQ_LOCOMO_GPIO1	(IRQ_BOARD_END + 2) -#define IRQ_LOCOMO_GPIO2	(IRQ_BOARD_END + 3) -#define IRQ_LOCOMO_GPIO3	(IRQ_BOARD_END + 4) -#define IRQ_LOCOMO_GPIO4	(IRQ_BOARD_END + 5) -#define IRQ_LOCOMO_GPIO5	(IRQ_BOARD_END + 6) -#define IRQ_LOCOMO_GPIO6	(IRQ_BOARD_END + 7) -#define IRQ_LOCOMO_GPIO7	(IRQ_BOARD_END + 8) -#define IRQ_LOCOMO_GPIO8	(IRQ_BOARD_END + 9) -#define IRQ_LOCOMO_GPIO9	(IRQ_BOARD_END + 10) -#define IRQ_LOCOMO_GPIO10	(IRQ_BOARD_END + 11) -#define IRQ_LOCOMO_GPIO11	(IRQ_BOARD_END + 12) -#define IRQ_LOCOMO_GPIO12	(IRQ_BOARD_END + 13) -#define IRQ_LOCOMO_GPIO13	(IRQ_BOARD_END + 14) -#define IRQ_LOCOMO_GPIO14	(IRQ_BOARD_END + 15) -#define IRQ_LOCOMO_GPIO15	(IRQ_BOARD_END + 16) -#define IRQ_LOCOMO_LT		(IRQ_BOARD_END + 17) -#define IRQ_LOCOMO_SPI_RFR	(IRQ_BOARD_END + 18) -#define IRQ_LOCOMO_SPI_RFW	(IRQ_BOARD_END + 19) -#define IRQ_LOCOMO_SPI_REND	(IRQ_BOARD_END + 20) -#define IRQ_LOCOMO_SPI_TEND	(IRQ_BOARD_END + 21) -  /*   * Figure out the MAX IRQ number.   *   * If we have an SA1111, the max IRQ is S1_BVD1_STSCHG+1. - * If we have an LoCoMo, the max IRQ is IRQ_LOCOMO_SPI_TEND+1 + * If we have an LoCoMo, the max IRQ is IRQ_BOARD_START + 4   * Otherwise, we have the standard IRQs only.   */  #ifdef CONFIG_SA1111 -#define NR_IRQS			(IRQ_S1_BVD1_STSCHG + 1) -#elif defined(CONFIG_SHARP_LOCOMO) -#define NR_IRQS			(IRQ_LOCOMO_SPI_TEND + 1) +#define NR_IRQS			(IRQ_BOARD_END + 55) +#elif defined(CONFIG_SHARPSL_LOCOMO) +#define NR_IRQS			(IRQ_BOARD_START + 4)  #else  #define NR_IRQS			(IRQ_BOARD_START)  #endif @@ -166,10 +90,3 @@  #define IRQ_NEPONSET_SMC9196	(IRQ_BOARD_START + 0)  #define IRQ_NEPONSET_USAR	(IRQ_BOARD_START + 1)  #define IRQ_NEPONSET_SA1111	(IRQ_BOARD_START + 2) - -/* LoCoMo Interrupts (CONFIG_SHARP_LOCOMO) */ -#define IRQ_LOCOMO_KEY_BASE	(IRQ_BOARD_START + 0) -#define IRQ_LOCOMO_GPIO_BASE	(IRQ_BOARD_START + 1) -#define IRQ_LOCOMO_LT_BASE	(IRQ_BOARD_START + 2) -#define IRQ_LOCOMO_SPI_BASE	(IRQ_BOARD_START + 3) - diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c index 13ebd2d99bf..d3ec620618f 100644 --- a/arch/arm/mach-sa1100/jornada720.c +++ b/arch/arm/mach-sa1100/jornada720.c @@ -208,6 +208,10 @@ static struct resource sa1111_resources[] = {  	},  }; +static struct sa1111_platform_data sa1111_info = { +	.irq_base	= IRQ_BOARD_END, +}; +  static u64 sa1111_dmamask = 0xffffffffUL;  static struct platform_device sa1111_device = { @@ -216,6 +220,7 @@ static struct platform_device sa1111_device = {  	.dev		= {  		.dma_mask = &sa1111_dmamask,  		.coherent_dma_mask = 0xffffffff, +		.platform_data = &sa1111_info,  	},  	.num_resources	= ARRAY_SIZE(sa1111_resources),  	.resource	= sa1111_resources, diff --git a/arch/arm/mach-sa1100/jornada720_ssp.c b/arch/arm/mach-sa1100/jornada720_ssp.c index 9b6dee5d16d..9d490c66891 100644 --- a/arch/arm/mach-sa1100/jornada720_ssp.c +++ b/arch/arm/mach-sa1100/jornada720_ssp.c @@ -18,7 +18,6 @@  #include <linux/module.h>  #include <linux/platform_device.h>  #include <linux/sched.h> -#include <linux/slab.h>  #include <mach/hardware.h>  #include <mach/jornada720.h> diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c index 6ccd175bc4c..c601a75a333 100644 --- a/arch/arm/mach-sa1100/neponset.c +++ b/arch/arm/mach-sa1100/neponset.c @@ -8,7 +8,6 @@  #include <linux/ioport.h>  #include <linux/serial_core.h>  #include <linux/platform_device.h> -#include <linux/slab.h>  #include <mach/hardware.h>  #include <asm/mach-types.h> @@ -241,6 +240,10 @@ static struct resource sa1111_resources[] = {  	},  }; +static struct sa1111_platform_data sa1111_info = { +	.irq_base	= IRQ_BOARD_END, +}; +  static u64 sa1111_dmamask = 0xffffffffUL;  static struct platform_device sa1111_device = { @@ -249,6 +252,7 @@ static struct platform_device sa1111_device = {  	.dev		= {  		.dma_mask = &sa1111_dmamask,  		.coherent_dma_mask = 0xffffffff, +		.platform_data = &sa1111_info,  	},  	.num_resources	= ARRAY_SIZE(sa1111_resources),  	.resource	= sa1111_resources, diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c index b9cbb56d6e9..74b6e0e570b 100644 --- a/arch/arm/mach-sa1100/time.c +++ b/arch/arm/mach-sa1100/time.c @@ -35,14 +35,12 @@ static irqreturn_t sa1100_ost0_interrupt(int irq, void *dev_id)  static int  sa1100_osmr0_set_next_event(unsigned long delta, struct clock_event_device *c)  { -	unsigned long flags, next, oscr; +	unsigned long next, oscr; -	raw_local_irq_save(flags);  	OIER |= OIER_E0;  	next = OSCR + delta;  	OSMR0 = next;  	oscr = OSCR; -	raw_local_irq_restore(flags);  	return (signed)(next - oscr) <= MIN_OSCR_DELTA ? -ETIME : 0;  } @@ -50,16 +48,12 @@ sa1100_osmr0_set_next_event(unsigned long delta, struct clock_event_device *c)  static void  sa1100_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *c)  { -	unsigned long flags; -  	switch (mode) {  	case CLOCK_EVT_MODE_ONESHOT:  	case CLOCK_EVT_MODE_UNUSED:  	case CLOCK_EVT_MODE_SHUTDOWN: -		raw_local_irq_save(flags);  		OIER &= ~OIER_E0;  		OSSR = OSSR_M0; -		raw_local_irq_restore(flags);  		break;  	case CLOCK_EVT_MODE_RESUME:  |