android_kernel_motorola_sm6375/drivers/rtc
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meagan Lloyd 7d5b525070 rtc: ds1307: handle oscillator stop flag (OSF) for ds1341
[ Upstream commit 523923cfd5d622b8f4ba893fdaf29fa6adeb8c3e ]

In using CONFIG_RTC_HCTOSYS, rtc_hctosys() will sync the RTC time to the
kernel time as long as rtc_read_time() succeeds. In some power loss
situations, our supercapacitor-backed DS1342 RTC comes up with either an
unpredictable future time or the default 01/01/00 from the datasheet.
The oscillator stop flag (OSF) is set in these scenarios due to the
power loss and can be used to determine the validity of the RTC data.

This change expands the oscillator stop flag (OSF) handling that has
already been implemented for some chips to the ds1341 chip (DS1341 and
DS1342 share a datasheet). This handling manages the validity of the RTC
data in .read_time and .set_time based on the OSF.

Signed-off-by: Meagan Lloyd <meaganlloyd@linux.microsoft.com>
Reviewed-by: Tyler Hicks <code@tyhicks.com>
Acked-by: Rodolfo Giometti <giometti@enneenne.com>
Link: https://lore.kernel.org/r/1749665656-30108-3-git-send-email-meaganlloyd@linux.microsoft.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

[ Git was trying to insert the code above the ds_1388 case statement block (in
each respective function) which don't exist in the v5.4.296 rtc-ds1307 driver,
thus a manual fixup was required. ]
Signed-off-by: Meagan Lloyd <meaganlloyd@linux.microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-08-28 16:21:35 +02:00
..
class.c rtc: Fix offset calculation for .start_secs < 0 2025-06-27 11:02:48 +01:00
dev.c
hctosys.c
interface.c rtc: check if __rtc_read_time was successful in rtc_timer_do_work() 2024-12-14 19:44:40 +01:00
Kconfig rtc: Improve performance of rtc_time64_to_tm(). Add tests. 2025-06-27 11:02:58 +01:00
lib.c rtc: Make rtc_time64_to_tm() support dates before 1970 2025-06-27 11:02:58 +01:00
lib_test.c rtc: test: Fix invalid format specifier. 2025-06-27 11:02:58 +01:00
Makefile rtc: Improve performance of rtc_time64_to_tm(). Add tests. 2025-06-27 11:02:58 +01:00
nvmem.c
proc.c
rtc-88pm80x.c
rtc-88pm860x.c
rtc-ab-b5ze-s3.c
rtc-ab-eoz9.c rtc: ab-eoz9: don't fail temperature reads on undervoltage notification 2024-12-14 19:44:41 +01:00
rtc-ab3100.c
rtc-ab8500.c
rtc-abx80x.c rtc: abx80x: Fix WDT bit position of the status register 2024-12-14 19:44:40 +01:00
rtc-ac100.c
rtc-armada38x.c
rtc-as3722.c
rtc-asm9260.c
rtc-aspeed.c
rtc-at91rm9200.c
rtc-at91rm9200.h
rtc-at91sam9.c rtc: at91sam9: fix OF node leak in probe() error path 2024-11-08 16:20:42 +01:00
rtc-au1xxx.c
rtc-bd70528.c
rtc-bq32k.c
rtc-bq4802.c
rtc-brcmstb-waketimer.c
rtc-cadence.c
rtc-cmos.c rtc: cmos: Fix return value of nvmem callbacks 2024-08-19 05:33:38 +02:00
rtc-coh901331.c
rtc-core.h
rtc-cpcap.c
rtc-cros-ec.c
rtc-da9052.c
rtc-da9055.c
rtc-da9063.c
rtc-davinci.c
rtc-digicolor.c
rtc-dm355evm.c
rtc-ds1216.c
rtc-ds1286.c
rtc-ds1302.c
rtc-ds1305.c
rtc-ds1307.c rtc: ds1307: handle oscillator stop flag (OSF) for ds1341 2025-08-28 16:21:35 +02:00
rtc-ds1343.c
rtc-ds1347.c
rtc-ds1374.c
rtc-ds1390.c
rtc-ds1511.c
rtc-ds1553.c
rtc-ds1672.c
rtc-ds1685.c rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff 2023-09-23 10:59:36 +02:00
rtc-ds1742.c
rtc-ds2404.c
rtc-ds3232.c
rtc-efi-platform.c
rtc-efi.c
rtc-em3027.c
rtc-ep93xx.c
rtc-fm3130.c
rtc-fsl-ftm-alarm.c
rtc-ftrtc010.c
rtc-generic.c
rtc-goldfish.c
rtc-hid-sensor-time.c
rtc-hym8563.c rtc: hym8563: fix incorrect maximum clock rate handling 2025-08-28 16:21:22 +02:00
rtc-imx-sc.c
rtc-imxdi.c
rtc-isl1208.c rtc: isl1208: Fix return value of nvmem callbacks 2024-08-19 05:33:39 +02:00
rtc-isl12022.c
rtc-isl12026.c
rtc-jz4740.c
rtc-lp8788.c
rtc-lpc24xx.c
rtc-lpc32xx.c
rtc-ls1x.c
rtc-m41t80.c
rtc-m41t93.c
rtc-m41t94.c
rtc-m48t35.c
rtc-m48t59.c
rtc-m48t86.c
rtc-max6900.c
rtc-max6902.c
rtc-max6916.c
rtc-max8907.c
rtc-max8925.c
rtc-max8997.c
rtc-max8998.c
rtc-max77686.c
rtc-mc13xxx.c
rtc-mc146818-lib.c
rtc-mcp795.c
rtc-meson-vrtc.c rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time 2023-05-17 11:35:51 +02:00
rtc-meson.c
rtc-moxart.c
rtc-mpc5121.c
rtc-mrst.c
rtc-msm6242.c
rtc-mt6397.c
rtc-mt7622.c
rtc-mv.c
rtc-mxc.c
rtc-mxc_v2.c rtc: mxc_v2: Add missing clk_disable_unprepare() 2023-01-18 11:41:32 +01:00
rtc-omap.c rtc: omap: include header for omap_rtc_power_off_program prototype 2023-05-17 11:35:51 +02:00
rtc-opal.c
rtc-palmas.c
rtc-pcap.c
rtc-pcf2123.c
rtc-pcf2127.c
rtc-pcf8523.c
rtc-pcf8563.c rtc: pcf8563: fix incorrect maximum clock rate handling 2025-08-28 16:21:22 +02:00
rtc-pcf8583.c
rtc-pcf50633.c
rtc-pcf85063.c rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read 2025-03-13 12:42:59 +01:00
rtc-pcf85363.c rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call 2023-11-20 10:30:14 +01:00
rtc-pic32.c rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe() 2023-01-18 11:41:31 +01:00
rtc-pl030.c
rtc-pl031.c
rtc-pm8xxx.c rtc: pm8xxx: fix set-alarm race 2023-03-11 16:43:58 +01:00
rtc-ps3.c
rtc-puv3.c
rtc-pxa.c
rtc-r7301.c
rtc-r9701.c
rtc-rc5t583.c
rtc-rk808.c
rtc-rp5c01.c
rtc-rs5c313.c
rtc-rs5c348.c
rtc-rs5c372.c
rtc-rtd119x.c
rtc-rv3028.c
rtc-rv3029c2.c
rtc-rv8803.c
rtc-rx4581.c
rtc-rx6110.c
rtc-rx8010.c
rtc-rx8025.c
rtc-rx8581.c
rtc-s3c.c
rtc-s3c.h
rtc-s5m.c
rtc-s35390a.c
rtc-sa1100.c
rtc-sa1100.h
rtc-sc27xx.c
rtc-sd3078.c
rtc-sh.c rtc: sh: assign correct interrupts with DT 2025-06-27 11:02:48 +01:00
rtc-sirfsoc.c
rtc-snvs.c
rtc-spear.c
rtc-st-lpc.c rtc: st-lpc: Use IRQF_NO_AUTOEN flag in request_irq() 2024-12-14 19:44:40 +01:00
rtc-starfire.c
rtc-stk17ta8.c
rtc-stm32.c
rtc-stmp3xxx.c
rtc-sun4v.c
rtc-sun6i.c rtc: sun6i: Always export the internal oscillator 2023-03-11 16:44:13 +01:00
rtc-sunxi.c
rtc-tegra.c
rtc-test.c
rtc-tps6586x.c
rtc-tps65910.c
rtc-tps80031.c
rtc-twl.c
rtc-tx4939.c
rtc-v3020.c
rtc-vr41xx.c
rtc-vt8500.c
rtc-wilco-ec.c
rtc-wm831x.c
rtc-wm8350.c
rtc-x1205.c
rtc-xgene.c
rtc-zynqmp.c
sysfs.c
systohc.c