-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 36578 b: refs/heads/master c: 0033a2f h: refs/heads/master v: v3
- Loading branch information
Ben Dooks
authored and
Russell King
committed
Sep 25, 2006
1 parent
ee3c537
commit 5e73137
Showing
8 changed files
with
210 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 34348012d6b43eca5e241fe97381420d5758866c | ||
refs/heads/master: 0033a2f0d028400ad04588efbd5740c73f0eb740 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
/* linux/arch/arm/mach-s3c2410/s3c2410-pm.c | ||
* | ||
* Copyright (c) 2006 Simtec Electronics | ||
* Ben Dooks <ben@simtec.co.uk> | ||
* | ||
* S3C2410 (and compatible) Power Manager (Suspend-To-RAM) support | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation; either version 2 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
*/ | ||
|
||
#include <linux/init.h> | ||
#include <linux/suspend.h> | ||
#include <linux/errno.h> | ||
#include <linux/time.h> | ||
#include <linux/sysdev.h> | ||
|
||
#include <asm/hardware.h> | ||
#include <asm/io.h> | ||
|
||
#include <asm/arch/regs-gpio.h> | ||
|
||
#include "cpu.h" | ||
#include "pm.h" | ||
|
||
#ifdef CONFIG_S3C2410_PM_DEBUG | ||
extern void pm_dbg(const char *fmt, ...); | ||
#define DBG(fmt...) pm_dbg(fmt) | ||
#else | ||
#define DBG(fmt...) printk(KERN_DEBUG fmt) | ||
#endif | ||
|
||
static void s3c2410_pm_prepare(void) | ||
{ | ||
/* ensure at least GSTATUS3 has the resume address */ | ||
|
||
__raw_writel(virt_to_phys(s3c2410_cpu_resume), S3C2410_GSTATUS3); | ||
|
||
DBG("GSTATUS3 0x%08x\n", __raw_readl(S3C2410_GSTATUS3)); | ||
DBG("GSTATUS4 0x%08x\n", __raw_readl(S3C2410_GSTATUS4)); | ||
} | ||
|
||
int s3c2410_pm_resume(struct sys_device *dev) | ||
{ | ||
unsigned long tmp; | ||
|
||
/* unset the return-from-sleep flag, to ensure reset */ | ||
|
||
tmp = __raw_readl(S3C2410_GSTATUS2); | ||
tmp &= S3C2410_GSTATUS2_OFFRESET; | ||
__raw_writel(tmp, S3C2410_GSTATUS2); | ||
|
||
return 0; | ||
} | ||
|
||
static int s3c2410_pm_add(struct sys_device *dev) | ||
{ | ||
pm_cpu_prep = s3c2410_pm_prepare; | ||
pm_cpu_sleep = s3c2410_cpu_suspend; | ||
|
||
return 0; | ||
} | ||
|
||
static struct sysdev_driver s3c2410_pm_driver = { | ||
.add = s3c2410_pm_add, | ||
.resume = s3c2410_pm_resume, | ||
}; | ||
|
||
/* register ourselves */ | ||
|
||
static int __init s3c2410_pm_drvinit(void) | ||
{ | ||
return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_pm_driver); | ||
} | ||
|
||
arch_initcall(s3c2410_pm_drvinit); | ||
|
||
static struct sysdev_driver s3c2440_pm_driver = { | ||
.add = s3c2410_pm_add, | ||
.resume = s3c2410_pm_resume, | ||
}; | ||
|
||
static int __init s3c2440_pm_drvinit(void) | ||
{ | ||
return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_pm_driver); | ||
} | ||
|
||
arch_initcall(s3c2440_pm_drvinit); | ||
|
||
static struct sysdev_driver s3c2442_pm_driver = { | ||
.add = s3c2410_pm_add, | ||
.resume = s3c2410_pm_resume, | ||
}; | ||
|
||
static int __init s3c2442_pm_drvinit(void) | ||
{ | ||
return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_pm_driver); | ||
} | ||
|
||
arch_initcall(s3c2442_pm_drvinit); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* linux/arch/arm/mach-s3c2410/s3c2410-sleep.S | ||
* | ||
* Copyright (c) 2004 Simtec Electronics | ||
* Ben Dooks <ben@simtec.co.uk> | ||
* | ||
* S3C2410 Power Manager (Suspend-To-RAM) support | ||
* | ||
* Based on PXA/SA1100 sleep code by: | ||
* Nicolas Pitre, (c) 2002 Monta Vista Software Inc | ||
* Cliff Brake, (c) 2001 | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation; either version 2 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; if not, write to the Free Software | ||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
*/ | ||
|
||
#include <linux/linkage.h> | ||
#include <asm/assembler.h> | ||
#include <asm/hardware.h> | ||
#include <asm/arch/map.h> | ||
|
||
#include <asm/arch/regs-gpio.h> | ||
#include <asm/arch/regs-clock.h> | ||
#include <asm/arch/regs-mem.h> | ||
#include <asm/arch/regs-serial.h> | ||
|
||
/* s3c2410_cpu_suspend | ||
* | ||
* put the cpu into sleep mode | ||
*/ | ||
|
||
ENTRY(s3c2410_cpu_suspend) | ||
@@ prepare cpu to sleep | ||
|
||
ldr r4, =S3C2410_REFRESH | ||
ldr r5, =S3C24XX_MISCCR | ||
ldr r6, =S3C2410_CLKCON | ||
ldr r7, [ r4 ] @ get REFRESH (and ensure in TLB) | ||
ldr r8, [ r5 ] @ get MISCCR (and ensure in TLB) | ||
ldr r9, [ r6 ] @ get CLKCON (and ensure in TLB) | ||
|
||
orr r7, r7, #S3C2410_REFRESH_SELF @ SDRAM sleep command | ||
orr r8, r8, #S3C2410_MISCCR_SDSLEEP @ SDRAM power-down signals | ||
orr r9, r9, #S3C2410_CLKCON_POWER @ power down command | ||
|
||
teq pc, #0 @ first as a trial-run to load cache | ||
bl s3c2410_do_sleep | ||
teq r0, r0 @ now do it for real | ||
b s3c2410_do_sleep @ | ||
|
||
@@ align next bit of code to cache line | ||
.align 8 | ||
s3c2410_do_sleep: | ||
streq r7, [ r4 ] @ SDRAM sleep command | ||
streq r8, [ r5 ] @ SDRAM power-down config | ||
streq r9, [ r6 ] @ CPU sleep | ||
1: beq 1b | ||
mov pc, r14 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters