Commit b5167159d4341d408ef6b941975f2fe8973b2a94
Committed by
John Stultz
1 parent
a91d2bab35
Exists in
master
and in
4 other branches
rtc: stmp3xxx: Get rid of mach-specific accessors
Replace the accessors with standard readl/writel to remove their platform-dependency. Also, drop __raw_(read|write)l-accessors while we are here. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Tested-by: Shawn Guo <shawn.guo@freescale.com> Signed-off-by: John Stultz <john.stultz@linaro.org>
Showing 1 changed file with 34 additions and 30 deletions Side-by-side Diff
drivers/rtc/rtc-stmp3xxx.c
... | ... | @@ -18,6 +18,7 @@ |
18 | 18 | */ |
19 | 19 | #include <linux/kernel.h> |
20 | 20 | #include <linux/module.h> |
21 | +#include <linux/io.h> | |
21 | 22 | #include <linux/init.h> |
22 | 23 | #include <linux/platform_device.h> |
23 | 24 | #include <linux/interrupt.h> |
24 | 25 | |
... | ... | @@ -25,9 +26,10 @@ |
25 | 26 | #include <linux/slab.h> |
26 | 27 | |
27 | 28 | #include <mach/common.h> |
28 | -#include <mach/mxs.h> | |
29 | 29 | |
30 | 30 | #define STMP3XXX_RTC_CTRL 0x0 |
31 | +#define STMP3XXX_RTC_CTRL_SET 0x4 | |
32 | +#define STMP3XXX_RTC_CTRL_CLR 0x8 | |
31 | 33 | #define STMP3XXX_RTC_CTRL_ALARM_IRQ_EN 0x00000001 |
32 | 34 | #define STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN 0x00000002 |
33 | 35 | #define STMP3XXX_RTC_CTRL_ALARM_IRQ 0x00000004 |
... | ... | @@ -42,6 +44,8 @@ |
42 | 44 | #define STMP3XXX_RTC_ALARM 0x40 |
43 | 45 | |
44 | 46 | #define STMP3XXX_RTC_PERSISTENT0 0x60 |
47 | +#define STMP3XXX_RTC_PERSISTENT0_SET 0x64 | |
48 | +#define STMP3XXX_RTC_PERSISTENT0_CLR 0x68 | |
45 | 49 | #define STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN 0x00000002 |
46 | 50 | #define STMP3XXX_RTC_PERSISTENT0_ALARM_EN 0x00000004 |
47 | 51 | #define STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE 0x00000080 |
... | ... | @@ -60,7 +64,7 @@ |
60 | 64 | * NEW_REGS/STALE_REGS bitfields go. In fact it's 0x1=P0, |
61 | 65 | * 0x2=P1, .., 0x20=P5, 0x40=ALARM, 0x80=SECONDS |
62 | 66 | */ |
63 | - while (__raw_readl(rtc_data->io + STMP3XXX_RTC_STAT) & | |
67 | + while (readl(rtc_data->io + STMP3XXX_RTC_STAT) & | |
64 | 68 | (0x80 << STMP3XXX_RTC_STAT_STALE_SHIFT)) |
65 | 69 | cpu_relax(); |
66 | 70 | } |
... | ... | @@ -71,8 +75,7 @@ |
71 | 75 | struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); |
72 | 76 | |
73 | 77 | stmp3xxx_wait_time(rtc_data); |
74 | - rtc_time_to_tm(__raw_readl(rtc_data->io + STMP3XXX_RTC_SECONDS), | |
75 | - rtc_tm); | |
78 | + rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_SECONDS), rtc_tm); | |
76 | 79 | return 0; |
77 | 80 | } |
78 | 81 | |
... | ... | @@ -80,7 +83,7 @@ |
80 | 83 | { |
81 | 84 | struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); |
82 | 85 | |
83 | - __raw_writel(t, rtc_data->io + STMP3XXX_RTC_SECONDS); | |
86 | + writel(t, rtc_data->io + STMP3XXX_RTC_SECONDS); | |
84 | 87 | stmp3xxx_wait_time(rtc_data); |
85 | 88 | return 0; |
86 | 89 | } |
87 | 90 | |
88 | 91 | |
... | ... | @@ -92,19 +95,19 @@ |
92 | 95 | u32 status; |
93 | 96 | u32 events = 0; |
94 | 97 | |
95 | - status = __raw_readl(rtc_data->io + STMP3XXX_RTC_CTRL) & | |
98 | + status = readl(rtc_data->io + STMP3XXX_RTC_CTRL) & | |
96 | 99 | (STMP3XXX_RTC_CTRL_ALARM_IRQ | |
97 | 100 | STMP3XXX_RTC_CTRL_ONEMSEC_IRQ); |
98 | 101 | |
99 | 102 | if (status & STMP3XXX_RTC_CTRL_ALARM_IRQ) { |
100 | - __mxs_clrl(STMP3XXX_RTC_CTRL_ALARM_IRQ, | |
101 | - rtc_data->io + STMP3XXX_RTC_CTRL); | |
103 | + writel(STMP3XXX_RTC_CTRL_ALARM_IRQ, | |
104 | + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); | |
102 | 105 | events |= RTC_AF | RTC_IRQF; |
103 | 106 | } |
104 | 107 | |
105 | 108 | if (status & STMP3XXX_RTC_CTRL_ONEMSEC_IRQ) { |
106 | - __mxs_clrl(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ, | |
107 | - rtc_data->io + STMP3XXX_RTC_CTRL); | |
109 | + writel(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ, | |
110 | + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); | |
108 | 111 | if (++rtc_data->irq_count % 1000 == 0) { |
109 | 112 | events |= RTC_UF | RTC_IRQF; |
110 | 113 | rtc_data->irq_count = 0; |
111 | 114 | |
112 | 115 | |
... | ... | @@ -120,17 +123,19 @@ |
120 | 123 | static int stmp3xxx_alarm_irq_enable(struct device *dev, unsigned int enabled) |
121 | 124 | { |
122 | 125 | struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); |
123 | - void __iomem *p = rtc_data->io + STMP3XXX_RTC_PERSISTENT0, | |
124 | - *ctl = rtc_data->io + STMP3XXX_RTC_CTRL; | |
125 | 126 | |
126 | 127 | if (enabled) { |
127 | - __mxs_setl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
128 | - STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, p); | |
129 | - __mxs_setl(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, ctl); | |
128 | + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
129 | + STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, | |
130 | + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_SET); | |
131 | + writel(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, | |
132 | + rtc_data->io + STMP3XXX_RTC_CTRL_SET); | |
130 | 133 | } else { |
131 | - __mxs_clrl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
132 | - STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, p); | |
133 | - __mxs_clrl(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, ctl); | |
134 | + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
135 | + STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN, | |
136 | + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); | |
137 | + writel(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, | |
138 | + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); | |
134 | 139 | } |
135 | 140 | return 0; |
136 | 141 | } |
... | ... | @@ -139,8 +144,7 @@ |
139 | 144 | { |
140 | 145 | struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); |
141 | 146 | |
142 | - rtc_time_to_tm(__raw_readl(rtc_data->io + STMP3XXX_RTC_ALARM), | |
143 | - &alm->time); | |
147 | + rtc_time_to_tm(readl(rtc_data->io + STMP3XXX_RTC_ALARM), &alm->time); | |
144 | 148 | return 0; |
145 | 149 | } |
146 | 150 | |
... | ... | @@ -150,7 +154,7 @@ |
150 | 154 | struct stmp3xxx_rtc_data *rtc_data = dev_get_drvdata(dev); |
151 | 155 | |
152 | 156 | rtc_tm_to_time(&alm->time, &t); |
153 | - __raw_writel(t, rtc_data->io + STMP3XXX_RTC_ALARM); | |
157 | + writel(t, rtc_data->io + STMP3XXX_RTC_ALARM); | |
154 | 158 | return 0; |
155 | 159 | } |
156 | 160 | |
157 | 161 | |
... | ... | @@ -170,9 +174,9 @@ |
170 | 174 | if (!rtc_data) |
171 | 175 | return 0; |
172 | 176 | |
173 | - __mxs_clrl(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | | |
177 | + writel(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | | |
174 | 178 | STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, |
175 | - rtc_data->io + STMP3XXX_RTC_CTRL); | |
179 | + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); | |
176 | 180 | free_irq(rtc_data->irq_alarm, &pdev->dev); |
177 | 181 | free_irq(rtc_data->irq_1msec, &pdev->dev); |
178 | 182 | rtc_device_unregister(rtc_data->rtc); |
... | ... | @@ -210,7 +214,7 @@ |
210 | 214 | rtc_data->irq_alarm = platform_get_irq(pdev, 0); |
211 | 215 | rtc_data->irq_1msec = platform_get_irq(pdev, 1); |
212 | 216 | |
213 | - if (!(__raw_readl(STMP3XXX_RTC_STAT + rtc_data->io) & | |
217 | + if (!(readl(STMP3XXX_RTC_STAT + rtc_data->io) & | |
214 | 218 | STMP3XXX_RTC_STAT_RTC_PRESENT)) { |
215 | 219 | dev_err(&pdev->dev, "no device onboard\n"); |
216 | 220 | err = -ENODEV; |
217 | 221 | |
... | ... | @@ -220,10 +224,10 @@ |
220 | 224 | platform_set_drvdata(pdev, rtc_data); |
221 | 225 | |
222 | 226 | mxs_reset_block(rtc_data->io); |
223 | - __mxs_clrl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
227 | + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
224 | 228 | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN | |
225 | 229 | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE, |
226 | - rtc_data->io + STMP3XXX_RTC_PERSISTENT0); | |
230 | + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); | |
227 | 231 | |
228 | 232 | rtc_data->rtc = rtc_device_register(pdev->name, &pdev->dev, |
229 | 233 | &stmp3xxx_rtc_ops, THIS_MODULE); |
230 | 234 | |
... | ... | @@ -253,9 +257,9 @@ |
253 | 257 | out_irq1: |
254 | 258 | free_irq(rtc_data->irq_alarm, &pdev->dev); |
255 | 259 | out_irq_alarm: |
256 | - __mxs_clrl(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | | |
260 | + writel(STMP3XXX_RTC_CTRL_ONEMSEC_IRQ_EN | | |
257 | 261 | STMP3XXX_RTC_CTRL_ALARM_IRQ_EN, |
258 | - rtc_data->io + STMP3XXX_RTC_CTRL); | |
262 | + rtc_data->io + STMP3XXX_RTC_CTRL_CLR); | |
259 | 263 | rtc_device_unregister(rtc_data->rtc); |
260 | 264 | out_remap: |
261 | 265 | platform_set_drvdata(pdev, NULL); |
262 | 266 | |
... | ... | @@ -276,10 +280,10 @@ |
276 | 280 | struct stmp3xxx_rtc_data *rtc_data = platform_get_drvdata(dev); |
277 | 281 | |
278 | 282 | mxs_reset_block(rtc_data->io); |
279 | - __mxs_clrl(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
283 | + writel(STMP3XXX_RTC_PERSISTENT0_ALARM_EN | | |
280 | 284 | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE_EN | |
281 | 285 | STMP3XXX_RTC_PERSISTENT0_ALARM_WAKE, |
282 | - rtc_data->io + STMP3XXX_RTC_PERSISTENT0); | |
286 | + rtc_data->io + STMP3XXX_RTC_PERSISTENT0_CLR); | |
283 | 287 | return 0; |
284 | 288 | } |
285 | 289 | #else |