[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>
This commit is contained in:
parent
99a0616bcd
commit
f705b1aed7
@ -154,6 +154,11 @@ config S3C2410_PM_CHECK_CHUNKSIZE
|
|||||||
the CRC data block will take more memory, but wil identify any
|
the CRC data block will take more memory, but wil identify any
|
||||||
faults with better precision.
|
faults with better precision.
|
||||||
|
|
||||||
|
config PM_SIMTEC
|
||||||
|
bool
|
||||||
|
depends on PM && (ARCH_BAST || MACH_VR1000)
|
||||||
|
default y
|
||||||
|
|
||||||
config S3C2410_LOWLEVEL_UART_PORT
|
config S3C2410_LOWLEVEL_UART_PORT
|
||||||
int "S3C2410 UART to use for low-level messages"
|
int "S3C2410 UART to use for low-level messages"
|
||||||
default 0
|
default 0
|
||||||
|
@ -18,6 +18,7 @@ obj-$(CONFIG_S3C2410_DMA) += dma.o
|
|||||||
# Power Management support
|
# Power Management support
|
||||||
|
|
||||||
obj-$(CONFIG_PM) += pm.o sleep.o
|
obj-$(CONFIG_PM) += pm.o sleep.o
|
||||||
|
obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o
|
||||||
|
|
||||||
# S3C2440 support
|
# S3C2440 support
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
|
||||||
* 14-Mar-2006 BJD Updated for __iomem changes
|
* 14-Mar-2006 BJD Updated for __iomem changes
|
||||||
* 22-Jun-2006 BJD Added DM9000 platform information
|
* 22-Jun-2006 BJD Added DM9000 platform information
|
||||||
|
* 28-Jun-2006 BJD Moved pm functionality out to common code
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
@ -67,7 +68,6 @@
|
|||||||
#include "devs.h"
|
#include "devs.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "usb-simtec.h"
|
#include "usb-simtec.h"
|
||||||
#include "pm.h"
|
|
||||||
|
|
||||||
#define COPYRIGHT ", (c) 2004-2005 Simtec Electronics"
|
#define COPYRIGHT ", (c) 2004-2005 Simtec Electronics"
|
||||||
|
|
||||||
@ -405,44 +405,13 @@ void __init bast_map_io(void)
|
|||||||
usb_simtec_init();
|
usb_simtec_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init bast_init_irq(void)
|
|
||||||
{
|
|
||||||
s3c24xx_init_irq();
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
|
||||||
|
|
||||||
/* bast_init_machine
|
|
||||||
*
|
|
||||||
* enable the power management functions for the EB2410ITX
|
|
||||||
*/
|
|
||||||
|
|
||||||
static __init void bast_init_machine(void)
|
|
||||||
{
|
|
||||||
unsigned long gstatus4;
|
|
||||||
|
|
||||||
printk(KERN_INFO "BAST Power Manangement" COPYRIGHT "\n");
|
|
||||||
|
|
||||||
gstatus4 = (__raw_readl(S3C2410_BANKCON7) & 0x3) << 30;
|
|
||||||
gstatus4 |= (__raw_readl(S3C2410_BANKCON6) & 0x3) << 28;
|
|
||||||
gstatus4 |= (__raw_readl(S3C2410_BANKSIZE) & S3C2410_BANKSIZE_MASK);
|
|
||||||
|
|
||||||
__raw_writel(gstatus4, S3C2410_GSTATUS4);
|
|
||||||
|
|
||||||
s3c2410_pm_init();
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define bast_init_machine NULL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
MACHINE_START(BAST, "Simtec-BAST")
|
MACHINE_START(BAST, "Simtec-BAST")
|
||||||
MAINTAINER("Ben Dooks <ben@simtec.co.uk>")
|
MAINTAINER("Ben Dooks <ben@simtec.co.uk>")
|
||||||
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
|
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
|
||||||
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
|
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
|
||||||
MAPIO(bast_map_io)
|
|
||||||
INITIRQ(bast_init_irq)
|
.map_io = bast_map_io,
|
||||||
.init_machine = bast_init_machine,
|
.init_irq = s3c24xx_init_irq,
|
||||||
.timer = &s3c24xx_timer,
|
.timer = &s3c24xx_timer,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
65
arch/arm/mach-s3c2410/pm-simtec.c
Normal file
65
arch/arm/mach-s3c2410/pm-simtec.c
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/* linux/arch/arm/mach-s3c2410/pm-simtec.c
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004 Simtec Electronics
|
||||||
|
* Ben Dooks <ben@simtec.co.uk>
|
||||||
|
*
|
||||||
|
* http://armlinux.simtec.co.uk/
|
||||||
|
*
|
||||||
|
* Power Management helpers for Simtec S3C24XX implementations
|
||||||
|
*
|
||||||
|
* 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/kernel.h>
|
||||||
|
#include <linux/types.h>
|
||||||
|
#include <linux/interrupt.h>
|
||||||
|
#include <linux/list.h>
|
||||||
|
#include <linux/timer.h>
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/device.h>
|
||||||
|
|
||||||
|
#include <asm/mach/arch.h>
|
||||||
|
#include <asm/mach/map.h>
|
||||||
|
|
||||||
|
#include <asm/hardware.h>
|
||||||
|
#include <asm/io.h>
|
||||||
|
|
||||||
|
#include <asm/arch/map.h>
|
||||||
|
#include <asm/arch/regs-serial.h>
|
||||||
|
#include <asm/arch/regs-gpio.h>
|
||||||
|
#include <asm/arch/regs-mem.h>
|
||||||
|
|
||||||
|
#include <asm/mach-types.h>
|
||||||
|
|
||||||
|
#include "pm.h"
|
||||||
|
|
||||||
|
#define COPYRIGHT ", (c) 2005 Simtec Electronics"
|
||||||
|
|
||||||
|
/* pm_simtec_init
|
||||||
|
*
|
||||||
|
* enable the power management functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
static __init int pm_simtec_init(void)
|
||||||
|
{
|
||||||
|
unsigned long gstatus4;
|
||||||
|
|
||||||
|
/* check which machine we are running on */
|
||||||
|
|
||||||
|
if (!machine_is_bast() && !machine_is_vr1000())
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
printk(KERN_INFO "Simtec Board Power Manangement" COPYRIGHT "\n");
|
||||||
|
|
||||||
|
gstatus4 = (__raw_readl(S3C2410_BANKCON7) & 0x3) << 30;
|
||||||
|
gstatus4 |= (__raw_readl(S3C2410_BANKCON6) & 0x3) << 28;
|
||||||
|
gstatus4 |= (__raw_readl(S3C2410_BANKSIZE) & S3C2410_BANKSIZE_MASK);
|
||||||
|
|
||||||
|
__raw_writel(gstatus4, S3C2410_GSTATUS4);
|
||||||
|
|
||||||
|
return s3c2410_pm_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
arch_initcall(pm_simtec_init);
|
Loading…
Reference in New Issue
Block a user