Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] ARM: 2764/1: S3C24XX - Common PM functions for Simtec boards

Patch from Ben Dooks

All current S3C24XX implementations from Simtec share the same
requirements for suspend/resume information.
This patch moves the save code out of the mach-bast.c file,
and into it's own so it can be shared by all the current
Simtec S3C24XX implementations.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Ben Dooks and committed by
Russell King
f705b1ae 99a0616b

+75 -35
+5
arch/arm/mach-s3c2410/Kconfig
··· 154 154 the CRC data block will take more memory, but wil identify any 155 155 faults with better precision. 156 156 157 + config PM_SIMTEC 158 + bool 159 + depends on PM && (ARCH_BAST || MACH_VR1000) 160 + default y 161 + 157 162 config S3C2410_LOWLEVEL_UART_PORT 158 163 int "S3C2410 UART to use for low-level messages" 159 164 default 0
+1
arch/arm/mach-s3c2410/Makefile
··· 18 18 # Power Management support 19 19 20 20 obj-$(CONFIG_PM) += pm.o sleep.o 21 + obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o 21 22 22 23 # S3C2440 support 23 24
+4 -35
arch/arm/mach-s3c2410/mach-bast.c
··· 27 27 * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA 28 28 * 14-Mar-2006 BJD Updated for __iomem changes 29 29 * 22-Jun-2006 BJD Added DM9000 platform information 30 + * 28-Jun-2006 BJD Moved pm functionality out to common code 30 31 */ 31 32 32 33 #include <linux/kernel.h> ··· 68 67 #include "devs.h" 69 68 #include "cpu.h" 70 69 #include "usb-simtec.h" 71 - #include "pm.h" 72 70 73 71 #define COPYRIGHT ", (c) 2004-2005 Simtec Electronics" 74 72 ··· 405 405 usb_simtec_init(); 406 406 } 407 407 408 - void __init bast_init_irq(void) 409 - { 410 - s3c24xx_init_irq(); 411 - } 412 - 413 - #ifdef CONFIG_PM 414 - 415 - /* bast_init_machine 416 - * 417 - * enable the power management functions for the EB2410ITX 418 - */ 419 - 420 - static __init void bast_init_machine(void) 421 - { 422 - unsigned long gstatus4; 423 - 424 - printk(KERN_INFO "BAST Power Manangement" COPYRIGHT "\n"); 425 - 426 - gstatus4 = (__raw_readl(S3C2410_BANKCON7) & 0x3) << 30; 427 - gstatus4 |= (__raw_readl(S3C2410_BANKCON6) & 0x3) << 28; 428 - gstatus4 |= (__raw_readl(S3C2410_BANKSIZE) & S3C2410_BANKSIZE_MASK); 429 - 430 - __raw_writel(gstatus4, S3C2410_GSTATUS4); 431 - 432 - s3c2410_pm_init(); 433 - } 434 - 435 - #else 436 - #define bast_init_machine NULL 437 - #endif 438 - 439 408 440 409 MACHINE_START(BAST, "Simtec-BAST") 441 410 MAINTAINER("Ben Dooks <ben@simtec.co.uk>") 442 411 BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART) 443 412 BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) 444 - MAPIO(bast_map_io) 445 - INITIRQ(bast_init_irq) 446 - .init_machine = bast_init_machine, 413 + 414 + .map_io = bast_map_io, 415 + .init_irq = s3c24xx_init_irq, 447 416 .timer = &s3c24xx_timer, 448 417 MACHINE_END
+65
arch/arm/mach-s3c2410/pm-simtec.c
··· 1 + /* linux/arch/arm/mach-s3c2410/pm-simtec.c 2 + * 3 + * Copyright (c) 2004 Simtec Electronics 4 + * Ben Dooks <ben@simtec.co.uk> 5 + * 6 + * http://armlinux.simtec.co.uk/ 7 + * 8 + * Power Management helpers for Simtec S3C24XX implementations 9 + * 10 + * This program is free software; you can redistribute it and/or modify 11 + * it under the terms of the GNU General Public License version 2 as 12 + * published by the Free Software Foundation. 13 + */ 14 + 15 + #include <linux/kernel.h> 16 + #include <linux/types.h> 17 + #include <linux/interrupt.h> 18 + #include <linux/list.h> 19 + #include <linux/timer.h> 20 + #include <linux/init.h> 21 + #include <linux/device.h> 22 + 23 + #include <asm/mach/arch.h> 24 + #include <asm/mach/map.h> 25 + 26 + #include <asm/hardware.h> 27 + #include <asm/io.h> 28 + 29 + #include <asm/arch/map.h> 30 + #include <asm/arch/regs-serial.h> 31 + #include <asm/arch/regs-gpio.h> 32 + #include <asm/arch/regs-mem.h> 33 + 34 + #include <asm/mach-types.h> 35 + 36 + #include "pm.h" 37 + 38 + #define COPYRIGHT ", (c) 2005 Simtec Electronics" 39 + 40 + /* pm_simtec_init 41 + * 42 + * enable the power management functions 43 + */ 44 + 45 + static __init int pm_simtec_init(void) 46 + { 47 + unsigned long gstatus4; 48 + 49 + /* check which machine we are running on */ 50 + 51 + if (!machine_is_bast() && !machine_is_vr1000()) 52 + return 0; 53 + 54 + printk(KERN_INFO "Simtec Board Power Manangement" COPYRIGHT "\n"); 55 + 56 + gstatus4 = (__raw_readl(S3C2410_BANKCON7) & 0x3) << 30; 57 + gstatus4 |= (__raw_readl(S3C2410_BANKCON6) & 0x3) << 28; 58 + gstatus4 |= (__raw_readl(S3C2410_BANKSIZE) & S3C2410_BANKSIZE_MASK); 59 + 60 + __raw_writel(gstatus4, S3C2410_GSTATUS4); 61 + 62 + return s3c2410_pm_init(); 63 + } 64 + 65 + arch_initcall(pm_simtec_init);