• Nikita Yushchenko's avatar
    rtc: ds1307: add basic support for ds1341 chip · 0759c886
    Nikita Yushchenko authored
    This adds support for reading and writing date/time from/to ds1341 chip.
    
    ds1341 chip has other features - alarms, input clock (can be used instead
    of intercal oscillator for better accuracy), output clock ("square wave
    generation"). However, not all of that is available at the same time.
    Same chip pins, CLKIN/nINTA and SQW/nINTB, can be used either for
    input/output clocks, or for alarm interrupts. Role of these pins on
    particular board depends on hardware wiring.
    
    We can add device tree properties that describe if each of pins is wired
    as clock, or as interrupt, or left unconnected, and enable support for
    corresponding functionality based on that. But that is cumbersome, requires
    hardware for testing, and has to deal with bit enabling/disabling output
    clock also affects which pins alarm interrupts are routed to.
    
    Another factor is that there are hardware setups (i.e. ZII RDU2) that
    power DS1341 from SuperCap, which makes power saving critical. For such
    setups, kernel driver should leave register bits that control mentioned
    pins in the state configured by bootloader.
    
    Given all that, it was decided to limit support to "only date/time" for
    now. That is enough for common use case. Full (and cumbersome)
    implementation can be added later if ever needed.
    Signed-off-by: default avatarNikita Yushchenko <nikita.yoush@cogentembedded.com>
    Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Tested-by: default avatarAleksander Morgado <aleksander@aleksander.es>
    Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
    0759c886
rtc-ds1307.c 44.2 KB