Message ID | 20211028101840.24632-5-andrea.merello@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Add support for Bosch BNO055 IMU | expand |
On Thu, 28 Oct 2021 12:18:34 +0200 Andrea Merello <andrea.merello@gmail.com> wrote: > This patch is preparatory for adding the Bosh BNO055 IMU driver. > The said IMU can report raw accelerations (among x, y and z axis) > as well as the so called "linear accelerations" (again, among x, > y and z axis) which is basically the acceleration after subtracting > gravity. > > This patch adds IIO_MOD_ACCEL_LINEAR_X, IIO_MOD_ACCEL_LINEAR_Y and > IIO_MOD_ACCEL_LINEAR_Z modifiers to te IIO core. > > Signed-off-by: Andrea Merello <andrea.merello@iit.it> They sometimes get forgotten but we should also update tools/iio/iio_event_montitor.c to handle these new modifiers. That can be a separate patch, but also fine to do it in this one. > --- > drivers/iio/industrialio-core.c | 3 +++ > include/uapi/linux/iio/types.h | 4 +++- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c > index 2dbb37e09b8c..a79cb32207e4 100644 > --- a/drivers/iio/industrialio-core.c > +++ b/drivers/iio/industrialio-core.c > @@ -134,6 +134,9 @@ static const char * const iio_modifier_names[] = { > [IIO_MOD_ETHANOL] = "ethanol", > [IIO_MOD_H2] = "h2", > [IIO_MOD_O2] = "o2", > + [IIO_MOD_ACCEL_LINEAR_X] = "linear_x", > + [IIO_MOD_ACCEL_LINEAR_Y] = "linear_y", > + [IIO_MOD_ACCEL_LINEAR_Z] = "linear_z" > }; > > /* relies on pairs of these shared then separate */ > diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h > index 48c13147c0a8..db00f7c45f48 100644 > --- a/include/uapi/linux/iio/types.h > +++ b/include/uapi/linux/iio/types.h > @@ -95,6 +95,9 @@ enum iio_modifier { > IIO_MOD_ETHANOL, > IIO_MOD_H2, > IIO_MOD_O2, > + IIO_MOD_ACCEL_LINEAR_X, > + IIO_MOD_ACCEL_LINEAR_Y, > + IIO_MOD_ACCEL_LINEAR_Z, It might be useful for other channel types, so probably drop the ACCEL part of the name. I'll admit I can't immediately think of what, but you never know.. :) > }; > > enum iio_event_type { > @@ -114,4 +117,3 @@ enum iio_event_direction { > }; > > #endif /* _UAPI_IIO_TYPES_H_ */ > - ?
Il giorno gio 28 ott 2021 alle ore 12:41 Jonathan Cameron <jic23@kernel.org> ha scritto: > > On Thu, 28 Oct 2021 12:18:34 +0200 > Andrea Merello <andrea.merello@gmail.com> wrote: > > > This patch is preparatory for adding the Bosh BNO055 IMU driver. > > The said IMU can report raw accelerations (among x, y and z axis) > > as well as the so called "linear accelerations" (again, among x, > > y and z axis) which is basically the acceleration after subtracting > > gravity. > > > > This patch adds IIO_MOD_ACCEL_LINEAR_X, IIO_MOD_ACCEL_LINEAR_Y and > > IIO_MOD_ACCEL_LINEAR_Z modifiers to te IIO core. > > > > Signed-off-by: Andrea Merello <andrea.merello@iit.it> > > They sometimes get forgotten but we should also update > tools/iio/iio_event_montitor.c to handle these new modifiers. I'm not so familiar with this tool, but it seems like it has to do with IIO events, which the bno055 driver doesn't use. On the other hand the modifiers I would add are not used by any other driver right now. So I would say that it would end up in adding things that I couldn't test.. Or is there any test infrastructure for this? It seems trivial, just a matter of a few defines, so it shouldn't be an issue indeed.. > That can be a separate patch, but also fine to do it in this one. > > > --- > > drivers/iio/industrialio-core.c | 3 +++ > > include/uapi/linux/iio/types.h | 4 +++- > > 2 files changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c > > index 2dbb37e09b8c..a79cb32207e4 100644 > > --- a/drivers/iio/industrialio-core.c > > +++ b/drivers/iio/industrialio-core.c > > @@ -134,6 +134,9 @@ static const char * const iio_modifier_names[] = { > > [IIO_MOD_ETHANOL] = "ethanol", > > [IIO_MOD_H2] = "h2", > > [IIO_MOD_O2] = "o2", > > + [IIO_MOD_ACCEL_LINEAR_X] = "linear_x", > > + [IIO_MOD_ACCEL_LINEAR_Y] = "linear_y", > > + [IIO_MOD_ACCEL_LINEAR_Z] = "linear_z" > > }; > > > > /* relies on pairs of these shared then separate */ > > diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h > > index 48c13147c0a8..db00f7c45f48 100644 > > --- a/include/uapi/linux/iio/types.h > > +++ b/include/uapi/linux/iio/types.h > > @@ -95,6 +95,9 @@ enum iio_modifier { > > IIO_MOD_ETHANOL, > > IIO_MOD_H2, > > IIO_MOD_O2, > > + IIO_MOD_ACCEL_LINEAR_X, > > + IIO_MOD_ACCEL_LINEAR_Y, > > + IIO_MOD_ACCEL_LINEAR_Z, > > It might be useful for other channel types, so probably drop the ACCEL > part of the name. > > I'll admit I can't immediately think of what, but you never know.. :) But in this case what should I write in the ABI documentation? If I state that this is something that makes the gravity not being included then isn't it intrinsically tied to be an acceleration? Or, I do that, and if someone eventually finds another use, then she/he will change the ABI doc? > > }; > > > > enum iio_event_type { > > @@ -114,4 +117,3 @@ enum iio_event_direction { > > }; > > > > #endif /* _UAPI_IIO_TYPES_H_ */ > > - > ? > >
On Tue, 9 Nov 2021 10:58:19 +0100 Andrea Merello <andrea.merello@gmail.com> wrote: > Il giorno gio 28 ott 2021 alle ore 12:41 Jonathan Cameron > <jic23@kernel.org> ha scritto: > > > > On Thu, 28 Oct 2021 12:18:34 +0200 > > Andrea Merello <andrea.merello@gmail.com> wrote: > > > > > This patch is preparatory for adding the Bosh BNO055 IMU driver. > > > The said IMU can report raw accelerations (among x, y and z axis) > > > as well as the so called "linear accelerations" (again, among x, > > > y and z axis) which is basically the acceleration after subtracting > > > gravity. > > > > > > This patch adds IIO_MOD_ACCEL_LINEAR_X, IIO_MOD_ACCEL_LINEAR_Y and > > > IIO_MOD_ACCEL_LINEAR_Z modifiers to te IIO core. > > > > > > Signed-off-by: Andrea Merello <andrea.merello@iit.it> > > > > They sometimes get forgotten but we should also update > > tools/iio/iio_event_montitor.c to handle these new modifiers. > > I'm not so familiar with this tool, but it seems like it has to do > with IIO events, which the bno055 driver doesn't use. On the other > hand the modifiers I would add are not used by any other driver right > now. > > So I would say that it would end up in adding things that I couldn't > test.. Or is there any test infrastructure for this? It seems trivial, > just a matter of a few defines, so it shouldn't be an issue indeed.. > > > That can be a separate patch, but also fine to do it in this one. > > > > > --- > > > drivers/iio/industrialio-core.c | 3 +++ > > > include/uapi/linux/iio/types.h | 4 +++- > > > 2 files changed, 6 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c > > > index 2dbb37e09b8c..a79cb32207e4 100644 > > > --- a/drivers/iio/industrialio-core.c > > > +++ b/drivers/iio/industrialio-core.c > > > @@ -134,6 +134,9 @@ static const char * const iio_modifier_names[] = { > > > [IIO_MOD_ETHANOL] = "ethanol", > > > [IIO_MOD_H2] = "h2", > > > [IIO_MOD_O2] = "o2", > > > + [IIO_MOD_ACCEL_LINEAR_X] = "linear_x", > > > + [IIO_MOD_ACCEL_LINEAR_Y] = "linear_y", > > > + [IIO_MOD_ACCEL_LINEAR_Z] = "linear_z" > > > }; > > > > > > /* relies on pairs of these shared then separate */ > > > diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h > > > index 48c13147c0a8..db00f7c45f48 100644 > > > --- a/include/uapi/linux/iio/types.h > > > +++ b/include/uapi/linux/iio/types.h > > > @@ -95,6 +95,9 @@ enum iio_modifier { > > > IIO_MOD_ETHANOL, > > > IIO_MOD_H2, > > > IIO_MOD_O2, > > > + IIO_MOD_ACCEL_LINEAR_X, > > > + IIO_MOD_ACCEL_LINEAR_Y, > > > + IIO_MOD_ACCEL_LINEAR_Z, > > > > It might be useful for other channel types, so probably drop the ACCEL > > part of the name. > > > > I'll admit I can't immediately think of what, but you never know.. :) > > But in this case what should I write in the ABI documentation? If I > state that this is something that makes the gravity not being included > then isn't it intrinsically tied to be an acceleration? Or, I do > that, and if someone eventually finds another use, then she/he will > change the ABI doc? The ABI docs are only documenting the complete ABI, not separately the modifier so you will be documenting the same thing whatever we call the modifier inside the code. I'm just suggesting you call the enum entries the more generic IIO_MOD_LINEAR_X, etc, not a change to the resulting string. Jonathan > > > > }; > > > > > > enum iio_event_type { > > > @@ -114,4 +117,3 @@ enum iio_event_direction { > > > }; > > > > > > #endif /* _UAPI_IIO_TYPES_H_ */ > > > - > > ? > > > >
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index 2dbb37e09b8c..a79cb32207e4 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -134,6 +134,9 @@ static const char * const iio_modifier_names[] = { [IIO_MOD_ETHANOL] = "ethanol", [IIO_MOD_H2] = "h2", [IIO_MOD_O2] = "o2", + [IIO_MOD_ACCEL_LINEAR_X] = "linear_x", + [IIO_MOD_ACCEL_LINEAR_Y] = "linear_y", + [IIO_MOD_ACCEL_LINEAR_Z] = "linear_z" }; /* relies on pairs of these shared then separate */ diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h index 48c13147c0a8..db00f7c45f48 100644 --- a/include/uapi/linux/iio/types.h +++ b/include/uapi/linux/iio/types.h @@ -95,6 +95,9 @@ enum iio_modifier { IIO_MOD_ETHANOL, IIO_MOD_H2, IIO_MOD_O2, + IIO_MOD_ACCEL_LINEAR_X, + IIO_MOD_ACCEL_LINEAR_Y, + IIO_MOD_ACCEL_LINEAR_Z, }; enum iio_event_type { @@ -114,4 +117,3 @@ enum iio_event_direction { }; #endif /* _UAPI_IIO_TYPES_H_ */ -
This patch is preparatory for adding the Bosh BNO055 IMU driver. The said IMU can report raw accelerations (among x, y and z axis) as well as the so called "linear accelerations" (again, among x, y and z axis) which is basically the acceleration after subtracting gravity. This patch adds IIO_MOD_ACCEL_LINEAR_X, IIO_MOD_ACCEL_LINEAR_Y and IIO_MOD_ACCEL_LINEAR_Z modifiers to te IIO core. Signed-off-by: Andrea Merello <andrea.merello@iit.it> --- drivers/iio/industrialio-core.c | 3 +++ include/uapi/linux/iio/types.h | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-)