OpenCloudOS-Kernel/drivers/rtc
Maciej W. Rozycki 31632dbdba drivers/rtc/rtc-cmos.c: drivers/char/rtc.c features for DECstation support
This brings in drivers/char/rtc.c functionality required for DECstation
and, should the maintainers decide to switch, Alpha systems to use
rtc-cmos.

Specifically these features are made available:

* RTC iomem rather than x86/PCI port I/O mapping, controlled with the
  RTC_IOMAPPED macro as with the original driver.  The DS1287A chip in all
  DECstation systems is mapped in the host bus address space as a
  contiguous block of 64 32-bit words of which the least significant byte
  accesses the RTC chip for both reads and writes.  All the address and
  data window register accesses are made transparently by the chipset glue
  logic so that the device appears directly mapped on the host bus.

* A way to set the size of the address space explicitly with the
  newly-added `address_space' member of the platform part of the RTC
  device structure.  This avoids the unreliable heuristics that does not
  work in a setup where the RTC is not explicitly accessed with the usual
  address and data window register pair.

* The ability to use the RTC periodic interrupt as a system clock
  device, which is implemented by arch/mips/kernel/cevt-ds1287.c for
  DECstation systems and takes the RTC interrupt away from the RTC driver.
   Eventually hooking back to the clock device's interrupt handler should
  be possible for the purpose of the alarm clock and possibly also
  update-in-progress interrupt, but this is not done by this change.

  o To avoid interfering with the clock interrupt all the places where
    the RTC interrupt mask is fiddled with are only executed if and IRQ
    has been assigned to the RTC driver.

  o To avoid changing the clock setup Register A is not fiddled with
    if CMOS_RTC_FLAGS_NOFREQ is set in the newly-added `flags' member of
    the platform part of the RTC device structure.  Originally, in
    drivers/char/rtc.c, this was keyed with the absence of the RTC
    interrupt, just like the interrupt mask, but there only the periodic
    interrupt frequency is set, whereas rtc-cmos also sets the divider
    bits.  Therefore a new flag is introduced so that systems where the
    RTC interrupt is not usable rather than used as a system clock device
    can fully initialise the RTC.

* A small clean-up is made to the IRQ assignment code that makes the IRQ
  number hardcoded to -1 rather than arbitrary -ENXIO (or whatever error
  happens to be returned by platform_get_irq) where no IRQ has been
  assigned to the RTC driver (NO_IRQ might be another candidate, but it
  looks like this macro has inconsistent or missing definitions and
  limited use and might therefore be unsafe).

Verified to work correctly with a DECstation 5000/240 system.

[akpm@linux-foundation.org: fix weird code layout]
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-06-06 16:08:07 -07:00
..
Kconfig drivers/rtc/rtc-m41t80.c: add support for MicroCrystal rv4162 2014-06-06 16:08:07 -07:00
Makefile drivers/rtc: add APM X-Gene SoC RTC driver 2014-06-06 16:08:06 -07:00
class.c rtc: honor device tree /alias entries when assigning IDs 2014-01-23 16:37:00 -08:00
hctosys.c rtc_sysfs_show_hctosys(): display 0 if resume failed 2012-10-06 03:05:04 +09:00
interface.c drivers/rtc/interface.c: fix infinite loop in initializing the alarm 2014-06-06 16:08:06 -07:00
rtc-88pm80x.c drivers/rtc/rtc-88pm80x.c: use dev_get_platdata() 2013-11-13 12:09:28 +09:00
rtc-88pm860x.c drivers/rtc/rtc-88pm860x.c: use dev_get_platdata() 2013-11-13 12:09:28 +09:00
rtc-ab3100.c drivers/rtc/rtc-ab3100.c: remove empty function 2013-07-03 16:07:54 -07:00
rtc-ab8500.c drivers/rtc/rtc-ab8500.c: add second resolution to rtc driver 2013-07-03 16:07:59 -07:00
rtc-as3722.c drivers/rtc/rtc-as3722.c: use SIMPLE_DEV_PM_OPS macro 2014-04-03 16:21:22 -07:00
rtc-at32ap700x.c rtc: rtc-at32ap700x: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-at91rm9200.c drivers/rtc/rtc-at91rm9200.c: correct alarm over day/month wrap 2013-12-12 18:19:26 -08:00
rtc-at91rm9200.h Revert "drivers/rtc/rtc-at91rm9200.c: use a variable for storing IMR" 2013-04-05 09:36:53 -07:00
rtc-at91sam9.c rtc: at91sam9: include <mach/hardware.h> explicitly 2013-12-20 11:41:32 +01:00
rtc-au1xxx.c drivers/rtc/rtc-au1xxx.c: remove empty function 2013-07-03 16:07:54 -07:00
rtc-bfin.c rtc: rtc-bfin: remove unnecessary platform_set_drvdata() 2013-07-03 16:07:49 -07:00
rtc-bq32k.c drivers/rtc/rtc-bq32k.c: remove empty function 2013-07-03 16:07:55 -07:00
rtc-bq4802.c drivers/rtc/rtc-bq4802.c: remove empty function 2013-07-03 16:07:54 -07:00
rtc-cmos.c drivers/rtc/rtc-cmos.c: drivers/char/rtc.c features for DECstation support 2014-06-06 16:08:07 -07:00
rtc-coh901331.c rtc: rtc-coh901331: use devm_ioremap_resource() 2014-04-03 16:21:18 -07:00
rtc-core.h
rtc-da9052.c drivers/rtc/rtc-da9052.c: remove redundant private structure field 2014-04-03 16:21:19 -07:00
rtc-da9055.c drivers/rtc/rtc-da9055.c: remove use of regmap_irq_get_virq() 2014-04-03 16:21:24 -07:00
rtc-davinci.c rtc: rtc-davinci: use devm_ioremap_resource() 2014-04-03 16:21:18 -07:00
rtc-dev.c rtc: use dev_warn()/dev_dbg()/pr_err() instead of printk() 2013-02-21 17:22:29 -08:00
rtc-dm355evm.c drivers/rtc/rtc-dm355evm.c: remove empty function 2013-07-03 16:07:53 -07:00
rtc-ds1216.c drivers/rtc/rtc-ds1216.c: use module_platform_driver_probe() 2013-07-03 16:08:00 -07:00
rtc-ds1286.c drivers/rtc/rtc-ds1286.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-ds1302.c drivers/rtc/rtc-ds1302.c: handle write protection 2013-07-03 16:07:59 -07:00
rtc-ds1305.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-ds1307.c drivers/rtc/rtc-ds1307.c: add alarm support for mcp7941x chips 2014-04-03 16:21:20 -07:00
rtc-ds1347.c rtc: add support for maxim dallas rtc ds1347 2014-04-03 16:21:23 -07:00
rtc-ds1374.c drivers/rtc/rtc-ds1374.c: fix spacing related issues 2013-07-03 16:07:46 -07:00
rtc-ds1390.c rtc: rtc-ds1390: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-ds1511.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-ds1553.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-ds1672.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-ds1742.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-ds2404.c drivers/rtc/rtc-ds2404.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-ds3232.c drivers/rtc/rtc-ds3232.c: enable ds3232 to work as wakeup source 2014-04-03 16:21:22 -07:00
rtc-ds3234.c drivers/rtc/rtc-ds3234.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-efi.c drivers/rtc/rtc-efi.c: avoid subtracting day twice when computing year days 2014-06-06 16:08:07 -07:00
rtc-em3027.c drivers/rtc/rtc-em3027.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-ep93xx.c drivers/rtc/rtc-ep93xx.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-fm3130.c drivers/rtc/rtc-fm3130.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-generic.c drivers/rtc/rtc-generic.c: remove empty function 2013-07-03 16:07:57 -07:00
rtc-hid-sensor-time.c tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00
rtc-hym8563.c drivers/rtc/rtc-hym8563.c: set uie_unsupported 2014-05-11 17:55:48 +09:00
rtc-imxdi.c drivers/rtc/rtc-imxdi.c: check the return value from clk_prepare_enable() 2014-04-03 16:21:16 -07:00
rtc-isl1208.c drivers/rtc/rtc-isl1208.c: use devm_* APIs 2013-11-13 12:09:27 +09:00
rtc-isl12022.c drivers/rtc: Replace PTR_RET with PTR_ERR_OR_ZERO 2013-07-16 16:06:00 +09:30
rtc-isl12057.c ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
rtc-jz4740.c rtc: rtc-jz4740: use devm_ioremap_resource() 2014-04-03 16:21:19 -07:00
rtc-lib.c rtc: Initialized rtc_time->tm_isdst 2011-08-26 17:26:35 -07:00
rtc-lp8788.c drivers/rtc/rtc-lp8788.c: remove empty function 2013-07-03 16:07:53 -07:00
rtc-lpc32xx.c rtc: rtc-lpc32xx: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-ls1x.c drivers/rtc/rtc-ls1x.c: remove empty function 2013-07-03 16:07:53 -07:00
rtc-m41t80.c drivers/rtc/rtc-m41t80.c: add support for MicroCrystal rv4162 2014-06-06 16:08:07 -07:00
rtc-m41t93.c drivers/rtc/rtc-m41t93.c: remove empty function 2013-07-03 16:07:56 -07:00
rtc-m41t94.c drivers/rtc/rtc-m41t94.c: remove empty function 2013-07-03 16:07:57 -07:00
rtc-m48t35.c drivers/rtc: Replace PTR_RET with PTR_ERR_OR_ZERO 2013-07-16 16:06:00 +09:30
rtc-m48t59.c drivers/rtc/rtc-m48t59.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-m48t86.c drivers/rtc/rtc-m48t86.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-max6900.c drivers/rtc/rtc-max6900.c: remove redundant checks 2013-11-13 12:09:27 +09:00
rtc-max6902.c drivers/rtc/rtc-max6902.c: remove empty function 2013-07-03 16:07:57 -07:00
rtc-max8907.c rtc: max8907: weekday encoding fixes 2014-01-23 16:37:00 -08:00
rtc-max8925.c drivers/rtc/rtc-max8925.c: remove empty function 2013-07-03 16:07:53 -07:00
rtc-max8997.c drivers/rtc/rtc-max8997.c: remove empty function 2013-07-03 16:07:57 -07:00
rtc-max8998.c For the 3.11 merge we only have one new MFD driver for the Kontron PLD. 2013-07-10 11:10:27 -07:00
rtc-max77686.c drivers/rtc/rtc-max77686.c: Fix wrong register 2013-09-11 15:58:56 -07:00
rtc-mc13xxx.c drivers/rtc/rtc-mc13xxx.c: fix potential race condition 2014-04-03 16:21:23 -07:00
rtc-moxart.c rtc: rtc-moxart: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-mpc5121.c drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
rtc-mrst.c drivers/rtc/rtc-mrst.c: remove redundant dev_set_drvdata 2013-11-13 12:09:27 +09:00
rtc-msm6242.c drivers/rtc/rtc-msm6242.c: remove empty function 2013-07-03 16:07:53 -07:00
rtc-mv.c rtc: mv: reset date if after year 2038 2014-02-21 23:29:05 +00:00
rtc-mxc.c drivers/rtc/rtc-mxc.c: check the return value from clk_prepare_enable() 2014-01-23 16:36:59 -08:00
rtc-nuc900.c rtc: rtc-nuc900: remove unnecessary OOM messages 2014-04-03 16:21:17 -07:00
rtc-omap.c drivers/rtc/rtc-omap.c: remove redundant of_match_ptr 2013-11-13 12:09:30 +09:00
rtc-palmas.c drivers/rtc/rtc-palmas.c: use SIMPLE_DEV_PM_OPS macro 2014-04-03 16:21:22 -07:00
rtc-pcap.c rtc: rtc-pcap: remove unnecessary platform_set_drvdata() 2013-07-03 16:07:51 -07:00
rtc-pcf2123.c drivers/rtc/rtc-pcf2123.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-pcf2127.c drivers/rtc/rtc-pcf2127.c: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO 2014-01-23 16:37:00 -08:00
rtc-pcf8523.c drivers/rtc/rtc-pcf8523.c: fix month definition 2014-05-06 13:04:58 -07:00
rtc-pcf8563.c drivers/rtc: Replace PTR_RET with PTR_ERR_OR_ZERO 2013-07-16 16:06:00 +09:30
rtc-pcf8583.c drivers/rtc: Replace PTR_RET with PTR_ERR_OR_ZERO 2013-07-16 16:06:00 +09:30
rtc-pcf50633.c rtc: rtc-pcf50633: use devm_*() functions 2013-04-29 18:28:38 -07: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 drivers/rtc/rtc-pl03x.c: remove unnecessary amba_set_drvdata() 2013-11-13 12:09:31 +09:00
rtc-pm8xxx.c rtc: pm8xxx: move device_init_wakeup() before rtc_register 2014-04-03 16:21:23 -07:00
rtc-proc.c procfs: new helper - PDE_DATA(inode) 2013-04-09 14:13:32 -04:00
rtc-ps3.c drivers/rtc/rtc-ps3.c: remove empty function 2013-07-03 16:07:58 -07:00
rtc-puv3.c drivers/rtc/rtc-puv3.c: use dev_dbg() instead of pr_debug() 2013-11-13 12:09:31 +09:00
rtc-pxa.c rtc: pxa: drop unused #define TIMER_FREQ 2013-12-20 11:41:33 +01:00
rtc-r9701.c rtc: rtc-r9701: use spi_set_drvdata() 2013-04-29 18:28:34 -07:00
rtc-rc5t583.c rtc: rtc-rc5t583: use platform_{get,set}_drvdata() 2013-07-03 16:07:55 -07:00
rtc-rp5c01.c rtc: rtc-rp5c01: remove unnecessary platform_set_drvdata() 2013-07-03 16:07:52 -07:00
rtc-rs5c313.c drivers/rtc/rtc-rs5c313.c: remove empty function 2013-07-03 16:07:58 -07:00
rtc-rs5c348.c drivers/rtc/rtc-rs5c348.c: use dev_get_platdata() 2013-11-13 12:09:29 +09:00
rtc-rs5c372.c drivers/rtc/rtc-rs5c372.c: add R2221T/L variant to the driver 2013-05-07 18:38:26 -07:00
rtc-rv3029c2.c drivers/rtc/rtc-rv3029c2.c: fix potential race condition 2014-04-03 16:21:24 -07:00
rtc-rx4581.c drivers/rtc/rtc-rx4581.c: remove empty function 2013-07-03 16:07:58 -07:00
rtc-rx8025.c rtc: rtc-rx8025: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-rx8581.c drivers/rtc/rtc-rx8581.c: add SMBus-only adapters support 2014-01-23 16:37:00 -08:00
rtc-s3c.c drivers/rtc/rtc-s3c.c: remove NO_IRQ macro 2014-04-03 16:21:24 -07:00
rtc-s3c.h rtc: s3c: make header file local 2013-04-19 13:51:25 +02:00
rtc-s5m.c drivers/rtc/rtc-s5m.c: s5m_rtc_{suspend,resume}() should depend on CONFIG_PM_SLEEP 2014-01-23 16:37:00 -08:00
rtc-s35390a.c rtc: rtc-s35390a: use devm_*() functions 2013-04-29 18:28:38 -07:00
rtc-sa1100.c rtc: rtc-sa1100: remove unnecessary platform_set_drvdata() 2013-07-03 16:07:51 -07:00
rtc-sh.c drivers/rtc/rtc-sh.c: use dev_get_platdata() 2013-11-13 12:09:30 +09:00
rtc-sirfsoc.c drivers/rtc/rtc-sirfsoc.c: fix kernel panic of backing from hibernation 2014-04-03 16:21:19 -07:00
rtc-snvs.c drivers/rtc/rtc-snvs.c: remove redundant of_match_ptr 2013-11-13 12:09:30 +09:00
rtc-spear.c rtc: rtc-spear: remove unnecessary OOM messages 2014-04-03 16:21:18 -07:00
rtc-starfire.c drivers/rtc/rtc-starfire.c: remove empty function 2013-07-03 16:07:58 -07:00
rtc-stk17ta8.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-stmp3xxx.c drivers/rtc/rtc-stmp3xxx.c: remove redundant of_match_ptr 2013-11-13 12:09:30 +09:00
rtc-sun4v.c drivers/rtc/rtc-sun4v.c: remove empty function 2013-07-03 16:07:58 -07:00
rtc-sunxi.c rtc: sunxi: change compatibles 2014-04-03 16:21:21 -07:00
rtc-sysfs.c rtc: convert class code to use dev_groups 2013-07-29 13:10:58 -07:00
rtc-tegra.c drivers/rtc: don't check resource with devm_ioremap_resource 2013-05-18 11:57:07 +02:00
rtc-test.c rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-tile.c drivers/rtc/rtc-tile.c: remove empty function 2013-07-03 16:07:53 -07:00
rtc-tps6586x.c drivers/rtc/rtc-tps6586x.c: device wakeup flags correction 2013-06-12 16:29:45 -07:00
rtc-tps65910.c drivers/rtc/rtc-tps65910.c: remove unnecessary include 2013-11-13 12:09:31 +09:00
rtc-tps80031.c drivers/rtc/rtc-tps80031.c: remove empty function 2013-07-03 16:07:58 -07:00
rtc-twl.c drivers/rtc/rtc-twl.c: use devm_*() functions 2014-01-23 16:36:59 -08:00
rtc-tx4939.c rtc: treewide: remove excess rtc_device validation 2014-04-03 16:21:24 -07:00
rtc-v3020.c drivers/rtc/rtc-v3020.c: use dev_get_platdata() 2013-11-13 12:09:30 +09:00
rtc-vr41xx.c drivers/rtc/rtc-vr41xx.c: use devm_*() functions 2014-01-23 16:36:59 -08:00
rtc-vt8500.c rtc: rtc-vt8500: use devm_ioremap_resource() 2014-04-03 16:21:19 -07: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 rtc: fix potential race condition 2014-04-03 16:21:16 -07:00
rtc-xgene.c drivers/rtc: add APM X-Gene SoC RTC driver 2014-06-06 16:08:06 -07:00
systohc.c NTP: Add a CONFIG_RTC_SYSTOHC configuration 2013-01-15 18:16:06 -08:00