rtc: add driver for DS1685 family of real time clocks
This adds a driver for the Dallas/Maxim DS1685-family of RTC chips. It supports the DS1685/DS1687, DS1688/DS1691, DS1689/DS1693, DS17285/DS17287, DS17485/DS17487, and DS17885/DS17887 RTC chips. These chips are commonly found in SGI O2 and SGI Octane systems. It was originally derived from a driver patch submitted by Matthias Fuchs many years ago for use in EPPC-405-UC modules, which also used these RTCs. In addition to the time-keeping functions, this RTC also handles the shutdown mechanism of the O2 and Octane and acts as a partial NVRAM for the boot PROMS in these systems. Verified on both an SGI O2 and an SGI Octane. Signed-off-by: Joshua Kinard <kumba@gentoo.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
befeb596a7
commit
aaaf5fbf56
@@ -801,6 +801,96 @@ config RTC_DRV_DS1553
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called rtc-ds1553.
|
||||
|
||||
config RTC_DRV_DS1685_FAMILY
|
||||
tristate "Dallas/Maxim DS1685 Family"
|
||||
help
|
||||
If you say yes here you get support for the Dallas/Maxim DS1685
|
||||
family of real time chips. This family includes the DS1685/DS1687,
|
||||
DS1689/DS1693, DS17285/DS17287, DS17485/DS17487, and
|
||||
DS17885/DS17887 chips.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called rtc-ds1685.
|
||||
|
||||
choice
|
||||
prompt "Subtype"
|
||||
depends on RTC_DRV_DS1685_FAMILY
|
||||
default RTC_DRV_DS1685
|
||||
|
||||
config RTC_DRV_DS1685
|
||||
bool "DS1685/DS1687"
|
||||
help
|
||||
This enables support for the Dallas/Maxim DS1685/DS1687 real time
|
||||
clock chip.
|
||||
|
||||
This chip is commonly found in SGI O2 (IP32) and SGI Octane (IP30)
|
||||
systems, as well as EPPC-405-UC modules by electronic system design
|
||||
GmbH.
|
||||
|
||||
config RTC_DRV_DS1689
|
||||
bool "DS1689/DS1693"
|
||||
help
|
||||
This enables support for the Dallas/Maxim DS1689/DS1693 real time
|
||||
clock chip.
|
||||
|
||||
This is an older RTC chip, supplanted by the DS1685/DS1687 above,
|
||||
which supports a few minor features such as Vcc, Vbat, and Power
|
||||
Cycle counters, plus a customer-specific, 8-byte ROM/Serial number.
|
||||
|
||||
It also works for the even older DS1688/DS1691 RTC chips, which are
|
||||
virtually the same and carry the same model number. Both chips
|
||||
have 114 bytes of user NVRAM.
|
||||
|
||||
config RTC_DRV_DS17285
|
||||
bool "DS17285/DS17287"
|
||||
help
|
||||
This enables support for the Dallas/Maxim DS17285/DS17287 real time
|
||||
clock chip.
|
||||
|
||||
This chip features 2kb of extended NV-SRAM. It may possibly be
|
||||
found in some SGI O2 systems (rare).
|
||||
|
||||
config RTC_DRV_DS17485
|
||||
bool "DS17485/DS17487"
|
||||
help
|
||||
This enables support for the Dallas/Maxim DS17485/DS17487 real time
|
||||
clock chip.
|
||||
|
||||
This chip features 4kb of extended NV-SRAM.
|
||||
|
||||
config RTC_DRV_DS17885
|
||||
bool "DS17885/DS17887"
|
||||
help
|
||||
This enables support for the Dallas/Maxim DS17885/DS17887 real time
|
||||
clock chip.
|
||||
|
||||
This chip features 8kb of extended NV-SRAM.
|
||||
|
||||
endchoice
|
||||
|
||||
config RTC_DS1685_PROC_REGS
|
||||
bool "Display register values in /proc"
|
||||
depends on RTC_DRV_DS1685_FAMILY && PROC_FS
|
||||
help
|
||||
Enable this to display a readout of all of the RTC registers in
|
||||
/proc/drivers/rtc. Keep in mind that this can potentially lead
|
||||
to lost interrupts, as reading Control Register C will clear
|
||||
all pending IRQ flags.
|
||||
|
||||
Unless you are debugging this driver, choose N.
|
||||
|
||||
config RTC_DS1685_SYSFS_REGS
|
||||
bool "SysFS access to RTC register bits"
|
||||
depends on RTC_DRV_DS1685_FAMILY && SYSFS
|
||||
help
|
||||
Enable this to provide access to the RTC control register bits
|
||||
in /sys. Some of the bits are read-write, others are read-only.
|
||||
|
||||
Keep in mind that reading Control C's bits automatically clears
|
||||
all pending IRQ flags - this can cause lost interrupts.
|
||||
|
||||
If you know that you need access to these bits, choose Y, Else N.
|
||||
|
||||
config RTC_DRV_DS1742
|
||||
tristate "Maxim/Dallas DS1742/1743"
|
||||
depends on HAS_IOMEM
|
||||
|
@@ -54,6 +54,7 @@ obj-$(CONFIG_RTC_DRV_DS1390) += rtc-ds1390.o
|
||||
obj-$(CONFIG_RTC_DRV_DS1511) += rtc-ds1511.o
|
||||
obj-$(CONFIG_RTC_DRV_DS1553) += rtc-ds1553.o
|
||||
obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o
|
||||
obj-$(CONFIG_RTC_DRV_DS1685_FAMILY) += rtc-ds1685.o
|
||||
obj-$(CONFIG_RTC_DRV_DS1742) += rtc-ds1742.o
|
||||
obj-$(CONFIG_RTC_DRV_DS2404) += rtc-ds2404.o
|
||||
obj-$(CONFIG_RTC_DRV_DS3232) += rtc-ds3232.o
|
||||
|
2252
drivers/rtc/rtc-ds1685.c
Normal file
2252
drivers/rtc/rtc-ds1685.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user