On 25 June 2012 08:55, Oleg Ogurtsov <o.ogurt...@samsung.com> wrote: > Subject: [PATCH] Exynos4: added RTC device
"add", please. > > Signed-off-by: Oleg Ogurtsov <o.ogurt...@samsung.com> (You don't need to send a cover letter for a single patch, by the way.) > +#define BCDSEC 0x0070 > +#define BDCMIN 0x0074 typo, should be BCDMIN I assume. > +#define BCDHOUR 0x0078 > +#define BCDDAY 0x007C > +#define BCDDAYWEEK 0x0080 > +#define BCDMON 0x0084 > +#define BCDYEAR 0x0088 > +/* > + * 1Hz clock handler > + */ > +static void exynos4210_rtc_1Hz_tick(void *opaque) > +{ > + Exynos4210RTCState *s = (Exynos4210RTCState *)opaque; > + > + rtc_next_second(&s->current_tm); > + /* DPRINTF("1Hz tick\n"); */ > + > + /* raise IRQ */ > + if (s->reg_rtcalm & ALARM_INT_ENABLE) { > + check_alarm_raise(s); > + } > + > + ptimer_set_count(s->ptimer_1Hz, RTC_BASE_FREQ); > + ptimer_run(s->ptimer_1Hz, 1); > +} You could I think structure this so that instead of running the timer every second you only have it go off at the alarm time (you then recalculate the right values etc if the guest reads/writes the registers). That would be more complicated though and I guess one timer fire every second isn't a big deal. We seem to do it this way in other RTCs too, so this code is OK. -- PMM