On 19/01/2023 21:39:00+0000, Dennis Lambe Jr wrote: > Other than adding a sign-off to one of the changelogs, this is a RESEND. > > Alexandre Belloni, what do you need for this before you'd want to apply > it? In case it's additional reviewers, I have CC'd some more > potentially-interested parties this time and updated Atsushi Nemoto's > email address to one that's hopefully more current. > I need to find time to think about it because while setting the analog trimming statically from the device tree solves your immediate problem, it will also remove the possibility to handle it from userspace later on. I would really prefer this uses the offset interface or a better interface that unfortunately doesn't exist yet. > I think the original author listed in the header for this driver, > Alexander Bigga, is inaccurate. It looks to me like his name got copied > over by Atsushi Nemoto when he created m41t82.c by deriving it from a > similar driver. At any rate, Alexander Bigga's listed email address > bounces, I didn't find a newer one for him, and he doesn't show up in > the kernel commit log after 2007. I don't think he can be considered the > maintainer for this driver anymore if he ever was. > > Changes in v3: > * dt-bindings: added Krzysztof Kozlowski sign-off to changelog > > Changes in v2: > * dt-bindings: remove accidental wakeup-sources line > suggested by Krzysztof Kozlowski > * spelling fixes in changelogs > > The m41t82 and m41t83 have an adjustable internal capacitance that > defaults to 25 pF per xtal pin. This patch series adds the ability to > configure it via the devicetree. > > Patch 1 just changes `#ifdef CONFIG_OF` to `if (IS_ENABLED(CONFIG_OF))` > in m41t80_probe() so that I don't need to use __maybe_unused on my new > functions and variables. > > Patch 2 is the dt-bindings. > > Patch 3 is the actual feature implementation. > > The desired capacitance comes from the quartz-load-femtofarads property, > following the example of two other RTC ICs that have adjustable internal > load capacitance, the NXP pcf85063 and pcf8523. The m41t82 and m41t83 > support much finer-grained control over the capacitance than those > chips, and ST calls the feature "analog calibration", but it looks to me > like it's essentially the same kind of thing. > > My use case for this is: > > ST specifies not to add any additional external load capacitance[1], but > the MikroElektronika RTC 9 Click board[2] has a 22 pF cap on each xtal > pin[3]. The resulting combined capacitance appears to be outside of the > operating range of the xtal, because when power is removed from the > boards I'm testing with, the RTC reports an Oscillator-Fail flag on the > next power on. > > I found I could work around the problem by reducing the internal load > capacitance as low as it will go. > > References: > [1] https://www.st.com/resource/en/application_note/an3060-applications-guide-for-serial-realtime-clocks-rtcs-stmicroelectronics.pdf > [2] https://www.mikroe.com/rtc-9-click > [3] https://download.mikroe.com/documents/add-on-boards/click/rtc-9/rtc-9-click-schematic-v100.pdf > > Previous versions: > v1: https://lore.kernel.org/linux-rtc/20221219190915.3912384-1-dennis@xxxxxxxxxxxxxx/T/ > > Dennis Lambe Jr (3): > rtc: m41t80: probe: use IS_ENABLED for CONFIG_OF > dt-bindings: m41t80: add xtal load capacitance > rtc: m41t80: set xtal load capacitance from DT > > .../devicetree/bindings/rtc/st,m41t80.yaml | 16 ++++ > drivers/rtc/rtc-m41t80.c | 84 +++++++++++++++++-- > 2 files changed, 92 insertions(+), 8 deletions(-) > > -- > 2.25.1 > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com