|
@@ -29,8 +29,8 @@
|
|
|
* Attribute functions
|
|
|
*/
|
|
|
|
|
|
-static ssize_t pps_show_assert(struct device *dev,
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
+static ssize_t assert_show(struct device *dev, struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
{
|
|
|
struct pps_device *pps = dev_get_drvdata(dev);
|
|
|
|
|
@@ -41,9 +41,10 @@ static ssize_t pps_show_assert(struct device *dev,
|
|
|
(long long) pps->assert_tu.sec, pps->assert_tu.nsec,
|
|
|
pps->assert_sequence);
|
|
|
}
|
|
|
+static DEVICE_ATTR_RO(assert);
|
|
|
|
|
|
-static ssize_t pps_show_clear(struct device *dev,
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
+static ssize_t clear_show(struct device *dev, struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
{
|
|
|
struct pps_device *pps = dev_get_drvdata(dev);
|
|
|
|
|
@@ -54,45 +55,59 @@ static ssize_t pps_show_clear(struct device *dev,
|
|
|
(long long) pps->clear_tu.sec, pps->clear_tu.nsec,
|
|
|
pps->clear_sequence);
|
|
|
}
|
|
|
+static DEVICE_ATTR_RO(clear);
|
|
|
|
|
|
-static ssize_t pps_show_mode(struct device *dev,
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
+static ssize_t mode_show(struct device *dev, struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
{
|
|
|
struct pps_device *pps = dev_get_drvdata(dev);
|
|
|
|
|
|
return sprintf(buf, "%4x\n", pps->info.mode);
|
|
|
}
|
|
|
+static DEVICE_ATTR_RO(mode);
|
|
|
|
|
|
-static ssize_t pps_show_echo(struct device *dev,
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
+static ssize_t echo_show(struct device *dev, struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
{
|
|
|
struct pps_device *pps = dev_get_drvdata(dev);
|
|
|
|
|
|
return sprintf(buf, "%d\n", !!pps->info.echo);
|
|
|
}
|
|
|
+static DEVICE_ATTR_RO(echo);
|
|
|
|
|
|
-static ssize_t pps_show_name(struct device *dev,
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
+static ssize_t name_show(struct device *dev, struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
{
|
|
|
struct pps_device *pps = dev_get_drvdata(dev);
|
|
|
|
|
|
return sprintf(buf, "%s\n", pps->info.name);
|
|
|
}
|
|
|
+static DEVICE_ATTR_RO(name);
|
|
|
|
|
|
-static ssize_t pps_show_path(struct device *dev,
|
|
|
- struct device_attribute *attr, char *buf)
|
|
|
+static ssize_t path_show(struct device *dev, struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
{
|
|
|
struct pps_device *pps = dev_get_drvdata(dev);
|
|
|
|
|
|
return sprintf(buf, "%s\n", pps->info.path);
|
|
|
}
|
|
|
+static DEVICE_ATTR_RO(path);
|
|
|
+
|
|
|
+static struct attribute *pps_attrs[] = {
|
|
|
+ &dev_attr_assert.attr,
|
|
|
+ &dev_attr_clear.attr,
|
|
|
+ &dev_attr_mode.attr,
|
|
|
+ &dev_attr_echo.attr,
|
|
|
+ &dev_attr_name.attr,
|
|
|
+ &dev_attr_path.attr,
|
|
|
+ NULL,
|
|
|
+};
|
|
|
+
|
|
|
+static const struct attribute_group pps_group = {
|
|
|
+ .attrs = pps_attrs,
|
|
|
+};
|
|
|
|
|
|
-struct device_attribute pps_attrs[] = {
|
|
|
- __ATTR(assert, S_IRUGO, pps_show_assert, NULL),
|
|
|
- __ATTR(clear, S_IRUGO, pps_show_clear, NULL),
|
|
|
- __ATTR(mode, S_IRUGO, pps_show_mode, NULL),
|
|
|
- __ATTR(echo, S_IRUGO, pps_show_echo, NULL),
|
|
|
- __ATTR(name, S_IRUGO, pps_show_name, NULL),
|
|
|
- __ATTR(path, S_IRUGO, pps_show_path, NULL),
|
|
|
- __ATTR_NULL,
|
|
|
+const struct attribute_group *pps_groups[] = {
|
|
|
+ &pps_group,
|
|
|
+ NULL,
|
|
|
};
|