[PATCH v2 2/4] iio: core: Add IIO_EV_INFO_SCALE to event info

Taha Ed-Dafili posted 4 patches 5 days, 19 hours ago
[PATCH v2 2/4] iio: core: Add IIO_EV_INFO_SCALE to event info
Posted by Taha Ed-Dafili 5 days, 19 hours ago
While implementing event scaling for the ADXL345 to match
the IIO ABI documentation, I noticed that IIO_EV_INFO_SCALE
was missing from the internal enum iio_event_info.

Add the constant and the "scale" sysfs string
to allow drivers to expose these attributes correctly.

Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com>
---
 drivers/iio/industrialio-event.c | 1 +
 include/linux/iio/types.h        | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/iio/industrialio-event.c b/drivers/iio/industrialio-event.c
index 06295cfc2da8..5096baf233f0 100644
--- a/drivers/iio/industrialio-event.c
+++ b/drivers/iio/industrialio-event.c
@@ -256,6 +256,7 @@ static const char * const iio_ev_info_text[] = {
 	[IIO_EV_INFO_TAP2_MIN_DELAY] = "tap2_min_delay",
 	[IIO_EV_INFO_RUNNING_PERIOD] = "runningperiod",
 	[IIO_EV_INFO_RUNNING_COUNT] = "runningcount",
+	[IIO_EV_INFO_SCALE] = "scale",
 };
 
 static enum iio_event_direction iio_ev_attr_dir(struct iio_dev_attr *attr)
diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
index 34eebad12d2c..4e3099defc1d 100644
--- a/include/linux/iio/types.h
+++ b/include/linux/iio/types.h
@@ -21,6 +21,7 @@ enum iio_event_info {
 	IIO_EV_INFO_TAP2_MIN_DELAY,
 	IIO_EV_INFO_RUNNING_PERIOD,
 	IIO_EV_INFO_RUNNING_COUNT,
+	IIO_EV_INFO_SCALE,
 };
 
 #define IIO_VAL_INT 1
-- 
2.47.3
Re: [PATCH v2 2/4] iio: core: Add IIO_EV_INFO_SCALE to event info
Posted by David Lechner 5 days, 18 hours ago
On 2/1/26 12:33 PM, Taha Ed-Dafili wrote:
> While implementing event scaling for the ADXL345 to match
> the IIO ABI documentation, I noticed that IIO_EV_INFO_SCALE
> was missing from the internal enum iio_event_info.
> 
> Add the constant and the "scale" sysfs string
> to allow drivers to expose these attributes correctly.

I think this could be worded better. The enum member isn't really "missing".
Are there actually any users of these attributes that have implemented
it manually? Or is this something just in the docs but not actually ever
used? I didn't look very hard, but I didn't find any drivers with these
attributes.

> 
> Signed-off-by: Taha Ed-Dafili <0rayn.dev@gmail.com>
> ---
>  drivers/iio/industrialio-event.c | 1 +
>  include/linux/iio/types.h        | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/drivers/iio/industrialio-event.c b/drivers/iio/industrialio-event.c
> index 06295cfc2da8..5096baf233f0 100644
> --- a/drivers/iio/industrialio-event.c
> +++ b/drivers/iio/industrialio-event.c
> @@ -256,6 +256,7 @@ static const char * const iio_ev_info_text[] = {
>  	[IIO_EV_INFO_TAP2_MIN_DELAY] = "tap2_min_delay",
>  	[IIO_EV_INFO_RUNNING_PERIOD] = "runningperiod",
>  	[IIO_EV_INFO_RUNNING_COUNT] = "runningcount",
> +	[IIO_EV_INFO_SCALE] = "scale",
>  };
>  
>  static enum iio_event_direction iio_ev_attr_dir(struct iio_dev_attr *attr)
> diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
> index 34eebad12d2c..4e3099defc1d 100644
> --- a/include/linux/iio/types.h
> +++ b/include/linux/iio/types.h
> @@ -21,6 +21,7 @@ enum iio_event_info {
>  	IIO_EV_INFO_TAP2_MIN_DELAY,
>  	IIO_EV_INFO_RUNNING_PERIOD,
>  	IIO_EV_INFO_RUNNING_COUNT,
> +	IIO_EV_INFO_SCALE,
>  };
>  
>  #define IIO_VAL_INT 1
Re: [PATCH v2 2/4] iio: core: Add IIO_EV_INFO_SCALE to event info
Posted by Taha Ed-Dafili 4 days, 22 hours ago
Hi David,

Thanks for the feedback. You're right—"missing" was poor wording; I’ll
rephrase to "implement support in the core" for v3 to reflect that this
is an infrastructure addition.

Regarding existing users, the current lack of IIO_EV_INFO_SCALE in the core
forces developers into manual workarounds to stay ABI-compliant. For
instance, in drivers/iio/accel/mma8452.c, the developer used
IIO_CONST_ATTR_NAMED to create a manual in_accel_scale and linked it via
.event_attrs. This approach is static and bypasses the standard event_spec
infrastructure.

My goal with adding IIO_EV_INFO_SCALE is to provide a standard path to
report these scales dynamically through read_event_value(), ensuring ABI
compliance without manual sysfs boilerplate.

Does this core infrastructure approach seem like the right architectural
path, or would you prefer I stick to a driver-level attribute for the
ADXL345? Regardless of the path chosen, I will address your other comments
in the next version: I'll fix the "in scale" typo and add the new scale
entries to the adxl345 documentation table.

Thanks,
Taha
Re: [PATCH v2 2/4] iio: core: Add IIO_EV_INFO_SCALE to event info
Posted by David Lechner 4 days, 22 hours ago
On 2/2/26 9:19 AM, Taha Ed-Dafili wrote:
> Hi David,
> 
> Thanks for the feedback. You're right—"missing" was poor wording; I’ll
> rephrase to "implement support in the core" for v3 to reflect that this
> is an infrastructure addition.
> 
> Regarding existing users, the current lack of IIO_EV_INFO_SCALE in the core
> forces developers into manual workarounds to stay ABI-compliant. For
> instance, in drivers/iio/accel/mma8452.c, the developer used
> IIO_CONST_ATTR_NAMED to create a manual in_accel_scale and linked it via
> .event_attrs. This approach is static and bypasses the standard event_spec
> infrastructure.

OK, so it looks like there is just one existing user of any events/*_scale
attribute then. That would explain why there isn't a IIO_EV_INFO_SCALE.
It just isn't very common.

> 
> My goal with adding IIO_EV_INFO_SCALE is to provide a standard path to
> report these scales dynamically through read_event_value(), ensuring ABI
> compliance without manual sysfs boilerplate.
> 
> Does this core infrastructure approach seem like the right architectural
> path, or would you prefer I stick to a driver-level attribute for the
> ADXL345? Regardless of the path chosen, I will address your other comments
> in the next version: I'll fix the "in scale" typo and add the new scale
> entries to the adxl345 documentation table.

If we think there will be more users of this and we want to make it more
discoverable, then adding IIO_EV_INFO_SCALE seems useful.

I would wait until Jonathan weighs in with his opinion before taking action
though.

> 
> Thanks,
> Taha