Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 3938
b: refs/heads/master
c: f705b1a
h: refs/heads/master
v: v3
  • Loading branch information
Ben Dooks authored and Russell King committed Jun 29, 2005
1 parent b38fef1 commit b1f8217
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 36 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 99a0616bcdabec9005159e50af91a36cc3f8bda8
refs/heads/master: f705b1aed7002495a504086705ff9725ed9412dc
5 changes: 5 additions & 0 deletions trunk/arch/arm/mach-s3c2410/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,11 @@ config S3C2410_PM_CHECK_CHUNKSIZE
the CRC data block will take more memory, but wil identify any
faults with better precision.

config PM_SIMTEC
bool
depends on PM && (ARCH_BAST || MACH_VR1000)
default y

config S3C2410_LOWLEVEL_UART_PORT
int "S3C2410 UART to use for low-level messages"
default 0
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-s3c2410/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ obj-$(CONFIG_S3C2410_DMA) += dma.o
# Power Management support

obj-$(CONFIG_PM) += pm.o sleep.o
obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o

# S3C2440 support

Expand Down
39 changes: 4 additions & 35 deletions trunk/arch/arm/mach-s3c2410/mach-bast.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
* 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
* 14-Mar-2006 BJD Updated for __iomem changes
* 22-Jun-2006 BJD Added DM9000 platform information
* 28-Jun-2006 BJD Moved pm functionality out to common code
*/

#include <linux/kernel.h>
Expand Down Expand Up @@ -67,7 +68,6 @@
#include "devs.h"
#include "cpu.h"
#include "usb-simtec.h"
#include "pm.h"

#define COPYRIGHT ", (c) 2004-2005 Simtec Electronics"

Expand Down Expand Up @@ -405,44 +405,13 @@ void __init bast_map_io(void)
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")
MAINTAINER("Ben Dooks <ben@simtec.co.uk>")
BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART)
BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100)
MAPIO(bast_map_io)
INITIRQ(bast_init_irq)
.init_machine = bast_init_machine,

.map_io = bast_map_io,
.init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer,
MACHINE_END
65 changes: 65 additions & 0 deletions trunk/arch/arm/mach-s3c2410/pm-simtec.c
Original file line number Diff line number Diff line change
@@ -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);

0 comments on commit b1f8217

Please sign in to comment.