What:		/dev/rtcX
Date:		April 2005
KernelVersion:	2.6.12
Contact:	linux-rtc@vger.kernel.org
Description:
		The ioctl interface to drivers for real-time clocks (RTCs).
		Following actions are supported:

		* RTC_RD_TIME, RTC_SET_TIME: Read or set the RTC time. Time
		  format is a Gregorian calendar date and 24 hour wall clock
		  time.

		* RTC_AIE_ON, RTC_AIE_OFF: Enable or disable the alarm interrupt
		  for RTCs that support alarms

		* RTC_ALM_READ, RTC_ALM_SET: Read or set the alarm time for
		  RTCs that support alarms. Can be set upto 24 hours in the
		  future. Requires a separate RTC_AIE_ON call to enable the
		  alarm interrupt. (Prefer to use RTC_WKALM_*)

		* RTC_WKALM_RD, RTC_WKALM_SET: For RTCs that support a more
		  powerful interface, which can issue alarms beyond 24 hours and
		  enable IRQs in the same request.

		* RTC_PIE_ON, RTC_PIE_OFF: Enable or disable the periodic
		  interrupt for RTCs that support periodic interrupts.

		* RTC_UIE_ON, RTC_UIE_OFF: Enable or disable the update
		  interrupt for RTCs that support it.

		* RTC_IRQP_READ, RTC_IRQP_SET: Read or set the frequency for
		  periodic interrupts for RTCs that support periodic interrupts.
		  Requires a separate RTC_PIE_ON call to enable the periodic
		  interrupts.

		The ioctl() calls supported by the older /dev/rtc interface are
		also supported by the newer RTC class framework. However,
		because the chips and systems are not standardized, some PC/AT
		functionality might not be provided. And in the same way, some
		newer features -- including those enabled by ACPI -- are exposed
		by the RTC class framework, but can't be supported by the older
		driver.
