Alexandre Belloni
024e6f3dce
rtc: rv3028: ensure ram configuration registers are saved
...
If RV3028_CTRL1_EERD is not set (this is the default), the RTC will refresh
the RAM configuration registers from the EEPROM at midnight. It is
necessary to save the RAM registers back to EEPROM after modifying them.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Link: https://lore.kernel.org/r/20201009153101.721149-4-alexandre.belloni@bootlin.com
2020-10-15 12:09:35 +02:00
Alexandre Belloni
de0ad60e79
rtc: rv3028: factorize EERD bit handling
...
Both rv3028_eeprom_write and rv3028_eeprom_read enable EERD before sending
commands to the EEPROM and restore it afterwards. Factorize this code.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Link: https://lore.kernel.org/r/20201009153101.721149-3-alexandre.belloni@bootlin.com
2020-10-15 12:09:35 +02:00
Alexandre Belloni
c1efae1432
rtc: rv3028: fix trickle resistor values
...
Version 1.0 of the application manual had the wrong resistor values. Fix
them according to version 1.1
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Link: https://lore.kernel.org/r/20201009153101.721149-2-alexandre.belloni@bootlin.com
2020-10-15 12:09:35 +02:00
Alexandre Belloni
00e8e87f10
rtc: rv3028: fix clock output support
...
rv3028_clkout_set_rate unconditionally sets RV3028_CLKOUT_CLKOE but
clk_set_rate may be called with the clock disabled. Ensure the clock is
kept disabled if it was not yet enabled.
Also, the actual rate was overwritten when enabling the clock, properly
write to the register only once.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Link: https://lore.kernel.org/r/20201009153101.721149-1-alexandre.belloni@bootlin.com
2020-10-15 12:09:34 +02:00
Chuhong Yuan
c3b29bf6f1
rtc: rv3028: Add missed check for devm_regmap_init_i2c()
...
rv3028_probe() misses a check for devm_regmap_init_i2c().
Add the missed check to fix it.
Fixes: e6e7376cfd
("rtc: rv3028: add new driver")
Signed-off-by: Chuhong Yuan <hslester96@gmail.com >
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Link: https://lore.kernel.org/r/20200528103950.912353-1-hslester96@gmail.com
2020-05-30 04:12:43 +02:00
Alexandre Belloni
86e655f9f3
rtc: rv3028: return meaningful value for RTC_VL_READ
...
RV3028_STATUS_PORF means the voltage dropped too low and data has been
lost.
Link: https://lore.kernel.org/r/20191214220259.621996-14-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
2019-12-18 10:37:39 +01:00
Alexandre Belloni
92c02daaba
rtc: rv3028: remove RTC_VL_CLR handling
...
Remove RTC_VL_CLR handling because it is a disservice to userspace as it
removes the important information that the RTC data is invalid. This may
lead userspace to set an invalid system time later on.
Link: https://lore.kernel.org/r/20191214220259.621996-13-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
2019-12-18 10:37:37 +01:00
Parthiban Nallathambi
f583c341a5
rtc: rv3028: add clkout support
...
rv3028 provides clkout (enabled by default). Add clkout
to clock framework source and control from device tree for
variable frequency with enable and disable functionality.
Signed-off-by: Parthiban Nallathambi <pn@denx.de >
Link: https://lore.kernel.org/r/20191018100425.1687979-1-pn@denx.de
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
2019-10-19 23:16:57 +02:00
Alexandre Belloni
44c638ce4e
rtc: remove superfluous error message
...
The RTC core now has error messages in case of registration failure, there
is no need to have other messages in the drivers.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Link: https://lore.kernel.org/r/20190818220041.17833-2-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
2019-08-21 09:57:23 +02:00
Alexandre Belloni
e6e7376cfd
rtc: rv3028: add new driver
...
Add a driver for the MicroCrystal RV-3028. It is a SMT Real-Time Clock
Module that incorporates an integrated CMOS circuit together with an XTAL.
It has an i2c interface.
The driver handles date/time, alarms, trickle charging, timestamping,
frequency offset correction, EEPROM and NVRAM.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
2019-02-17 21:29:10 +01:00