projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
x86: do no overwrite CONFIG_SCSI_LOWLEVEL
[openwrt.git]
/
target
/
linux
/
xburst
/
files-2.6.32
/
drivers
/
rtc
/
rtc-jz4740.c
diff --git
a/target/linux/xburst/files-2.6.32/drivers/rtc/rtc-jz4740.c
b/target/linux/xburst/files-2.6.32/drivers/rtc/rtc-jz4740.c
index
190b54a
..
03479a7
100644
(file)
--- a/
target/linux/xburst/files-2.6.32/drivers/rtc/rtc-jz4740.c
+++ b/
target/linux/xburst/files-2.6.32/drivers/rtc/rtc-jz4740.c
@@
-22,7
+22,8
@@
#define JZ_REG_RTC_CTRL 0x00
#define JZ_REG_RTC_SEC 0x04
#define JZ_REG_RTC_SEC_ALARM 0x08
#define JZ_REG_RTC_CTRL 0x00
#define JZ_REG_RTC_SEC 0x04
#define JZ_REG_RTC_SEC_ALARM 0x08
-#define JZ_REG_REGULATOR 0x0C
+#define JZ_REG_RTC_REGULATOR 0x0C
+#define JZ_REG_RTC_SCRATCHPAD 0x34
#define JZ_RTC_CTRL_WRDY BIT(7)
#define JZ_RTC_CTRL_1HZ BIT(6)
#define JZ_RTC_CTRL_WRDY BIT(7)
#define JZ_RTC_CTRL_1HZ BIT(6)
@@
-211,6
+212,7
@@
static int __devinit jz4740_rtc_probe(struct platform_device *pdev)
{
int ret;
struct jz4740_rtc *rtc;
{
int ret;
struct jz4740_rtc *rtc;
+ uint32_t scratchpad;
rtc = kmalloc(sizeof(*rtc), GFP_KERNEL);
rtc = kmalloc(sizeof(*rtc), GFP_KERNEL);
@@
-258,13
+260,18
@@
static int __devinit jz4740_rtc_probe(struct platform_device *pdev)
}
ret = request_irq(rtc->irq, jz4740_rtc_irq, 0,
}
ret = request_irq(rtc->irq, jz4740_rtc_irq, 0,
- pdev->name,
rtc);
+ pdev->name, rtc);
if (ret) {
dev_err(&pdev->dev, "Failed to request rtc irq: %d\n", ret);
goto err_unregister_rtc;
}
if (ret) {
dev_err(&pdev->dev, "Failed to request rtc irq: %d\n", ret);
goto err_unregister_rtc;
}
- printk("rtc-ctrl: %d\n", jz4740_rtc_reg_read(rtc, JZ_REG_RTC_CTRL));
+
+ scratchpad = jz4740_rtc_reg_read(rtc, JZ_REG_RTC_SCRATCHPAD);
+ if (scratchpad != 0x12345678) {
+ jz4740_rtc_reg_write(rtc, JZ_REG_RTC_SCRATCHPAD, 0x12345678);
+ jz4740_rtc_reg_write(rtc, JZ_REG_RTC_SEC, 0);
+ }
return 0;
return 0;
@@
-285,6
+292,8
@@
static int __devexit jz4740_rtc_remove(struct platform_device *pdev)
{
struct jz4740_rtc *rtc = platform_get_drvdata(pdev);
{
struct jz4740_rtc *rtc = platform_get_drvdata(pdev);
+ free_irq(rtc->irq, rtc);
+
rtc_device_unregister(rtc->rtc);
iounmap(rtc->base);
rtc_device_unregister(rtc->rtc);
iounmap(rtc->base);
@@
-322,4
+331,3
@@
MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("RTC driver for the JZ4720/JZ4740 SoC\n");
MODULE_ALIAS("platform:jz4740-rtc");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("RTC driver for the JZ4720/JZ4740 SoC\n");
MODULE_ALIAS("platform:jz4740-rtc");
-MODULE_ALIAS("platform:jz4720-rtc");
This page took
0.02324 seconds
and
4
git commands to generate.