Loading arch/arm/mach-s3c2410/include/mach/system.h +1 −39 Original line number Diff line number Diff line Loading @@ -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(); } arch/arm/mach-s3c2412/s3c2412.c +1 −3 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 */ Loading arch/arm/mach-s3c2416/s3c2416.c +0 −3 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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; Loading arch/arm/plat-s3c24xx/cpu.c +27 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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)); Loading Loading
arch/arm/mach-s3c2410/include/mach/system.h +1 −39 Original line number Diff line number Diff line Loading @@ -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(); }
arch/arm/mach-s3c2412/s3c2412.c +1 −3 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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 */ Loading
arch/arm/mach-s3c2416/s3c2416.c +0 −3 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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; Loading
arch/arm/plat-s3c24xx/cpu.c +27 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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)); Loading