Commit 9cf2f9b5 authored by Alexandre Belloni's avatar Alexandre Belloni
Browse files

rtc: coh901331: switch to rtc_time64_to_tm/rtc_tm_to_time64



Call the 64bit versions of rtc_tm time conversion now that the range is
enforced by the core.

Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 06cfd668
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -80,13 +80,14 @@ static int coh901331_read_time(struct device *dev, struct rtc_time *tm)

	clk_enable(rtap->clk);
	/* Check if the time is valid */
	if (readl(rtap->virtbase + COH901331_VALID)) {
		rtc_time_to_tm(readl(rtap->virtbase + COH901331_CUR_TIME), tm);
	if (!readl(rtap->virtbase + COH901331_VALID)) {
		clk_disable(rtap->clk);
		return 0;
		return -EINVAL;
	}

	rtc_time64_to_tm(readl(rtap->virtbase + COH901331_CUR_TIME), tm);
	clk_disable(rtap->clk);
	return -EINVAL;
	return 0;
}

static int coh901331_set_mmss(struct device *dev, unsigned long secs)
@@ -105,7 +106,7 @@ static int coh901331_read_alarm(struct device *dev, struct rtc_wkalrm *alarm)
	struct coh901331_port *rtap = dev_get_drvdata(dev);

	clk_enable(rtap->clk);
	rtc_time_to_tm(readl(rtap->virtbase + COH901331_ALARM), &alarm->time);
	rtc_time64_to_tm(readl(rtap->virtbase + COH901331_ALARM), &alarm->time);
	alarm->pending = readl(rtap->virtbase + COH901331_IRQ_EVENT) & 1U;
	alarm->enabled = readl(rtap->virtbase + COH901331_IRQ_MASK) & 1U;
	clk_disable(rtap->clk);
@@ -116,9 +117,8 @@ static int coh901331_read_alarm(struct device *dev, struct rtc_wkalrm *alarm)
static int coh901331_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
{
	struct coh901331_port *rtap = dev_get_drvdata(dev);
	unsigned long time;
	unsigned long time =  rtc_tm_to_time64(&alarm->time);

	rtc_tm_to_time(&alarm->time, &time);
	clk_enable(rtap->clk);
	writel(time, rtap->virtbase + COH901331_ALARM);
	writel(alarm->enabled, rtap->virtbase + COH901331_IRQ_MASK);