直接在rtc-s3c.c上修改的,对比一下2440和6410的手册,RTC的不同主要在:
1、 Tick Enable和Tick Time Count不同。Tick Enable的几个地方比较好改。
Tick Time Count的最大值是不同的,在s3c_rtc_setfreq计算的时候要注意,我加了一个宏 S3C_MAX_CNT ,6410里面为32768(TICCKSEL 使用默认的0),2440为128。
//tmp |= (128 / freq)-1; //wy ! modify
tmp |= (S3C_MAX_CNT / freq) - 1; //wy ! add for s3c6410
2、 6410多了个中断寄存器INTP,在s3c_rtc_alarmirq和s3c_rtc_tickirq里面要加上清中断的操作。
writeb(S3C2410_INTP_ALM, s3c_rtc_base + S3C2410_INTP); // add to s3c_rtc_alarmirq
writeb(S3C2410_INTP_TIC, s3c_rtc_base + S3C2410_INTP); // add to s3c_rtc_tickirq
具体的自己改吧,不难改。
阅读(1827) | 评论(0) | 转发(1) |