aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ep93xx
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ep93xx')
-rw-r--r--arch/arm/mach-ep93xx/core.c5
-rw-r--r--arch/arm/mach-ep93xx/gesbc9312.c24
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.c23
3 files changed, 48 insertions, 4 deletions
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index dcd417625389..bf6bd71bdd08 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -103,7 +103,8 @@ static int ep93xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
103 write_seqlock(&xtime_lock); 103 write_seqlock(&xtime_lock);
104 104
105 __raw_writel(1, EP93XX_TIMER1_CLEAR); 105 __raw_writel(1, EP93XX_TIMER1_CLEAR);
106 while (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time 106 while ((signed long)
107 (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time)
107 >= TIMER4_TICKS_PER_JIFFY) { 108 >= TIMER4_TICKS_PER_JIFFY) {
108 last_jiffy_time += TIMER4_TICKS_PER_JIFFY; 109 last_jiffy_time += TIMER4_TICKS_PER_JIFFY;
109 timer_tick(regs); 110 timer_tick(regs);
@@ -124,7 +125,7 @@ static void __init ep93xx_timer_init(void)
124{ 125{
125 /* Enable periodic HZ timer. */ 126 /* Enable periodic HZ timer. */
126 __raw_writel(0x48, EP93XX_TIMER1_CONTROL); 127 __raw_writel(0x48, EP93XX_TIMER1_CONTROL);
127 __raw_writel((508000 / HZ) - 1, EP93XX_TIMER1_LOAD); 128 __raw_writel((508469 / HZ) - 1, EP93XX_TIMER1_LOAD);
128 __raw_writel(0xc8, EP93XX_TIMER1_CONTROL); 129 __raw_writel(0xc8, EP93XX_TIMER1_CONTROL);
129 130
130 /* Enable lost jiffy timer. */ 131 /* Enable lost jiffy timer. */
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c
index d18fcb1a2f1b..47cc6c8b7c79 100644
--- a/arch/arm/mach-ep93xx/gesbc9312.c
+++ b/arch/arm/mach-ep93xx/gesbc9312.c
@@ -16,16 +16,38 @@
16#include <linux/mm.h> 16#include <linux/mm.h>
17#include <linux/sched.h> 17#include <linux/sched.h>
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
21#include <linux/platform_device.h>
20#include <asm/io.h> 22#include <asm/io.h>
21#include <asm/hardware.h> 23#include <asm/hardware.h>
22#include <asm/mach-types.h> 24#include <asm/mach-types.h>
23#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
24 26
27static struct physmap_flash_data gesbc9312_flash_data = {
28 .width = 4,
29};
30
31static struct resource gesbc9312_flash_resource = {
32 .start = 0x60000000,
33 .end = 0x60800000,
34 .flags = IORESOURCE_MEM,
35};
36
37static struct platform_device gesbc9312_flash = {
38 .name = "physmap-flash",
39 .id = 0,
40 .dev = {
41 .platform_data = &gesbc9312_flash_data,
42 },
43 .num_resources = 1,
44 .resource = &gesbc9312_flash_resource,
45};
46
25static void __init gesbc9312_init_machine(void) 47static void __init gesbc9312_init_machine(void)
26{ 48{
27 ep93xx_init_devices(); 49 ep93xx_init_devices();
28 physmap_configure(0x60000000, 0x00800000, 4, NULL); 50 platform_device_register(&gesbc9312_flash);
29} 51}
30 52
31MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") 53MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c
index e24566b88a78..6e5a56cd5ae8 100644
--- a/arch/arm/mach-ep93xx/ts72xx.c
+++ b/arch/arm/mach-ep93xx/ts72xx.c
@@ -16,6 +16,7 @@
16#include <linux/mm.h> 16#include <linux/mm.h>
17#include <linux/sched.h> 17#include <linux/sched.h>
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21#include <linux/m48t86.h> 22#include <linux/m48t86.h>
@@ -111,6 +112,26 @@ static void __init ts72xx_map_io(void)
111 } 112 }
112} 113}
113 114
115static struct physmap_flash_data ts72xx_flash_data = {
116 .width = 1,
117};
118
119static struct resource ts72xx_flash_resource = {
120 .start = TS72XX_NOR_PHYS_BASE,
121 .end = TS72XX_NOR_PHYS_BASE + 0x01000000,
122 .flags = IORESOURCE_MEM,
123};
124
125static struct platform_device ts72xx_flash = {
126 .name = "physmap-flash",
127 .id = 0,
128 .dev = {
129 .platform_data = &ts72xx_flash_data,
130 },
131 .num_resources = 1,
132 .resource = &ts72xx_flash_resource,
133};
134
114static unsigned char ts72xx_rtc_readbyte(unsigned long addr) 135static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
115{ 136{
116 __raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE); 137 __raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
@@ -141,7 +162,7 @@ static void __init ts72xx_init_machine(void)
141{ 162{
142 ep93xx_init_devices(); 163 ep93xx_init_devices();
143 if (board_is_ts7200()) 164 if (board_is_ts7200())
144 physmap_configure(TS72XX_NOR_PHYS_BASE, 0x01000000, 1, NULL); 165 platform_device_register(&ts72xx_flash);
145 platform_device_register(&ts72xx_rtc_device); 166 platform_device_register(&ts72xx_rtc_device);
146} 167}
147 168