@@ -164,6 +164,8 @@ offset The amount which the rtc clock has been adjusted in firmware.
which are added to or removed from the rtc's base clock per
billion ticks. A positive value makes a day pass more slowly,
longer, and a negative value makes a day pass more quickly.
+range_max The maximum time values in seconds supported by RTC hardware.
+range_min The minimum time values in seconds supported by RTC hardware.
*/nvmem The non volatile storage exported as a raw file, as described
in Documentation/nvmem/nvmem.txt
================ ==============================================================
@@ -248,6 +248,34 @@
}
static DEVICE_ATTR_RW(offset);
+static ssize_t
+range_max_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ ssize_t retval;
+ time64_t max_hw_secs, min_hw_secs;
+
+ retval = rtc_read_range(to_rtc_device(dev), &max_hw_secs, &min_hw_secs);
+ if (retval == 0)
+ retval = sprintf(buf, "%lld\n", max_hw_secs);
+
+ return retval;
+}
+static DEVICE_ATTR_RO(range_max);
+
+static ssize_t
+range_min_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+ ssize_t retval;
+ time64_t max_hw_secs, min_hw_secs;
+
+ retval = rtc_read_range(to_rtc_device(dev), &max_hw_secs, &min_hw_secs);
+ if (retval == 0)
+ retval = sprintf(buf, "%lld\n", min_hw_secs);
+
+ return retval;
+}
+static DEVICE_ATTR_RO(range_min);
+
static struct attribute *rtc_attrs[] = {
&dev_attr_name.attr,
&dev_attr_date.attr,
@@ -257,6 +285,8 @@
&dev_attr_hctosys.attr,
&dev_attr_wakealarm.attr,
&dev_attr_offset.attr,
+ &dev_attr_range_max.attr,
+ &dev_attr_range_min.attr,
NULL,
};
We have introduced one interface to get the RTC range, so this patch exports the valid range supported by RTC hardware to userspace. Signed-off-by: Baolin Wang <baolin.wang@linaro.org> --- Documentation/rtc.txt | 2 ++ drivers/rtc/rtc-sysfs.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) -- 1.7.9.5