From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Phil Elwell <phil@raspberrypi.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>, linux-rtc@vger.kernel.org
Subject: Re: Question about PCF85063A invalid state
Date: Wed, 13 Oct 2021 22:14:26 +0200 [thread overview]
Message-ID: <YWc+IghMxa4oCcK9@piout.net> (raw)
In-Reply-To: <3c6e4252-8271-c968-0bf9-83a23384ce01@raspberrypi.com>
Hello,
On 13/10/2021 10:48:48+0100, Phil Elwell wrote:
> Hi,
>
> We're using the PCF85063A on our Compute Module 4 I/O board, and a number of
> users have experienced problems with invalid state after inserting a backup
> battery. So far the problem has been confined to EXT_TEST (bit 7 of CTRL_1)
> being set, but there are a number of registers for which the driver only
> modifies a subset of the bits.
>
> I can think of a number of ways to clear this invalid state, none of which
> are difficult - force a software reset whenever certain bits of certain
> registers have certain values, always specifically force some bits to known
> values, etc. -
> but are there any preferences or pitfalls to be aware of?
>
This is a very difficult topic because contrary to most of the other
IPs, the RTC is still running while Linux is not and it is expected that
it will retain its configuration across reboots (well, this is exactly
what the RTC is for).
This means that you may have some code (bootloader, firmware) running
before Linux configuring the RTC and so setting or clearing bits in
registers that are never touched by Linux. So, it is not possible to go
and change random bits because they don't have the default value or the
value we expect. Instead it is usually necessary to provide a way to
set those bits.
However, for EXT_TEST, I would assume the RTC lost its time once it is
set so I would treat it just like OS: if it is set, then leave it that
way until .set_time is called and return -EINVAL in .read_time.
I didn't try but if OS is always set by the RTC when EXT_TEST is set,
then maybe we don't need to check in .read_time.
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2021-10-13 20:14 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-13 9:48 Question about PCF85063A invalid state Phil Elwell
2021-10-13 20:14 ` Alexandre Belloni [this message]
2021-10-15 9:07 ` Phil Elwell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YWc+IghMxa4oCcK9@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=a.zummo@towertech.it \
--cc=linux-rtc@vger.kernel.org \
--cc=phil@raspberrypi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox