From 56b11288cb92104d3589930efdc7d0f50b8f4328 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 2 Jan 2008 00:54:49 +0100 Subject: [ARM] 4735/1: Unbreak pxa25x suspend/resume Suspend/resume on the pxa25x was fairly obviously broken in revision 711be5ccfe9a02ba560aa918a008c31ea4760163. This patch fixes the damage by adding back the missing code. Signed-off-by: Richard Purdie Acked-by: Eric Miao Signed-off-by: Russell King --- arch/arm/mach-pxa/pxa25x.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index dcd81f8d083..9732d5d9466 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c @@ -178,13 +178,19 @@ static void pxa25x_cpu_pm_save(unsigned long *sleep_save) SAVE(GAFR1_L); SAVE(GAFR1_U); SAVE(GAFR2_L); SAVE(GAFR2_U); - SAVE(ICMR); + SAVE(ICMR); ICMR = 0; SAVE(CKEN); SAVE(PSTR); + + /* Clear GPIO transition detect bits */ + GEDR0 = GEDR0; GEDR1 = GEDR1; GEDR2 = GEDR2; } static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) { + /* ensure not to come back here if it wasn't intended */ + PSPR = 0; + /* restore registers */ RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2); RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); @@ -195,7 +201,12 @@ static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2); RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); + PSSR = PSSR_RDH | PSSR_PH; + RESTORE(CKEN); + + ICLR = 0; + ICCR = 1; RESTORE(ICMR); RESTORE(PSTR); } -- cgit v1.2.3-70-g09d2 From 430cb436103ce1b58cb80e7c3d44f4d4a8110caa Mon Sep 17 00:00:00 2001 From: Jan Altenberg Date: Mon, 10 Dec 2007 10:06:40 +0100 Subject: [ARM] 4691/1: add missing i2c_board_info struct for at91rm9200 - Add missing i2c_board_info struct for at91rm9200 Signed-off-by: Jan Altenberg Acked-by: Andrew Victor Signed-off-by: Russell King --- arch/arm/mach-at91/board-ek.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm/mach-at91/board-ek.c b/arch/arm/mach-at91/board-ek.c index d05b1b2be9f..53a5ef9e72e 100644 --- a/arch/arm/mach-at91/board-ek.c +++ b/arch/arm/mach-at91/board-ek.c @@ -109,6 +109,15 @@ static struct spi_board_info ek_spi_devices[] = { #endif }; +static struct i2c_board_info __initdata ek_i2c_devices[] = { + { + I2C_BOARD_INFO("ics1523", 0x26), + }, + { + I2C_BOARD_INFO("dac3550", 0x4d), + } +}; + #define EK_FLASH_BASE AT91_CHIPSELECT_0 #define EK_FLASH_SIZE 0x200000 -- cgit v1.2.3-70-g09d2