The current handling of the low-battery bits in the status register is wrong. The first six patches fix that and implement proper support for RTC_VL_READ. The last two patches allow describing the isl12022 as a clock provider, for now just as a fixed 32kHz clock. They are also tangentially related to the backup battery, in that when the isl12022 is not used as a clock source, one can save some power consumption in battery mode by setting the FOx bits to 0. v3 changes: Patch 2: move the allOf block further down, add R-b [Krzysztof] Patch 3: change to a single property with two values [Krzysztof] Patch 4: adjust implementation accordingly Patch 5: move initialization of 'user' variable inside switch case, use 'if (ret)' instead of 'if (ret < 0)' for consistency within the driver [Andy] Patch 7: semantically identical to v2, just context changes due to changes in 2/8 and 3/8 Patch 8: only do the clock registration when CONFIG_COMMON_CLK [kernel test robot] v2: https://lore.kernel.org/lkml/20230613130011.305589-1-linux@xxxxxxxxxxxxxxxxxx/ v1: https://lore.kernel.org/lkml/20230612113059.247275-1-linux@xxxxxxxxxxxxxxxxxx/ Rasmus Villemoes (8): rtc: isl12022: remove wrong warning for low battery level dt-bindings: rtc: Move isil,isl12022 from trivial-rtc.yaml into own schema file dt-bindings: rtc: isl12022: add bindings for battery alarm trip levels rtc: isl12022: add support for trip level DT binding rtc: isl12022: implement RTC_VL_READ ioctl rtc: isl12022: trigger battery level detection during probe dt-bindings: rtc: isl12022: add #clock-cells property rtc: isl12022: implement support for the #clock-cells DT property .../bindings/rtc/intersil,isl12022.yaml | 64 +++++++++ .../devicetree/bindings/rtc/trivial-rtc.yaml | 2 - drivers/rtc/rtc-isl12022.c | 126 +++++++++++++++++- 3 files changed, 184 insertions(+), 8 deletions(-) create mode 100644 Documentation/devicetree/bindings/rtc/intersil,isl12022.yaml -- 2.37.2