Message ID | 20241115194858.3837298-1-Frank.Li@nxp.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/1] rtc: bbnsm: Enable RTC by default to fix time read failure | expand |
On 15/11/2024 14:48:58-0500, Frank Li wrote: > From: Jacky Bai <ping.bai@nxp.com> > > Enable the RTC by default even when no valid time is set to ensure the > RTC's time read and alarm functions work properly. Without this, running > hwclock results in the following error: > > hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument > What is providing your hwclock and which version does it have? > Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support") > Signed-off-by: Jacky Bai <ping.bai@nxp.com> > Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> > Signed-off-by: Frank Li <Frank.Li@nxp.com> > --- > drivers/rtc/rtc-nxp-bbnsm.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c > index fa3b0328c7a25..6610db2f75125 100644 > --- a/drivers/rtc/rtc-nxp-bbnsm.c > +++ b/drivers/rtc/rtc-nxp-bbnsm.c > @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev) > /* clear all the pending events */ > regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A); > > + /* Enable the Real-Time counter */ > + regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN); > + > device_init_wakeup(&pdev->dev, true); > dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq); > > -- > 2.34.1 >
On 16/11/2024 20:36:54+0100, Alexandre Belloni wrote: > On 15/11/2024 14:48:58-0500, Frank Li wrote: > > From: Jacky Bai <ping.bai@nxp.com> > > > > Enable the RTC by default even when no valid time is set to ensure the > > RTC's time read and alarm functions work properly. Without this, running > > hwclock results in the following error: > > > > hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument > > > > > What is providing your hwclock and which version does it have? This is a bug in util-linux that needs to be fixed. > > > > Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support") > > Signed-off-by: Jacky Bai <ping.bai@nxp.com> > > Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > > --- > > drivers/rtc/rtc-nxp-bbnsm.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c > > index fa3b0328c7a25..6610db2f75125 100644 > > --- a/drivers/rtc/rtc-nxp-bbnsm.c > > +++ b/drivers/rtc/rtc-nxp-bbnsm.c > > @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev) > > /* clear all the pending events */ > > regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A); > > > > + /* Enable the Real-Time counter */ > > + regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN); > > + > > device_init_wakeup(&pdev->dev, true); > > dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq); > > > > -- > > 2.34.1 > > > > -- > Alexandre Belloni, co-owner and COO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com
On Sun, Nov 17, 2024 at 11:08:43PM +0100, Alexandre Belloni wrote: > On 16/11/2024 20:36:54+0100, Alexandre Belloni wrote: > > On 15/11/2024 14:48:58-0500, Frank Li wrote: > > > From: Jacky Bai <ping.bai@nxp.com> > > > > > > Enable the RTC by default even when no valid time is set to ensure the > > > RTC's time read and alarm functions work properly. Without this, running > > > hwclock results in the following error: > > > > > > hwclock: ioctl(RTC_RD_TIME) to /dev/rtc0 to read the time failed: Invalid argument > > > > > > > > > What is providing your hwclock and which version does it have? > > > This is a bug in util-linux that needs to be fixed. What's suposed/expected beheavor? I think rtc should be enable by default. Frank > > > > > > > Fixes: eb7b85853c38 ("rtc: bbnsm: Add the bbnsm rtc support") > > > Signed-off-by: Jacky Bai <ping.bai@nxp.com> > > > Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> > > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > > > --- > > > drivers/rtc/rtc-nxp-bbnsm.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c > > > index fa3b0328c7a25..6610db2f75125 100644 > > > --- a/drivers/rtc/rtc-nxp-bbnsm.c > > > +++ b/drivers/rtc/rtc-nxp-bbnsm.c > > > @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev) > > > /* clear all the pending events */ > > > regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A); > > > > > > + /* Enable the Real-Time counter */ > > > + regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN); > > > + > > > device_init_wakeup(&pdev->dev, true); > > > dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq); > > > > > > -- > > > 2.34.1 > > > > > > > -- > > Alexandre Belloni, co-owner and COO, Bootlin > > Embedded Linux and Kernel engineering > > https://bootlin.com > > -- > Alexandre Belloni, co-owner and COO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com
diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c index fa3b0328c7a25..6610db2f75125 100644 --- a/drivers/rtc/rtc-nxp-bbnsm.c +++ b/drivers/rtc/rtc-nxp-bbnsm.c @@ -189,6 +189,9 @@ static int bbnsm_rtc_probe(struct platform_device *pdev) /* clear all the pending events */ regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A); + /* Enable the Real-Time counter */ + regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN); + device_init_wakeup(&pdev->dev, true); dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);