aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/watchdog/sa1100_wdt.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-06-06 06:42:36 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-07-09 12:37:35 -0400
commit3169663ac5902f2228ea0eb8cc34eb52cbd4b283 (patch)
tree5eb1d323c4a268e77ce39fdd20c3f243667f736e /drivers/watchdog/sa1100_wdt.c
parentbcccc50ce8fcc833cfed4bb71ede211a6ef5b84a (diff)
ARM: sa11x0/pxa: convert OS timer registers to IOMEM
Make the OS timer registers have IOMEM like properities so they can be passed to readl_relaxed/writel_relaxed() et.al. rather than being straight volatile dereferences. Add linux/io.h includes where required. linux/io.h includes added to arch/arm/mach-sa1100/cpu-sa1100.c, arch/arm/mach-sa1100/jornada720_ssp.c, arch/arm/mach-sa1100/leds-lart.c drivers/input/touchscreen/jornada720_ts.c, drivers/pcmcia/sa1100_shannon.c from Arnd. This fixes these warnings: arch/arm/mach-sa1100/time.c: In function 'sa1100_timer_init': arch/arm/mach-sa1100/time.c:104: warning: passing argument 1 of 'clocksource_mmio_init' discards qualifiers from pointer target type arch/arm/mach-pxa/time.c: In function 'pxa_timer_init': arch/arm/mach-pxa/time.c:126: warning: passing argument 1 of 'clocksource_mmio_init' discards qualifiers from pointer target type Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/watchdog/sa1100_wdt.c')
-rw-r--r--drivers/watchdog/sa1100_wdt.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/watchdog/sa1100_wdt.c b/drivers/watchdog/sa1100_wdt.c
index 54984deb856..ccd6b29e21b 100644
--- a/drivers/watchdog/sa1100_wdt.c
+++ b/drivers/watchdog/sa1100_wdt.c
@@ -54,10 +54,10 @@ static int sa1100dog_open(struct inode *inode, struct file *file)
54 return -EBUSY; 54 return -EBUSY;
55 55
56 /* Activate SA1100 Watchdog timer */ 56 /* Activate SA1100 Watchdog timer */
57 OSMR3 = OSCR + pre_margin; 57 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
58 OSSR = OSSR_M3; 58 writel_relaxed(OSSR_M3, OSSR);
59 OWER = OWER_WME; 59 writel_relaxed(OWER_WME, OWER);
60 OIER |= OIER_E3; 60 writel_relaxed(readl_relaxed(OIER) | OIER_E3, OIER);
61 return nonseekable_open(inode, file); 61 return nonseekable_open(inode, file);
62} 62}
63 63
@@ -80,7 +80,7 @@ static ssize_t sa1100dog_write(struct file *file, const char __user *data,
80{ 80{
81 if (len) 81 if (len)
82 /* Refresh OSMR3 timer. */ 82 /* Refresh OSMR3 timer. */
83 OSMR3 = OSCR + pre_margin; 83 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
84 return len; 84 return len;
85} 85}
86 86
@@ -114,7 +114,7 @@ static long sa1100dog_ioctl(struct file *file, unsigned int cmd,
114 break; 114 break;
115 115
116 case WDIOC_KEEPALIVE: 116 case WDIOC_KEEPALIVE:
117 OSMR3 = OSCR + pre_margin; 117 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
118 ret = 0; 118 ret = 0;
119 break; 119 break;
120 120
@@ -129,7 +129,7 @@ static long sa1100dog_ioctl(struct file *file, unsigned int cmd,
129 } 129 }
130 130
131 pre_margin = oscr_freq * time; 131 pre_margin = oscr_freq * time;
132 OSMR3 = OSCR + pre_margin; 132 writel_relaxed(readl_relaxed(OSCR) + pre_margin, OSMR3);
133 /*fall through*/ 133 /*fall through*/
134 134
135 case WDIOC_GETTIMEOUT: 135 case WDIOC_GETTIMEOUT: