OSDN Git Service

iio: Add IIO_STATIC_CONST_DEVICE_ATTR
authorMatti Vaittinen <mazziesaccount@gmail.com>
Mon, 3 Oct 2022 08:12:04 +0000 (11:12 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 23 Nov 2022 19:44:03 +0000 (19:44 +0000)
Add IIO_STATIC_CONST_DEVICE_ATTR macro for creating an read-only
iio_dev_attr which returns constant value. This macro is intended to be
used when replacing the IIO_CONST_ATTR - attributes for triggered
buffers because the triggered buffer attributes must be of type
iio_dev_attr.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Link: https://lore.kernel.org/r/8dd853dd0ef8eb40cb980cc6f6e7a43166de3afb.1664782676.git.mazziesaccount@gmail.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
include/linux/iio/sysfs.h

index e51fba6..de5bb12 100644 (file)
@@ -97,6 +97,17 @@ struct iio_const_attr {
        = { .string = _string,                                          \
            .dev_attr = __ATTR(_name, S_IRUGO, iio_read_const_attr, NULL)}
 
+#define IIO_STATIC_CONST_DEVICE_ATTR(_name, _string)                           \
+       static ssize_t iio_const_dev_attr_show_##_name(                 \
+                                       struct device *dev,             \
+                                       struct device_attribute *attr,  \
+                                       char *buf)                      \
+       {                                                               \
+               return sysfs_emit(buf, "%s\n", _string);                \
+       }                                                               \
+       static IIO_DEVICE_ATTR(_name, 0444,                             \
+                              iio_const_dev_attr_show_##_name, NULL, 0)
+
 /* Generic attributes of onetype or another */
 
 /**