diff options
-rw-r--r-- | arch/arm/mach-s3c2410/Kconfig | 8 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-rx3715.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/s3c2410-pm.c | 16 | ||||
-rw-r--r-- | arch/arm/mm/mmu.c | 4 |
5 files changed, 32 insertions, 2 deletions
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig index 63965c78de8c..08b2f300eb79 100644 --- a/arch/arm/mach-s3c2410/Kconfig +++ b/arch/arm/mach-s3c2410/Kconfig | |||
@@ -41,9 +41,16 @@ config BAST_PC104_IRQ | |||
41 | Say Y here to enable the PC104 IRQ routing on the | 41 | Say Y here to enable the PC104 IRQ routing on the |
42 | Simtec BAST (EB2410ITX) | 42 | Simtec BAST (EB2410ITX) |
43 | 43 | ||
44 | config PM_H1940 | ||
45 | bool | ||
46 | depends on PM | ||
47 | help | ||
48 | Internal node for H1940 and related PM | ||
49 | |||
44 | config ARCH_H1940 | 50 | config ARCH_H1940 |
45 | bool "IPAQ H1940" | 51 | bool "IPAQ H1940" |
46 | select CPU_S3C2410 | 52 | select CPU_S3C2410 |
53 | select PM_H1940 | ||
47 | help | 54 | help |
48 | Say Y here if you are using the HP IPAQ H1940 | 55 | Say Y here if you are using the HP IPAQ H1940 |
49 | 56 | ||
@@ -115,6 +122,7 @@ config MACH_VR1000 | |||
115 | config MACH_RX3715 | 122 | config MACH_RX3715 |
116 | bool "HP iPAQ rx3715" | 123 | bool "HP iPAQ rx3715" |
117 | select CPU_S3C2440 | 124 | select CPU_S3C2440 |
125 | select PM_H1940 | ||
118 | help | 126 | help |
119 | Say Y here if you are using the HP iPAQ rx3715. | 127 | Say Y here if you are using the HP iPAQ rx3715. |
120 | 128 | ||
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile index 0cd71dfec447..27663e28cc88 100644 --- a/arch/arm/mach-s3c2410/Makefile +++ b/arch/arm/mach-s3c2410/Makefile | |||
@@ -31,6 +31,7 @@ obj-$(CONFIG_CPU_S3C2410_DMA) += s3c2410-dma.o | |||
31 | 31 | ||
32 | obj-$(CONFIG_PM) += pm.o sleep.o | 32 | obj-$(CONFIG_PM) += pm.o sleep.o |
33 | obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o | 33 | obj-$(CONFIG_PM_SIMTEC) += pm-simtec.o |
34 | obj-$(CONFIG_PM_H1940) += pm-h1940.o | ||
34 | 35 | ||
35 | # S3C2412 support | 36 | # S3C2412 support |
36 | obj-$(CONFIG_CPU_S3C2412) += s3c2412.o | 37 | obj-$(CONFIG_CPU_S3C2412) += s3c2412.o |
@@ -77,7 +78,7 @@ obj-$(CONFIG_MACH_AML_M5900) += mach-amlm5900.o | |||
77 | obj-$(CONFIG_MACH_ANUBIS) += mach-anubis.o | 78 | obj-$(CONFIG_MACH_ANUBIS) += mach-anubis.o |
78 | obj-$(CONFIG_MACH_OSIRIS) += mach-osiris.o | 79 | obj-$(CONFIG_MACH_OSIRIS) += mach-osiris.o |
79 | obj-$(CONFIG_ARCH_BAST) += mach-bast.o usb-simtec.o | 80 | obj-$(CONFIG_ARCH_BAST) += mach-bast.o usb-simtec.o |
80 | obj-$(CONFIG_ARCH_H1940) += mach-h1940.o pm-h1940.o | 81 | obj-$(CONFIG_ARCH_H1940) += mach-h1940.o |
81 | obj-$(CONFIG_MACH_N30) += mach-n30.o | 82 | obj-$(CONFIG_MACH_N30) += mach-n30.o |
82 | obj-$(CONFIG_ARCH_SMDK2410) += mach-smdk2410.o | 83 | obj-$(CONFIG_ARCH_SMDK2410) += mach-smdk2410.o |
83 | obj-$(CONFIG_MACH_SMDK2413) += mach-smdk2413.o | 84 | obj-$(CONFIG_MACH_SMDK2413) += mach-smdk2413.o |
diff --git a/arch/arm/mach-s3c2410/mach-rx3715.c b/arch/arm/mach-s3c2410/mach-rx3715.c index 23d7c052013c..ecbcdf79d739 100644 --- a/arch/arm/mach-s3c2410/mach-rx3715.c +++ b/arch/arm/mach-s3c2410/mach-rx3715.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <asm/arch/regs-gpio.h> | 42 | #include <asm/arch/regs-gpio.h> |
43 | #include <asm/arch/regs-lcd.h> | 43 | #include <asm/arch/regs-lcd.h> |
44 | 44 | ||
45 | #include <asm/arch/h1940.h> | ||
45 | #include <asm/arch/nand.h> | 46 | #include <asm/arch/nand.h> |
46 | #include <asm/arch/fb.h> | 47 | #include <asm/arch/fb.h> |
47 | 48 | ||
@@ -224,7 +225,9 @@ static void __init rx3715_init_irq(void) | |||
224 | 225 | ||
225 | static void __init rx3715_init_machine(void) | 226 | static void __init rx3715_init_machine(void) |
226 | { | 227 | { |
228 | memcpy(phys_to_virt(H1940_SUSPEND_RESUMEAT), h1940_pm_return, 1024); | ||
227 | s3c2410_pm_init(); | 229 | s3c2410_pm_init(); |
230 | |||
228 | s3c24xx_fb_set_platdata(&rx3715_lcdcfg); | 231 | s3c24xx_fb_set_platdata(&rx3715_lcdcfg); |
229 | } | 232 | } |
230 | 233 | ||
diff --git a/arch/arm/mach-s3c2410/s3c2410-pm.c b/arch/arm/mach-s3c2410/s3c2410-pm.c index 9cd0c104f1cb..77c6814c0f05 100644 --- a/arch/arm/mach-s3c2410/s3c2410-pm.c +++ b/arch/arm/mach-s3c2410/s3c2410-pm.c | |||
@@ -66,6 +66,22 @@ static void s3c2410_pm_prepare(void) | |||
66 | __raw_writel(calc, phys_to_virt(H1940_SUSPEND_CHECKSUM)); | 66 | __raw_writel(calc, phys_to_virt(H1940_SUSPEND_CHECKSUM)); |
67 | } | 67 | } |
68 | 68 | ||
69 | /* the RX3715 uses similar code and the same H1940 and the | ||
70 | * same offsets for resume and checksum pointers */ | ||
71 | |||
72 | if (machine_is_rx3715()) { | ||
73 | void *base = phys_to_virt(H1940_SUSPEND_CHECK); | ||
74 | unsigned long ptr; | ||
75 | unsigned long calc = 0; | ||
76 | |||
77 | /* generate check for the bootloader to check on resume */ | ||
78 | |||
79 | for (ptr = 0; ptr < 0x40000; ptr += 0x4) | ||
80 | calc += __raw_readl(base+ptr); | ||
81 | |||
82 | __raw_writel(calc, phys_to_virt(H1940_SUSPEND_CHECKSUM)); | ||
83 | } | ||
84 | |||
69 | if ( machine_is_aml_m5900() ) | 85 | if ( machine_is_aml_m5900() ) |
70 | s3c2410_gpio_setpin(S3C2410_GPF2, 1); | 86 | s3c2410_gpio_setpin(S3C2410_GPF2, 1); |
71 | 87 | ||
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index f2d0d6f78973..b7f194af20b4 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -619,7 +619,9 @@ void __init reserve_node_zero(pg_data_t *pgdat) | |||
619 | if (machine_is_p720t()) | 619 | if (machine_is_p720t()) |
620 | res_size = 0x00014000; | 620 | res_size = 0x00014000; |
621 | 621 | ||
622 | if (machine_is_h1940()) { | 622 | /* H1940 and RX3715 need to reserve this for suspend */ |
623 | |||
624 | if (machine_is_h1940() || machine_is_rx3715()) { | ||
623 | reserve_bootmem_node(pgdat, 0x30003000, 0x1000); | 625 | reserve_bootmem_node(pgdat, 0x30003000, 0x1000); |
624 | reserve_bootmem_node(pgdat, 0x30081000, 0x1000); | 626 | reserve_bootmem_node(pgdat, 0x30081000, 0x1000); |
625 | } | 627 | } |