aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@uclinux.org>2012-09-18 00:51:46 -0400
committerGreg Ungerer <gerg@uclinux.org>2012-09-27 09:34:03 -0400
commit944c3d81dbead14725e7d12675c37a2027760608 (patch)
tree3531830148ee9ec29bb590c356aca1e3ae25655c /drivers/watchdog
parent632306f2454bf46c71d4fb7a499916d942b22a32 (diff)
m68knommu: clean up ColdFire 54xx General Timer definitions
Convert the ColdFire 54xx CPU General Timer register address definitions to include the MCF_MBAR peripheral region offset. This makes them consistent with all other 54xx address register definitions (in m54xxsim.h). The goal is to reduce different definitions used (some including offsets and others not) causing bugs when used incorrectly. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/m54xx_wdt.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/watchdog/m54xx_wdt.c b/drivers/watchdog/m54xx_wdt.c
index 663cad86c63..173494a681e 100644
--- a/drivers/watchdog/m54xx_wdt.c
+++ b/drivers/watchdog/m54xx_wdt.c
@@ -46,17 +46,17 @@ static void wdt_enable(void)
46 unsigned int gms0; 46 unsigned int gms0;
47 47
48 /* preserve GPIO usage, if any */ 48 /* preserve GPIO usage, if any */
49 gms0 = __raw_readl(MCF_MBAR + MCF_GPT_GMS0); 49 gms0 = __raw_readl(MCF_GPT_GMS0);
50 if (gms0 & MCF_GPT_GMS_TMS_GPIO) 50 if (gms0 & MCF_GPT_GMS_TMS_GPIO)
51 gms0 &= (MCF_GPT_GMS_TMS_GPIO | MCF_GPT_GMS_GPIO_MASK 51 gms0 &= (MCF_GPT_GMS_TMS_GPIO | MCF_GPT_GMS_GPIO_MASK
52 | MCF_GPT_GMS_OD); 52 | MCF_GPT_GMS_OD);
53 else 53 else
54 gms0 = MCF_GPT_GMS_TMS_GPIO | MCF_GPT_GMS_OD; 54 gms0 = MCF_GPT_GMS_TMS_GPIO | MCF_GPT_GMS_OD;
55 __raw_writel(gms0, MCF_MBAR + MCF_GPT_GMS0); 55 __raw_writel(gms0, MCF_GPT_GMS0);
56 __raw_writel(MCF_GPT_GCIR_PRE(heartbeat*(MCF_BUSCLK/0xffff)) | 56 __raw_writel(MCF_GPT_GCIR_PRE(heartbeat*(MCF_BUSCLK/0xffff)) |
57 MCF_GPT_GCIR_CNT(0xffff), MCF_MBAR + MCF_GPT_GCIR0); 57 MCF_GPT_GCIR_CNT(0xffff), MCF_GPT_GCIR0);
58 gms0 |= MCF_GPT_GMS_OCPW(0xA5) | MCF_GPT_GMS_WDEN | MCF_GPT_GMS_CE; 58 gms0 |= MCF_GPT_GMS_OCPW(0xA5) | MCF_GPT_GMS_WDEN | MCF_GPT_GMS_CE;
59 __raw_writel(gms0, MCF_MBAR + MCF_GPT_GMS0); 59 __raw_writel(gms0, MCF_GPT_GMS0);
60} 60}
61 61
62static void wdt_disable(void) 62static void wdt_disable(void)
@@ -64,18 +64,18 @@ static void wdt_disable(void)
64 unsigned int gms0; 64 unsigned int gms0;
65 65
66 /* disable watchdog */ 66 /* disable watchdog */
67 gms0 = __raw_readl(MCF_MBAR + MCF_GPT_GMS0); 67 gms0 = __raw_readl(MCF_GPT_GMS0);
68 gms0 &= ~(MCF_GPT_GMS_WDEN | MCF_GPT_GMS_CE); 68 gms0 &= ~(MCF_GPT_GMS_WDEN | MCF_GPT_GMS_CE);
69 __raw_writel(gms0, MCF_MBAR + MCF_GPT_GMS0); 69 __raw_writel(gms0, MCF_GPT_GMS0);
70} 70}
71 71
72static void wdt_keepalive(void) 72static void wdt_keepalive(void)
73{ 73{
74 unsigned int gms0; 74 unsigned int gms0;
75 75
76 gms0 = __raw_readl(MCF_MBAR + MCF_GPT_GMS0); 76 gms0 = __raw_readl(MCF_GPT_GMS0);
77 gms0 |= MCF_GPT_GMS_OCPW(0xA5); 77 gms0 |= MCF_GPT_GMS_OCPW(0xA5);
78 __raw_writel(gms0, MCF_MBAR + MCF_GPT_GMS0); 78 __raw_writel(gms0, MCF_GPT_GMS0);
79} 79}
80 80
81static int m54xx_wdt_open(struct inode *inode, struct file *file) 81static int m54xx_wdt_open(struct inode *inode, struct file *file)
@@ -195,8 +195,7 @@ static struct miscdevice m54xx_wdt_miscdev = {
195 195
196static int __init m54xx_wdt_init(void) 196static int __init m54xx_wdt_init(void)
197{ 197{
198 if (!request_mem_region(MCF_MBAR + MCF_GPT_GCIR0, 4, 198 if (!request_mem_region(MCF_GPT_GCIR0, 4, "Coldfire M54xx Watchdog")) {
199 "Coldfire M54xx Watchdog")) {
200 pr_warn("I/O region busy\n"); 199 pr_warn("I/O region busy\n");
201 return -EBUSY; 200 return -EBUSY;
202 } 201 }
@@ -208,7 +207,7 @@ static int __init m54xx_wdt_init(void)
208static void __exit m54xx_wdt_exit(void) 207static void __exit m54xx_wdt_exit(void)
209{ 208{
210 misc_deregister(&m54xx_wdt_miscdev); 209 misc_deregister(&m54xx_wdt_miscdev);
211 release_mem_region(MCF_MBAR + MCF_GPT_GCIR0, 4); 210 release_mem_region(MCF_GPT_GCIR0, 4);
212} 211}
213 212
214module_init(m54xx_wdt_init); 213module_init(m54xx_wdt_init);