devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

      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).