From: Sam Ravnborg <sam@ravnborg.org>
To: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Cc: devicetree@vger.kernel.org, san@skov.dk
Subject: Re: Addding a property that silently breaks linux kernel driver?
Date: Fri, 7 Sep 2018 19:51:27 +0200 [thread overview]
Message-ID: <20180907175127.GA16794@ravnborg.org> (raw)
In-Reply-To: <980c85d3-44a3-a524-b9ce-9062d1818211@mentor.com>
Hi Vladimir.
Thanks for taking your time to investigate this!
> > The NXP RTC support that two different capacitors are connected.
> > The default (what the RTC is programmed to after reset) is 7 pF.
> > But one may also connect 12.5 pF to save power.
> > To use the 12.5 pF the RTC needs to be properly configured.
> >
> > The RTC can only support either 7 pF or 12.5 pF.
> >
> > A wrongly configured RTC will loose several hours in a week.
> >
> >
> > We came up with the following binding:
> > ==========================================
> > * NXP PCF8523 Real Time Clock
> >
> > NXP PCF8523 Real Time Clock
> >
> > Required properties:
> > - compatible: Should contain "nxp,pcf8523".
> > - reg: I2C address for chip.
> >
> > Optional property:
> > - nxp,quartz_load_12.5pF: The capacitive load on the quartz is 12.5pf,
> > which differ from the default value of 7pf
> >
> > Example:
> >
> > pcf8523: pcf8523@68 {
> > compatible = "nxp,pcf85063";
> > reg = <0x68>;
> > nxp,quartz_load_12.5pF;
> > };
> > =======================================
> >
> > The Q:
> > The above scheme will SILENTLY break out-of-tree Linux users because
> > we will change so if nothing is specified the RTC is configured to 7 pF.
>
> That's the expected behaviour.
>
> > And you need to specify if 12.5 pF is used.
> >
> > But all users of the kernel driver will assume 12.5 pF, because this
> > is the driver default. But not the default of the RTC.
>
> I've opened the driver rtc-pcf85063 and PCF85063A.pdf datasheet, and I don't
> see why 12.5 pF internal oscillator capacitor selection is the default one,
> it is not.
>
> The only touched configuration of PCF85063_REG_CTRL1 register is STOP bit,
> CAP_SEL bit value is unmodified by the driver.
>
> So I would assume it should be fine just to add a new property for 12.5pF
> load capacitance.
The rtc-pcf8523 set CAP_SEL to select an x-tal with 7 pF capacitance.
See the call to pcf8523_select_capacitance(client, true);
The rtc-pcf85063 driver will not touch the CAP-SEL bit, so the default value
of 0 (equals 7 pF) is kept.
So we have two drivers where one set 7 pF and the other 12.5 pF.
I will do a small re-spin of my patchset and post them for
further comments/discussions.
Sam
prev parent reply other threads:[~2018-09-07 22:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-06 21:18 Addding a property that silently breaks linux kernel driver? Sam Ravnborg
2018-09-07 10:40 ` Vladimir Zapolskiy
2018-09-07 17:51 ` Sam Ravnborg [this message]
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=20180907175127.GA16794@ravnborg.org \
--to=sam@ravnborg.org \
--cc=devicetree@vger.kernel.org \
--cc=san@skov.dk \
--cc=vladimir_zapolskiy@mentor.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;
as well as URLs for NNTP newsgroup(s).