diff options
author | Johan Hovold <jhovold@gmail.com> | 2013-06-12 17:04:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-06-12 19:29:46 -0400 |
commit | bba00e59107275faa615573c44eb0a513a1220a6 (patch) | |
tree | d0001c6d49763f38649c1535834921036759bdf9 | |
parent | e9f08bbe3f97829975d2b59091ef557101c83f61 (diff) |
rtc-at91rm9200: use shadow IMR on at91sam9x5
Add support for the at91sam9x5-family which must use the shadow
interrupt mask due to a hardware issue (causing RTC_IMR to always be
zero).
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Douglas Gilbert <dgilbert@interlog.com>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: Robert Nelson <Robert.Nelson@digikey.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt | 2 | ||||
-rw-r--r-- | drivers/rtc/rtc-at91rm9200.c | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt b/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt index 2a3feabd3b22..34c1505774bf 100644 --- a/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt +++ b/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | Atmel AT91RM9200 Real Time Clock | 1 | Atmel AT91RM9200 Real Time Clock |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: should be: "atmel,at91rm9200-rtc" | 4 | - compatible: should be: "atmel,at91rm9200-rtc" or "atmel,at91sam9x5-rtc" |
5 | - reg: physical base address of the controller and length of memory mapped | 5 | - reg: physical base address of the controller and length of memory mapped |
6 | region. | 6 | region. |
7 | - interrupts: rtc alarm/event interrupt | 7 | - interrupts: rtc alarm/event interrupt |
diff --git a/drivers/rtc/rtc-at91rm9200.c b/drivers/rtc/rtc-at91rm9200.c index 811a102092d4..f296f3f7db9b 100644 --- a/drivers/rtc/rtc-at91rm9200.c +++ b/drivers/rtc/rtc-at91rm9200.c | |||
@@ -309,12 +309,19 @@ static irqreturn_t at91_rtc_interrupt(int irq, void *dev_id) | |||
309 | static const struct at91_rtc_config at91rm9200_config = { | 309 | static const struct at91_rtc_config at91rm9200_config = { |
310 | }; | 310 | }; |
311 | 311 | ||
312 | static const struct at91_rtc_config at91sam9x5_config = { | ||
313 | .use_shadow_imr = true, | ||
314 | }; | ||
315 | |||
312 | #ifdef CONFIG_OF | 316 | #ifdef CONFIG_OF |
313 | static const struct of_device_id at91_rtc_dt_ids[] = { | 317 | static const struct of_device_id at91_rtc_dt_ids[] = { |
314 | { | 318 | { |
315 | .compatible = "atmel,at91rm9200-rtc", | 319 | .compatible = "atmel,at91rm9200-rtc", |
316 | .data = &at91rm9200_config, | 320 | .data = &at91rm9200_config, |
317 | }, { | 321 | }, { |
322 | .compatible = "atmel,at91sam9x5-rtc", | ||
323 | .data = &at91sam9x5_config, | ||
324 | }, { | ||
318 | /* sentinel */ | 325 | /* sentinel */ |
319 | } | 326 | } |
320 | }; | 327 | }; |