linux/drivers/rtc
Joshua Clayton f07fa9242e rtc: pcf2123: avoid resetting the clock if possible
pcf2123 data sheet recommends a software reset when the chip
is first powered on. This change avoids resetting the chip
every time the driver is loaded, which has some negative effects.

There are several registers including a clock rate adjustment that really
should survive a reload of the driver (or reboot).

In addition, stopping and restarting the clock to verify the chip is
there is not a good thing once the time is set.

According to the data sheet, the seconds register has a 1 in
the high bit when the voltage has gotten low. We check for this
condition, as well as whether the time retrieved from the chip is
valid. We reset the rtc only if the time is not reliable and valid.
This is sufficient for checking for the presence of the chip,
as either all zeros or all 0xff will result in an invalid time/date

Signed-off-by: Joshua Clayton <stillcompiling@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
2016-03-14 17:08:04 +01:00
..
class.c rtc: switch to using is_visible() to control sysfs attributes 2015-09-05 13:19:07 +02:00
hctosys.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
interface.c rtc: Drop (un)likely before IS_ERR(_OR_NULL) 2015-09-05 13:19:09 +02:00
Kconfig rtc: ds1307: add temperature sensor support for ds3231 2016-02-04 23:44:17 +01:00
Makefile rtc: Remove Maxim 77802 driver 2016-02-04 23:44:15 +01:00
rtc-88pm80x.c rtc: 88pm80x: add device tree support 2015-09-05 13:19:05 +02:00
rtc-88pm860x.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ab3100.c drivers/rtc/ab3100: Update driver to address y2038/y2106 issues 2015-04-03 08:18:25 +02:00
rtc-ab8500.c rtc: ab8500: remove misuse of IRQF_NO_SUSPEND flag 2015-11-08 14:12:25 +01:00
rtc-ab-b5ze-s3.c rtc: Export OF module alias information in missing drivers 2015-09-05 13:19:08 +02:00
rtc-abx80x.c rtc: abx80x: add alarm support 2016-01-11 20:20:01 +01:00
rtc-armada38x.c rtc: Fix module autoload for OF platform drivers 2015-09-05 19:37:22 +02:00
rtc-as3722.c rtc: as3722: correct month value 2015-09-05 19:37:18 +02:00
rtc-at32ap700x.c rtc: at32ap700x: update author email 2015-06-25 01:12:50 +02:00
rtc-at91rm9200.c rtc: at91rm9200: clear RTC alarm status flag prior to suspending 2015-11-08 14:12:28 +01:00
rtc-at91rm9200.h
rtc-at91sam9.c rtc: at91sam9: remove useless include 2015-09-05 13:19:13 +02:00
rtc-au1xxx.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-bfin.c rtc: Drop (un)likely before IS_ERR(_OR_NULL) 2015-09-05 13:19:09 +02:00
rtc-bq32k.c rtc: Drop owner assignment from i2c_driver 2015-09-05 13:19:06 +02:00
rtc-bq4802.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-cmos.c rtc: cmos: prevent kernel warning on IRQ flags mismatch 2016-01-11 20:38:50 +01:00
rtc-coh901331.c rtc: Fix module autoload for OF platform drivers 2015-09-05 19:37:22 +02:00
rtc-core.h rtc: switch to using is_visible() to control sysfs attributes 2015-09-05 13:19:07 +02:00
rtc-da9052.c drivers/rtc/rtc-da9052.c: register ability of alarm to wake device from suspend 2015-04-17 09:04:00 -04:00
rtc-da9055.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-da9063.c rtc: da9063: avoid writing undefined data to rtc 2016-01-11 20:19:57 +01:00
rtc-davinci.c rtc: davinci: remove incorrect reference to probe function 2015-11-08 14:12:29 +01:00
rtc-dev.c rtc: dev: properly manage lifetime of dev and cdev in rtc device 2015-09-05 13:19:07 +02:00
rtc-digicolor.c rtc: driver for Conexant Digicolor CX92755 on-chip RTC 2015-04-17 09:04:01 -04:00
rtc-dm355evm.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1216.c rtc: simplify use of devm_ioremap_resource 2015-06-25 01:13:40 +02:00
rtc-ds1286.c rtc: simplify use of devm_ioremap_resource 2015-06-25 01:13:40 +02:00
rtc-ds1302.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-ds1305.c rtc: ds1305: use to_spi_device and kobj_to_dev 2016-02-04 23:44:16 +01:00
rtc-ds1307.c rtc: ds1307: add temperature sensor support for ds3231 2016-02-04 23:44:17 +01:00
rtc-ds1343.c RTC for 4.4 2015-11-10 10:01:21 -08:00
rtc-ds1347.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-ds1374.c rtc: ds1374: Remove unused variable 2015-09-05 19:37:22 +02:00
rtc-ds1390.c RTC for 4.4 2015-11-10 10:01:21 -08:00
rtc-ds1511.c rtc: ds1511: clean up ds1511_nvram_read()/ds1511_nvram_write() 2015-09-05 13:19:10 +02:00
rtc-ds1553.c rtc: ds1553: clean up ds1553_nvram_read()/ds1553_nvram_write() 2015-09-05 13:19:10 +02:00
rtc-ds1672.c rtc: ds1672, max6900, max8998: Add MODULE_DEVICE_TABLE 2015-06-25 01:13:36 +02:00
rtc-ds1685.c rtc: ds1685: don't try to micromanage sysfs output size 2016-01-11 20:19:58 +01:00
rtc-ds1742.c rtc: ds1742: clean up ds1742_nvram_read()/ds1742_nvram_write() 2015-09-05 13:19:10 +02:00
rtc-ds2404.c rtc: rtc-ds2404: constify ds2404_chip_ops structures 2016-01-11 20:22:27 +01:00
rtc-ds3232.c rtc: ds3232: fix WARNING trace in resume function 2015-09-05 19:36:21 +02:00
rtc-ds3234.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-efi-platform.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-efi.c rtc: efi: add efi_procfs in efi_rtc_ops 2016-01-11 20:19:55 +01:00
rtc-em3027.c drivers/rtc/rtc-em3027.c: add device tree support 2015-04-17 09:03:59 -04:00
rtc-ep93xx.c rtc: ep93xx: Use readl/writel for io 2015-06-25 01:13:38 +02:00
rtc-fm3130.c rtc: Drop owner assignment from i2c_driver 2015-09-05 13:19:06 +02:00
rtc-gemini.c rtc: gemini: Remove unnecessary platform_set_drvdata() 2016-01-11 20:19:56 +01:00
rtc-generic.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-hid-sensor-time.c rtc: hid-sensor-time: Constify platform_device_id 2015-06-19 20:03:20 +02:00
rtc-hym8563.c rtc: Drop owner assignment from i2c_driver 2015-09-05 13:19:06 +02:00
rtc-imxdi.c rtc: imxdi: fix spelling mistake in warning message 2016-01-11 20:19:58 +01:00
rtc-isl1208.c rtc: isl1208: Pass the IRQF_ONESHOT flag 2015-11-08 14:12:30 +01:00
rtc-isl12022.c rtc: Export OF module alias information in missing drivers 2015-09-05 13:19:08 +02:00
rtc-isl12057.c rtc: isl12057: enable support for the standard "wakeup-source" property 2015-11-08 14:12:30 +01:00
rtc-jz4740.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-lib.c rtc/lib: Provide y2038 safe rtc_tm_to_time()/rtc_time_to_tm() replacement 2014-11-21 12:00:00 -08:00
rtc-lp8788.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-lpc24xx.c rtc: add rtc-lpc24xx driver 2015-09-05 13:19:06 +02:00
rtc-lpc32xx.c rtc: lpc32xx: remove irq > NR_IRQS check from probe() 2016-01-11 20:19:59 +01:00
rtc-ls1x.c MIPS: Loongson: Naming style cleanup and rework 2015-06-21 21:53:59 +02:00
rtc-m41t80.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-m41t93.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-m41t94.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-m48t35.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-m48t59.c rtc: m48t59: clean up m48t59_nvram_read()/m48t59_nvram_write() 2015-09-05 13:19:10 +02:00
rtc-m48t86.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-max6900.c rtc: ds1672, max6900, max8998: Add MODULE_DEVICE_TABLE 2015-06-25 01:13:36 +02:00
rtc-max6902.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-max8907.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-max8925.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-max8997.c rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers 2015-09-05 19:37:21 +02:00
rtc-max8998.c rtc: ds1672, max6900, max8998: Add MODULE_DEVICE_TABLE 2015-06-25 01:13:36 +02:00
rtc-max77686.c rtc: max77686: Cleanup and reduce dmesg output 2016-02-04 23:44:15 +01:00
rtc-mc13xxx.c rtc: mc13xxx: fix obfuscated and wrong format string 2015-06-25 01:13:35 +02:00
rtc-mcp795.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-moxart.c rtc: Fix module autoload for OF platform drivers 2015-09-05 19:37:22 +02:00
rtc-mpc5121.c rtc: Fix module autoload for OF platform drivers 2015-09-05 19:37:22 +02:00
rtc-mrst.c rtc: remove use of seq_printf return value 2015-04-15 16:35:24 -07:00
rtc-msm6242.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-mt6397.c rtc: Fix module autoload for OF platform drivers 2015-09-05 19:37:22 +02:00
rtc-mv.c rtc: Fix module autoload for OF platform drivers 2015-09-05 19:37:22 +02:00
rtc-mxc.c rtc: mxc: add support of device tree 2015-08-05 20:03:56 +08:00
rtc-nuc900.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-omap.c rtc: omap: Add external clock enabling support 2015-09-05 19:37:21 +02:00
rtc-opal.c powerpc: Remove broken GregorianDay() 2015-12-16 12:54:04 +11:00
rtc-palmas.c rtc: palmas: Initialise bb_charging flag before using it 2015-06-25 01:13:40 +02:00
rtc-pcap.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-pcf2123.c rtc: pcf2123: avoid resetting the clock if possible 2016-03-14 17:08:04 +01:00
rtc-pcf2127.c rtc: pcf2127: remove useless driver version 2015-11-08 14:12:28 +01:00
rtc-pcf8523.c rtc: pcf8523: refuse to write dates later than 2099 2016-01-11 20:19:54 +01:00
rtc-pcf8563.c rtc: pcf8563: add CLKOUT to common clock framework 2015-11-08 14:12:29 +01:00
rtc-pcf8583.c rtc: Drop owner assignment from i2c_driver 2015-09-05 13:19:06 +02:00
rtc-pcf50633.c rtc: rtc-pcf50633: use devm_*() functions 2013-04-29 18:28:38 -07:00
rtc-pcf85063.c rtc: pcf85063: return an error when date is invalid 2015-11-08 14:12:26 +01:00
rtc-pl030.c drivers/rtc/rtc-pl030.c: use devm_kzalloc() instead of kmalloc() 2013-11-13 12:09:31 +09:00
rtc-pl031.c rtc: pl031: remove misuse of IRQF_NO_SUSPEND flag 2015-11-08 14:12:24 +01:00
rtc-pm8xxx.c Merge branch 'platform/remove_owner' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux into driver-core-next 2014-11-03 19:53:56 -08:00
rtc-proc.c rtc: fix module reference count in rtc-proc 2016-01-11 20:19:55 +01:00
rtc-ps3.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-puv3.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-pxa.c rtc: sa1100/pxa: convert to run-time register mapping 2015-09-05 19:37:16 +02:00
rtc-r9701.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-rc5t583.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-rk808.c rtc: rk808: Compensate for Rockchip calendar deviation on November 31st 2015-12-20 13:39:00 +01:00
rtc-rp5c01.c rtc: rp5c01: clean up rp5c01_nvram_read()/rp5c01_nvram_write() 2015-09-05 13:19:10 +02:00
rtc-rs5c313.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-rs5c348.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-rs5c372.c drivers/rtc/rtc-rs5c372.c: use %*ph to dump small buffers 2014-10-14 02:18:19 +02:00
rtc-rv3029c2.c drivers/rtc/rtc-rv3029c2.c: fix potential race condition 2014-04-03 16:21:24 -07:00
rtc-rv8803.c rtc: rv8803: Extend compatibility with the rx8900 2016-01-11 20:20:00 +01:00
rtc-rx4581.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
rtc-rx8010.c rtc: Add Epson RX8010SJ RTC driver 2016-01-11 20:19:59 +01:00
rtc-rx8025.c rtc: rx8025: remove rv8803 id 2016-02-04 23:44:16 +01:00
rtc-rx8581.c rtc: Drop owner assignment from i2c_driver 2015-09-05 13:19:06 +02:00
rtc-s3c.c rtc: s3c: Set year, month, day value for setting alarm 2015-11-08 14:12:31 +01:00
rtc-s3c.h
rtc-s5m.c rtc: s5m: Make register configuration per S2MPS device to remove exceptions 2016-01-11 20:21:55 +01:00
rtc-s35390a.c rtc: rtc-s35390a: use devm_*() functions 2013-04-29 18:28:38 -07:00
rtc-sa1100.c rtc: sa1100/pxa: convert to run-time register mapping 2015-09-05 19:37:16 +02:00
rtc-sa1100.h rtc: sa1100/pxa: convert to run-time register mapping 2015-09-05 19:37:16 +02:00
rtc-sh.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-sirfsoc.c rtc: sirfsoc: move to regmap APIs from platform-specific APIs 2015-09-05 13:19:06 +02:00
rtc-snvs.c rtc: snvs: use syscon to access register 2015-07-15 10:15:10 +08:00
rtc-spear.c rtc: simplify use of devm_ioremap_resource 2015-06-25 01:13:40 +02:00
rtc-st-lpc.c rtc: st: Update IP layout information to include Clocksource 2015-07-23 17:07:35 +01:00
rtc-starfire.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-stk17ta8.c rtc: stk17ta8: clean up stk17ta8_nvram_read()/stk17ta8_nvram_write() 2015-09-05 13:19:10 +02:00
rtc-stmp3xxx.c rtc: stmp3xxx: unify register access macros 2015-11-08 14:12:27 +01:00
rtc-sun4v.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-sun6i.c rtc: sun6i: Add sun6i RTC driver 2014-09-19 12:39:19 +02:00
rtc-sunxi.c rtc: sunxi: use of_device_get_match_data 2016-01-11 20:19:57 +01:00
rtc-sysfs.c rtc: Replace simple_strtoul by kstrtoul 2016-01-11 20:20:02 +01:00
rtc-tegra.c rtc: remove use of seq_printf return value 2015-04-15 16:35:24 -07:00
rtc-test.c drivers/rtc/test: Update driver to address y2038/y2106 issues 2015-04-03 08:18:24 +02:00
rtc-tile.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-tps6586x.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-tps65910.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-tps80031.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-twl.c rtc: use more standard kernel logging styles 2015-04-17 09:04:02 -04:00
rtc-tx4939.c rtc: tx4939: clean up tx4939_rtc_nvram_read()/tx4939_rtc_nvram_write() 2015-09-05 13:19:10 +02:00
rtc-v3020.c rtc: v3020: constify v3020_chip_ops structures 2016-01-11 20:20:00 +01:00
rtc-vr41xx.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-vt8500.c rtc: Fix module autoload for OF platform drivers 2015-09-05 19:37:22 +02:00
rtc-wm831x.c drivers/rtc/rtc-wm831x.c: remove empty function 2013-07-03 16:07:59 -07:00
rtc-wm8350.c rtc: rtc-wm8350: switch to using SIMPLE_DEV_PM_OPS 2013-04-29 18:28:32 -07:00
rtc-x1205.c drivers/rtc/rtc-x1205.c: use sign_extend32() for sign extension 2015-04-17 09:03:59 -04:00
rtc-xgene.c rtc: drop owner assignment from platform_drivers 2014-10-20 16:21:31 +02:00
rtc-zynqmp.c rtc: add xilinx zynqmp rtc driver 2015-09-05 19:37:19 +02:00
systohc.c rtc: NTP: Add CONFIG_RTC_SYSTOHC_DEVICE for NTP synchronization 2015-06-25 01:13:42 +02:00