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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.