Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 295327
b: refs/heads/master
c: 9231127
h: refs/heads/master
i:
  295325: 168f2d2
  295323: 8abe6a2
  295319: 6e7bd90
  295311: 1f9893c
  295295: ff6249b
v: v3
  • Loading branch information
Nicolas Pitre authored and Nicolas Pitre committed Jan 20, 2012
1 parent 4a02572 commit 8828596
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 46 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: 50edbf78f566bcb7749c558129a849c63ae15838
refs/heads/master: 92311272c1a5148e5e19d0ebc9acda0ed978fba7
40 changes: 1 addition & 39 deletions trunk/arch/arm/mach-s3c2410/include/mach/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,45 +10,7 @@
* published by the Free Software Foundation.
*/

#include <linux/io.h>
#include <mach/hardware.h>

#include <mach/map.h>
#include <mach/idle.h>

#include <mach/regs-clock.h>

void (*s3c24xx_idle)(void);

void s3c24xx_default_idle(void)
{
unsigned long tmp;
int i;

/* idle the system by using the idle mode which will wait for an
* interrupt to happen before restarting the system.
*/

/* Warning: going into idle state upsets jtag scanning */

__raw_writel(__raw_readl(S3C2410_CLKCON) | S3C2410_CLKCON_IDLE,
S3C2410_CLKCON);

/* the samsung port seems to do a loop and then unset idle.. */
for (i = 0; i < 50; i++) {
tmp += __raw_readl(S3C2410_CLKCON); /* ensure loop not optimised out */
}

/* this bit is not cleared on re-start... */

__raw_writel(__raw_readl(S3C2410_CLKCON) & ~S3C2410_CLKCON_IDLE,
S3C2410_CLKCON);
}

static void arch_idle(void)
{
if (s3c24xx_idle != NULL)
(s3c24xx_idle)();
else
s3c24xx_default_idle();
cpu_do_idle();
}
4 changes: 1 addition & 3 deletions trunk/arch/arm/mach-s3c2412/s3c2412.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@
#include <asm/proc-fns.h>
#include <asm/irq.h>

#include <mach/idle.h>

#include <plat/cpu-freq.h>

#include <mach/regs-clock.h>
Expand Down Expand Up @@ -164,7 +162,7 @@ void __init s3c2412_map_io(void)

/* set our idle function */

s3c24xx_idle = s3c2412_idle;
arm_pm_idle = s3c2412_idle;

/* register our io-tables */

Expand Down
3 changes: 0 additions & 3 deletions trunk/arch/arm/mach-s3c2416/s3c2416.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
#include <asm/proc-fns.h>
#include <asm/irq.h>

#include <mach/idle.h>
#include <mach/regs-s3c2443-clock.h>

#include <plat/gpio-core.h>
Expand Down Expand Up @@ -88,8 +87,6 @@ int __init s3c2416_init(void)
{
printk(KERN_INFO "S3C2416: Initializing architecture\n");

/* s3c24xx_idle = s3c2416_idle; */

/* change WDT IRQ number */
s3c_device_wdt.resource[1].start = IRQ_S3C2443_WDT;
s3c_device_wdt.resource[1].end = IRQ_S3C2443_WDT;
Expand Down
27 changes: 27 additions & 0 deletions trunk/arch/arm/plat-s3c24xx/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include <linux/io.h>

#include <mach/hardware.h>
#include <mach/regs-clock.h>
#include <asm/irq.h>
#include <asm/cacheflush.h>

Expand Down Expand Up @@ -190,8 +191,34 @@ static unsigned long s3c24xx_read_idcode_v4(void)
return __raw_readl(S3C2410_GSTATUS1);
}

static void s3c24xx_default_idle(void)
{
unsigned long tmp;
int i;

/* idle the system by using the idle mode which will wait for an
* interrupt to happen before restarting the system.
*/

/* Warning: going into idle state upsets jtag scanning */

__raw_writel(__raw_readl(S3C2410_CLKCON) | S3C2410_CLKCON_IDLE,
S3C2410_CLKCON);

/* the samsung port seems to do a loop and then unset idle.. */
for (i = 0; i < 50; i++)
tmp += __raw_readl(S3C2410_CLKCON); /* ensure loop not optimised out */

/* this bit is not cleared on re-start... */

__raw_writel(__raw_readl(S3C2410_CLKCON) & ~S3C2410_CLKCON_IDLE,
S3C2410_CLKCON);
}

void __init s3c24xx_init_io(struct map_desc *mach_desc, int size)
{
arm_pm_idle = s3c24xx_default_idle;

/* initialise the io descriptors we need for initialisation */
iotable_init(mach_desc, size);
iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc));
Expand Down

0 comments on commit 8828596

Please sign in to comment.