[PATCH] rtc: add support for rv3028 rtc

Alexandre Belloni alexandre.belloni at bootlin.com
Tue Mar 9 17:15:13 CET 2021


On 09/03/2021 17:10:21+0100, Stefan Roese wrote:
> Hi Heiko,
> 
> On 09.03.21 14:45, Heiko Schocher wrote:
> > add support for rtc3028 rtc from microcrystal.
> > based on linux dirver:
> > commit a38fd8748464: ("Linux 5.12-rc2")
> 
> Nitpicking: You might want to start a sentence in upper-case? ;)
> 
> Another minor comment below...
> 
> > Signed-off-by: Heiko Schocher <hs at denx.de>
> > 
> > ---
> > driver is based on code in linux, but with already
> > corrected weekday usage. linux codes the weekday
> > bitwise, while the weekday register has only 3 valid
> > bits as the app manual [1] says:
> > 
> > This register holds the current day of the week. Each value represents
> > one weekday that is assigned by the user. Values will range from 0 to 6
> > The weekday counter is simply a 3-bit counter which counts up to 6
> > and then resets to 0.
> > 
> > [1] https://www.microcrystal.com/fileadmin/Media/Products/RTC/App.Manual/RV-3028-C7_App-Manual.pdf
> > 
> > This is not a big problem, as userspace never use weekday.
> > Nevertheless, I will also send an update for the linux driver.
> > 
> > Also the nvram can be used for bootcounter purposes.
> > 
> > Tested this driver on "PHYTEC phyBOARD-Pollux i.MX8MP" board.
> > 
> > azure build:
> > https://dev.azure.com/hs0298/hs/_build/results?buildId=63&view=results
> > 
> >   drivers/rtc/Kconfig  |   6 ++
> >   drivers/rtc/Makefile |   1 +
> >   drivers/rtc/rv3028.c | 215 +++++++++++++++++++++++++++++++++++++++++++
> >   3 files changed, 222 insertions(+)
> >   create mode 100644 drivers/rtc/rv3028.c
> > 
> > diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
> > index aa6d90158c..e451308b40 100644
> > --- a/drivers/rtc/Kconfig
> > +++ b/drivers/rtc/Kconfig
> > @@ -95,6 +95,12 @@ config RTC_PCF8563
> >   	  If you say yes here you get support for the Philips PCF8563 RTC
> >   	  and compatible chips.
> > +config RTC_RV3028
> > +	bool "Enable RV3028 driver"
> > +	depends on DM_RTC
> > +	help
> > +	  The MicroCrystal RV3028 is a I2C Real Time Clock (RTC)
> > +
> >   config RTC_RV3029
> >   	bool "Enable RV3029 driver"
> >   	depends on DM_RTC
> > diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
> > index 6a45a9c874..e7acd76266 100644
> > --- a/drivers/rtc/Makefile
> > +++ b/drivers/rtc/Makefile
> > @@ -46,6 +46,7 @@ obj-$(CONFIG_RTC_PCF2127) += pcf2127.o
> >   obj-$(CONFIG_RTC_PL031) += pl031.o
> >   obj-$(CONFIG_RTC_PT7C4338) += pt7c4338.o
> >   obj-$(CONFIG_RTC_RS5C372A) += rs5c372.o
> > +obj-$(CONFIG_RTC_RV3028) += rv3028.o
> >   obj-$(CONFIG_RTC_RV3029) += rv3029.o
> >   obj-$(CONFIG_RTC_RV8803) += rv8803.o
> >   obj-$(CONFIG_RTC_RX8025) += rx8025.o
> > diff --git a/drivers/rtc/rv3028.c b/drivers/rtc/rv3028.c
> > new file mode 100644
> > index 0000000000..8d8336c5f1
> > --- /dev/null
> > +++ b/drivers/rtc/rv3028.c
> > @@ -0,0 +1,215 @@
> > +// SPDX-License-Identifier: GPL-2.0+
> > +/*
> > + * RTC driver for the Micro Crystal RV3028
> > + *
> > + * based on linux driver from
> > + * Copyright (C) 2019 Micro Crystal SA
> > + *
> > + * Alexandre Belloni <alexandre.belloni at bootlin.com>
> > + *
> > + */
> > +
> > +#include <common.h>
> 
> Please don't include "common.h" any more. It's deprecated.
> 
> > +#include <command.h>
> 
> Do you really need "command.h" ...
> 
> > +#include <dm.h>
> > +#include <eeprom.h>
> 
> ... and this one? Please check and only inlude the necessary headers.
> 

Wouldn't that be needed to expose the on board NVRAM or EEPROM? However
I don't see any code to access that right now.


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the U-Boot mailing list