drivers/rtc: prepare mvrtc for DM conversion
PATCH 1/2 drivers/rtc: prepare mvrtc for DM conversion
Split the rtc_{get,set,reset} functions so that the bodies can be used in a DM driver.
---
drivers/rtc/mvrtc.c | 57 +++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 18 deletions(-)
drivers/rtc/mvrtc.c +39 -18
@@ -17,19 +17,16 @@/* This RTC does not support century, so we assume 20 */ #define CENTURY 20 -int rtc_get (struct rtc_time *t) +static int __mv_rtc_get (struct mvrtc_registers *regs,struct rtc_time *t) {u32 time;u32 date; -struct mvrtc_registers *mvrtc_regs; - - mvrtc_regs = (struct mvrtc_registers *)KW_RTC_BASE ;/* read the time register */ - time =readl (&mvrtc_regs->time); + time =readl (®s->time);/* read the date register */ - date =readl (&mvrtc_regs->date); + date =readl (®s->date);/* test for 12 hour clock (can't tell if it's am/pm) */ if (time &MVRTC_HRFMT_MSK ) {
@@ -57,13 +54,20 @@ int rtc_get(struct rtc_time *t)return 0 ; } -int rtc_set (struct rtc_time *t) +#ifndef CONFIG_DM_RTC +int rtc_get (struct rtc_time *t) +{ +struct mvrtc_registers *regs; + + regs = (struct mvrtc_registers *)KW_RTC_BASE ; +return __mv_rtc_get (regs, t); +} +#endif /* !CONFIG_DM_RTC */ + +static int __mv_rtc_set (struct mvrtc_registers *regs,const struct rtc_time *t) {u32 time =0 ;/* sets hour format bit to zero, 24hr format. */ u32 date =0 ; -struct mvrtc_registers *mvrtc_regs; - - mvrtc_regs = (struct mvrtc_registers *)KW_RTC_BASE ;/* check that this code isn't 80+ years old ;-) */ if ((t->tm_year /100 ) !=CENTURY )
@@ -81,28 +85,45 @@ int rtc_set(struct rtc_time *t) date |= (bin2bcd (t->tm_year %100 ) &MVRTC_YEAR_MSK ) <<MVRTC_YEAR_SFT ;/* write the time register */ -writel (time, &mvrtc_regs->time); +writel (time, ®s->time);/* write the date register */ -writel (date, &mvrtc_regs->date); +writel (date, ®s->date);return 0 ; } -void rtc_reset (void ) +#ifndef CONFIG_DM_RTC +int rtc_set (struct rtc_time *t) +{ +struct mvrtc_registers *regs; + + regs = (struct mvrtc_registers *)KW_RTC_BASE ; +return __mv_rtc_set (regs, t); +} +#endif /* !CONFIG_DM_RTC */ + +static void __mv_rtc_reset (struct mvrtc_registers *regs) {u32 time;u32 sec; -struct mvrtc_registers *mvrtc_regs; - - mvrtc_regs = (struct mvrtc_registers *)KW_RTC_BASE ;/* no init routine for this RTC needed, just check that it's working */ - time =readl (&mvrtc_regs->time); + time =readl (®s->time); sec =bcd2bin ((time >>MVRTC_SEC_SFT ) &MVRTC_SEC_MSK );udelay (1000000 ); - time =readl (&mvrtc_regs->time); + time =readl (®s->time);if (sec ==bcd2bin ((time >>MVRTC_SEC_SFT ) &MVRTC_SEC_MSK ))printf ("Error: RTC did not increment.\n" ); } + +#ifndef CONFIG_DM_RTC +void rtc_reset (void ) +{ +struct mvrtc_registers *regs; + + regs = (struct mvrtc_registers *)KW_RTC_BASE ; +__mv_rtc_reset (regs); +} +#endif /* !CONFIG_DM_RTC */
Signature · 1 line
2.17.0
PATCH 2/2 drivers/rtc: convert mvrtc to DM
Add DM support for the Marvell RTC driver.
---
drivers/rtc/Kconfig | 7 ++++++ drivers/rtc/mvrtc.c | 56 +++++++++++++++++++++++++++++++++++++++++++++ drivers/rtc/mvrtc.h | 5 ++++ 3 files changed, 68 insertions(+)
drivers/rtc/Kconfig +7 -0
@@ -48,6 +48,13 @@ config RTC_RX8010SJ help Support for Epson RX8010SJ Real Time Clock devices. +config RTC_MV + bool "Enable Marvell RTC driver" + depends on DM_RTC + help + Enable Marvell RTC driver. This driver supports the rtc that is present + on some Marvell SoCs. + config RTC_S35392A bool "Enable S35392A driver" select BITREVERSE
drivers/rtc/mvrtc.c +56 -0
65 lines not on this page · raw message
drivers/rtc/mvrtc.h +5 -0
@@ -20,6 +20,11 @@ struct mvrtc_registers {u32 date; }; +/* Platform data */ +struct mvrtc_pdata { +phys_addr_t iobase; +}; +/* time register */ #define MVRTC_SEC_SFT 0#define MVRTC_SEC_MSK 0x7f
Signature · 1 line
2.17.0
PATCH 2/2 drivers/rtc: convert mvrtc to DM
Quoted 3 lines · Chris Packham
Add DM support for the Marvell RTC driver.
Signed-off-by Chris Packham <[email protected]>
Thanks,
Stefan
PATCH 2/2 drivers/rtc: convert mvrtc to DM
In reply to Chris PackhamQuoted 4 lines · Chris Packham
Add DM support for the Marvell RTC driver.
Signed-off-by Chris Packham <[email protected]>Reviewed-by Stefan Roese <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180606/07613b41/attachment.sig>
PATCH 1/2 drivers/rtc: prepare mvrtc for DM conversion
In reply to Chris PackhamQuoted 4 lines · Chris Packham
Split the rtc_{get,set,reset} functions so that the bodies can be used in a DM driver.
Signed-off-by Chris Packham <[email protected]>
Thanks,
Stefan
PATCH 1/2 drivers/rtc: prepare mvrtc for DM conversion
In reply to Chris PackhamQuoted 5 lines · Chris Packham
Split the rtc_{get,set,reset} functions so that the bodies can be used in a DM driver.
Signed-off-by Chris Packham <[email protected]>Reviewed-by Stefan Roese <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180606/a699ef90/attachment.sig>