summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/rtc/sysfs.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/rtc/sysfs.c b/drivers/rtc/sysfs.c
index 00f1945bcb7e..92b348f742bb 100644
--- a/drivers/rtc/sysfs.c
+++ b/drivers/rtc/sysfs.c
@@ -243,6 +243,31 @@ offset_store(struct device *dev, struct device_attribute *attr,
static DEVICE_ATTR_RW(offset);
static ssize_t
+set_offset_nsec_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ return sprintf(buf, "%ld\n", to_rtc_device(dev)->set_offset_nsec);
+}
+
+static ssize_t
+set_offset_nsec_store(struct device *dev, struct device_attribute *attr,
+ const char *buf, size_t n)
+{
+ struct rtc_device *rtc = to_rtc_device(dev);
+ long val;
+ int err;
+
+ err = kstrtol(buf, 0, &val);
+ if (err)
+ return err;
+
+ rtc->set_offset_nsec = val;
+
+ return n;
+}
+static DEVICE_ATTR_RW(set_offset_nsec);
+
+static ssize_t
range_show(struct device *dev, struct device_attribute *attr, char *buf)
{
return sprintf(buf, "[%lld,%llu]\n", to_rtc_device(dev)->range_min,
@@ -259,6 +284,7 @@ static struct attribute *rtc_attrs[] = {
&dev_attr_hctosys.attr,
&dev_attr_wakealarm.attr,
&dev_attr_offset.attr,
+ &dev_attr_set_offset_nsec.attr,
&dev_attr_range.attr,
NULL,
};