diff options
author | Anton Altaparmakov <aia21@cantab.net> | 2005-06-30 04:52:20 -0400 |
---|---|---|
committer | Anton Altaparmakov <aia21@cantab.net> | 2005-06-30 04:52:20 -0400 |
commit | c2d9b8387bce8b4a0fd402fab7dc1319d11a418d (patch) | |
tree | 082cf7dd287f61635198011e61c3de1be130cc42 /arch/arm/mach-s3c2410 | |
parent | 2a322e4c08be4e7cb0c04b427ddaaa679fd88863 (diff) | |
parent | 9b4311eedb17fa88f02e4876cd6aa9a08e383cd6 (diff) |
Automerge with /usr/src/ntfs-2.6.git.
Diffstat (limited to 'arch/arm/mach-s3c2410')
-rw-r--r-- | arch/arm/mach-s3c2410/Kconfig | 5 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/devs.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/irq.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 39 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-vr1000.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/pm-simtec.c | 65 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/time.c | 4 |
8 files changed, 85 insertions, 48 deletions
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig index 534df0c6c770..d4d03d0daaec 100644 --- a/arch/arm/mach-s3c2410/Kconfig +++ b/arch/arm/mach-s3c2410/Kconfig | |||
@@ -154,6 +154,11 @@ config S3C2410_PM_CHECK_CHUNKSIZE | |||
154 | the CRC data block will take more memory, but wil identify any | 154 | the CRC data block will take more memory, but wil identify any |
155 | faults with better precision. | 155 | faults with better precision. |
156 | 156 | ||
157 | config PM_SIMTEC | ||
158 | bool | ||
159 | depends on PM && (ARCH_BAST || MACH_VR1000) | ||
160 | default y | ||
161 | |||
157 | config S3C2410_LOWLEVEL_UART_PORT | 162 | config S3C2410_LOWLEVEL_UART_PORT |
158 | int "S3C2410 UART to use for low-level messages" | 163 | int "S3C2410 UART to use for low-level messages" |
159 | default 0 | 164 | default 0 |
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile index 7c379aad5d62..f99b689e4392 100644 --- a/arch/arm/mach-s3c2410/Makefile +++ b/arch/arm/mach-s3c2410/Makefile | |||
@@ -18,6 +18,7 @@ obj-$(CONFIG_S3C2410_DMA) += dma.o | |||
18 | # Power Management support | 18 | # Power Management support |
19 | 19 | ||
20 | obj-$(CONFIG_PM) += pm.o sleep.o | 20 | obj-$(CONFIG_PM) += pm.o sleep.o |
21 | obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o | ||
21 | 22 | ||
22 | # S3C2440 support | 23 | # S3C2440 support |
23 | 24 | ||
diff --git a/arch/arm/mach-s3c2410/devs.c b/arch/arm/mach-s3c2410/devs.c index 64792f678668..4664bd11adc1 100644 --- a/arch/arm/mach-s3c2410/devs.c +++ b/arch/arm/mach-s3c2410/devs.c | |||
@@ -96,8 +96,8 @@ struct platform_device s3c_device_lcd = { | |||
96 | .num_resources = ARRAY_SIZE(s3c_lcd_resource), | 96 | .num_resources = ARRAY_SIZE(s3c_lcd_resource), |
97 | .resource = s3c_lcd_resource, | 97 | .resource = s3c_lcd_resource, |
98 | .dev = { | 98 | .dev = { |
99 | .dma_mask = &s3c_device_lcd_dmamask, | 99 | .dma_mask = &s3c_device_lcd_dmamask, |
100 | .coherent_dma_mask = 0xffffffffUL | 100 | .coherent_dma_mask = 0xffffffffUL |
101 | } | 101 | } |
102 | }; | 102 | }; |
103 | 103 | ||
diff --git a/arch/arm/mach-s3c2410/irq.c b/arch/arm/mach-s3c2410/irq.c index b668c48f4399..cf9f46d88061 100644 --- a/arch/arm/mach-s3c2410/irq.c +++ b/arch/arm/mach-s3c2410/irq.c | |||
@@ -40,8 +40,11 @@ | |||
40 | * 04-Nov-2004 Ben Dooks | 40 | * 04-Nov-2004 Ben Dooks |
41 | * Fix standard IRQ wake for EINT0..4 and RTC | 41 | * Fix standard IRQ wake for EINT0..4 and RTC |
42 | * | 42 | * |
43 | * 22-Feb-2004 Ben Dooks | 43 | * 22-Feb-2005 Ben Dooks |
44 | * Fixed edge-triggering on ADC IRQ | 44 | * Fixed edge-triggering on ADC IRQ |
45 | * | ||
46 | * 28-Jun-2005 Ben Dooks | ||
47 | * Mark IRQ_LCD valid | ||
45 | */ | 48 | */ |
46 | 49 | ||
47 | #include <linux/init.h> | 50 | #include <linux/init.h> |
@@ -366,7 +369,6 @@ static struct irqchip s3c_irq_eint0t4 = { | |||
366 | #define INTMSK_UART1 (1UL << (IRQ_UART1 - IRQ_EINT0)) | 369 | #define INTMSK_UART1 (1UL << (IRQ_UART1 - IRQ_EINT0)) |
367 | #define INTMSK_UART2 (1UL << (IRQ_UART2 - IRQ_EINT0)) | 370 | #define INTMSK_UART2 (1UL << (IRQ_UART2 - IRQ_EINT0)) |
368 | #define INTMSK_ADCPARENT (1UL << (IRQ_ADCPARENT - IRQ_EINT0)) | 371 | #define INTMSK_ADCPARENT (1UL << (IRQ_ADCPARENT - IRQ_EINT0)) |
369 | #define INTMSK_LCD (1UL << (IRQ_LCD - IRQ_EINT0)) | ||
370 | 372 | ||
371 | static inline void | 373 | static inline void |
372 | s3c_irqsub_mask(unsigned int irqno, unsigned int parentbit, | 374 | s3c_irqsub_mask(unsigned int irqno, unsigned int parentbit, |
@@ -716,7 +718,6 @@ void __init s3c24xx_init_irq(void) | |||
716 | case IRQ_UART0: | 718 | case IRQ_UART0: |
717 | case IRQ_UART1: | 719 | case IRQ_UART1: |
718 | case IRQ_UART2: | 720 | case IRQ_UART2: |
719 | case IRQ_LCD: | ||
720 | case IRQ_ADCPARENT: | 721 | case IRQ_ADCPARENT: |
721 | set_irq_chip(irqno, &s3c_irq_level_chip); | 722 | set_irq_chip(irqno, &s3c_irq_level_chip); |
722 | set_irq_handler(irqno, do_level_IRQ); | 723 | set_irq_handler(irqno, do_level_IRQ); |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index f3e970039b65..549bcb1f32c0 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -27,6 +27,7 @@ | |||
27 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | 27 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA |
28 | * 14-Mar-2006 BJD Updated for __iomem changes | 28 | * 14-Mar-2006 BJD Updated for __iomem changes |
29 | * 22-Jun-2006 BJD Added DM9000 platform information | 29 | * 22-Jun-2006 BJD Added DM9000 platform information |
30 | * 28-Jun-2006 BJD Moved pm functionality out to common code | ||
30 | */ | 31 | */ |
31 | 32 | ||
32 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
@@ -67,7 +68,6 @@ | |||
67 | #include "devs.h" | 68 | #include "devs.h" |
68 | #include "cpu.h" | 69 | #include "cpu.h" |
69 | #include "usb-simtec.h" | 70 | #include "usb-simtec.h" |
70 | #include "pm.h" | ||
71 | 71 | ||
72 | #define COPYRIGHT ", (c) 2004-2005 Simtec Electronics" | 72 | #define COPYRIGHT ", (c) 2004-2005 Simtec Electronics" |
73 | 73 | ||
@@ -405,44 +405,13 @@ void __init bast_map_io(void) | |||
405 | usb_simtec_init(); | 405 | usb_simtec_init(); |
406 | } | 406 | } |
407 | 407 | ||
408 | void __init bast_init_irq(void) | ||
409 | { | ||
410 | s3c24xx_init_irq(); | ||
411 | } | ||
412 | |||
413 | #ifdef CONFIG_PM | ||
414 | |||
415 | /* bast_init_machine | ||
416 | * | ||
417 | * enable the power management functions for the EB2410ITX | ||
418 | */ | ||
419 | |||
420 | static __init void bast_init_machine(void) | ||
421 | { | ||
422 | unsigned long gstatus4; | ||
423 | |||
424 | printk(KERN_INFO "BAST Power Manangement" COPYRIGHT "\n"); | ||
425 | |||
426 | gstatus4 = (__raw_readl(S3C2410_BANKCON7) & 0x3) << 30; | ||
427 | gstatus4 |= (__raw_readl(S3C2410_BANKCON6) & 0x3) << 28; | ||
428 | gstatus4 |= (__raw_readl(S3C2410_BANKSIZE) & S3C2410_BANKSIZE_MASK); | ||
429 | |||
430 | __raw_writel(gstatus4, S3C2410_GSTATUS4); | ||
431 | |||
432 | s3c2410_pm_init(); | ||
433 | } | ||
434 | |||
435 | #else | ||
436 | #define bast_init_machine NULL | ||
437 | #endif | ||
438 | |||
439 | 408 | ||
440 | MACHINE_START(BAST, "Simtec-BAST") | 409 | MACHINE_START(BAST, "Simtec-BAST") |
441 | MAINTAINER("Ben Dooks <ben@simtec.co.uk>") | 410 | MAINTAINER("Ben Dooks <ben@simtec.co.uk>") |
442 | BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART) | 411 | BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART) |
443 | BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) | 412 | BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) |
444 | MAPIO(bast_map_io) | 413 | |
445 | INITIRQ(bast_init_irq) | 414 | .map_io = bast_map_io, |
446 | .init_machine = bast_init_machine, | 415 | .init_irq = s3c24xx_init_irq, |
447 | .timer = &s3c24xx_timer, | 416 | .timer = &s3c24xx_timer, |
448 | MACHINE_END | 417 | MACHINE_END |
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 76be074944a0..1db2855e3e56 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
@@ -371,16 +371,12 @@ void __init vr1000_map_io(void) | |||
371 | usb_simtec_init(); | 371 | usb_simtec_init(); |
372 | } | 372 | } |
373 | 373 | ||
374 | void __init vr1000_init_irq(void) | ||
375 | { | ||
376 | s3c24xx_init_irq(); | ||
377 | } | ||
378 | 374 | ||
379 | MACHINE_START(VR1000, "Thorcom-VR1000") | 375 | MACHINE_START(VR1000, "Thorcom-VR1000") |
380 | MAINTAINER("Ben Dooks <ben@simtec.co.uk>") | 376 | MAINTAINER("Ben Dooks <ben@simtec.co.uk>") |
381 | BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART) | 377 | BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, (u32)S3C24XX_VA_UART) |
382 | BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) | 378 | BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) |
383 | MAPIO(vr1000_map_io) | 379 | .map_io = vr1000_map_io, |
384 | INITIRQ(vr1000_init_irq) | 380 | .init_irq = s3c24xx_init_irq, |
385 | .timer = &s3c24xx_timer, | 381 | .timer = &s3c24xx_timer, |
386 | MACHINE_END | 382 | MACHINE_END |
diff --git a/arch/arm/mach-s3c2410/pm-simtec.c b/arch/arm/mach-s3c2410/pm-simtec.c new file mode 100644 index 000000000000..2cb798832223 --- /dev/null +++ b/arch/arm/mach-s3c2410/pm-simtec.c | |||
@@ -0,0 +1,65 @@ | |||
1 | /* linux/arch/arm/mach-s3c2410/pm-simtec.c | ||
2 | * | ||
3 | * Copyright (c) 2004 Simtec Electronics | ||
4 | * Ben Dooks <ben@simtec.co.uk> | ||
5 | * | ||
6 | * http://armlinux.simtec.co.uk/ | ||
7 | * | ||
8 | * Power Management helpers for Simtec S3C24XX implementations | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <linux/interrupt.h> | ||
18 | #include <linux/list.h> | ||
19 | #include <linux/timer.h> | ||
20 | #include <linux/init.h> | ||
21 | #include <linux/device.h> | ||
22 | |||
23 | #include <asm/mach/arch.h> | ||
24 | #include <asm/mach/map.h> | ||
25 | |||
26 | #include <asm/hardware.h> | ||
27 | #include <asm/io.h> | ||
28 | |||
29 | #include <asm/arch/map.h> | ||
30 | #include <asm/arch/regs-serial.h> | ||
31 | #include <asm/arch/regs-gpio.h> | ||
32 | #include <asm/arch/regs-mem.h> | ||
33 | |||
34 | #include <asm/mach-types.h> | ||
35 | |||
36 | #include "pm.h" | ||
37 | |||
38 | #define COPYRIGHT ", (c) 2005 Simtec Electronics" | ||
39 | |||
40 | /* pm_simtec_init | ||
41 | * | ||
42 | * enable the power management functions | ||
43 | */ | ||
44 | |||
45 | static __init int pm_simtec_init(void) | ||
46 | { | ||
47 | unsigned long gstatus4; | ||
48 | |||
49 | /* check which machine we are running on */ | ||
50 | |||
51 | if (!machine_is_bast() && !machine_is_vr1000()) | ||
52 | return 0; | ||
53 | |||
54 | printk(KERN_INFO "Simtec Board Power Manangement" COPYRIGHT "\n"); | ||
55 | |||
56 | gstatus4 = (__raw_readl(S3C2410_BANKCON7) & 0x3) << 30; | ||
57 | gstatus4 |= (__raw_readl(S3C2410_BANKCON6) & 0x3) << 28; | ||
58 | gstatus4 |= (__raw_readl(S3C2410_BANKSIZE) & S3C2410_BANKSIZE_MASK); | ||
59 | |||
60 | __raw_writel(gstatus4, S3C2410_GSTATUS4); | ||
61 | |||
62 | return s3c2410_pm_init(); | ||
63 | } | ||
64 | |||
65 | arch_initcall(pm_simtec_init); | ||
diff --git a/arch/arm/mach-s3c2410/time.c b/arch/arm/mach-s3c2410/time.c index 179f0e031af4..765a3a9ae032 100644 --- a/arch/arm/mach-s3c2410/time.c +++ b/arch/arm/mach-s3c2410/time.c | |||
@@ -137,8 +137,8 @@ s3c2410_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
137 | 137 | ||
138 | static struct irqaction s3c2410_timer_irq = { | 138 | static struct irqaction s3c2410_timer_irq = { |
139 | .name = "S3C2410 Timer Tick", | 139 | .name = "S3C2410 Timer Tick", |
140 | .flags = SA_INTERRUPT, | 140 | .flags = SA_INTERRUPT | SA_TIMER, |
141 | .handler = s3c2410_timer_interrupt | 141 | .handler = s3c2410_timer_interrupt, |
142 | }; | 142 | }; |
143 | 143 | ||
144 | /* | 144 | /* |