This patches series adds a new driver for the RTC found in the Mstar MSC313e SoCs and newer. It adds a basic rtc driver, the corresponding devicetree bindings and its documentation. The rtctest (from selftests) has been passed on this driver, with the following output: $ rtctest TAP version 13 1..7 # Starting 7 tests from 2 test cases. # RUN rtc.date_read ... # rtctest.c:47:date_read:Current RTC date/time is 01/01/1970 00:02:03. # OK rtc.date_read ok 1 rtc.date_read # RUN rtc.uie_read ... # OK rtc.uie_read ok 2 rtc.uie_read # RUN rtc.uie_select ... # OK rtc.uie_select ok 3 rtc.uie_select # RUN rtc.alarm_alm_set ... # rtctest.c:136:alarm_alm_set:Alarm time now set to 00:02:12. # rtctest.c:156:alarm_alm_set:data: 1a0 # OK rtc.alarm_alm_set ok 4 rtc.alarm_alm_set # RUN rtc.alarm_wkalm_set ... # rtctest.c:192:alarm_wkalm_set:Alarm time now set to 01/01/1970 00:02:15. # OK rtc.alarm_wkalm_set ok 5 rtc.alarm_wkalm_set # RUN rtc.alarm_alm_set_minute ... # rtctest.c:238:alarm_alm_set_minute:Alarm time now set to 00:03:00. # rtctest.c:258:alarm_alm_set_minute:data: 1a0 # OK rtc.alarm_alm_set_minute ok 6 [ 180.545015] random: fast init done rtc.alarm_alm_set_minute # RUN rtc.alarm_wkalm_set_minute ... # rtctest.c:294:alarm_wkalm_set_minute:Alarm time now set to 01/01/1970 00:04:00. # OK rtc.alarm_wkalm_set_minute ok 7 rtc.alarm_wkalm_set_minute # PASSED: 7 / 7 tests passed. # Totals: pass:7 fail:0 xfail:0 xpass:0 skip:0 error:0 Changes since v3: - Fixed bad device table in MODULE_DEVICE_TABLE() - Use reverse christmas tree ordering for local variables in the probe() function - Removed the "clk" field from the msc313_rtc data structure (not required, only used in the probe function) Changes since v2: - Added dual-license header to the dt-bindings documentation - Reordered dts entries, so the rtc device_node is before the watchdog device_node (because it has a lower address) - Updated rtc range_max to U32_MAX - Leave range_min to 0 (default value when it is not set at all) - Fixed the CNT_EN_BIT logic, so .read_time will only read the time when the RTC has been previously set and has a valid state (which is not the case after a POR). Changes since v1: - Fixed the DT bindings documentation and fixed dt_binding_check (an include was missing) - Added || COMPILE_TEST to kconfig - Removed rtc_valid_tm from msc313_rtc_read_time() - Removed the last write of the msc313_rtc_set_time() function (not required) and improved comments - Replaced the relaxed io by normal io in msc313_rtc_interrupt() - Added checks to be sure that the alarm fired in msc313_rtc_interrupt() - Removed msc313_rtc_remove() (replaced by devm_add_action_or_reset) - Removed unnecessary software reset of the IP in the probe function (the soft reset is never executed, it is a mistake from the initial refactoring) - Switched to devm_rtc_allocate_device() and devm_rtc_register_device(), and dropped the error message related to the rtc device allocation - Added an RTC range by setting .range_min and .range_max - Added the "start-year" property to the DT bindings documentation Daniel Palmer (1): rtc: Add support for the MSTAR MSC313 RTC Romain Perier (2): dt-bindings: rtc: Add Mstar MSC313e RTC devicetree bindings documentation ARM: dts: mstar: Add rtc device node .../bindings/rtc/mstar,msc313-rtc.yaml | 49 ++++ MAINTAINERS | 1 + arch/arm/boot/dts/mstar-v7.dtsi | 8 + drivers/rtc/Kconfig | 10 + drivers/rtc/Makefile | 1 + drivers/rtc/rtc-msc313.c | 258 ++++++++++++++++++ 6 files changed, 327 insertions(+) create mode 100644 Documentation/devicetree/bindings/rtc/mstar,msc313-rtc.yaml create mode 100644 drivers/rtc/rtc-msc313.c -- 2.30.2