mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings
@ 2025-05-05 19:20 Sean Nyekjaer
  2025-05-05 19:20 ` [PATCH v4 1/2] iio: accel: fxls8962af: Fix temperature calculation Sean Nyekjaer
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Sean Nyekjaer @ 2025-05-05 19:20 UTC (permalink / raw)
  To: Jonathan Cameron, Marcelo Schmitt, Lars-Peter Clausen, Andy Shevchenko
  Cc: Jonathan Cameron, linux-iio, linux-kernel, Sean Nyekjaer, stable

Add the correct scale to get temperature in mili degree Celcius.
Add sign component to temperature scan element.

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
Changes in v4:
- Blindly Copy/Pasted  Andy's comment. Use the correct MILLIDEGREE_PER_DEGREE
- Link to v3: https://lore.kernel.org/r/20250505-fxls-v3-0-8c541bf0205c@geanix.com

Changes in v3:
- Dropping define infavor of inline scale value
- Added using constants from units.h
- Tweaked commit msg to make it more assertive
- Link to v2: https://lore.kernel.org/r/20250502-fxls-v2-0-e1af65f1aa6c@geanix.com

Changes in v2:
- Correct offset is applied before scaling component 
- Added sign component to temperature scan element
- Link to v1: https://lore.kernel.org/r/20250501-fxls-v1-1-f54061a07099@geanix.com

---
Sean Nyekjaer (2):
      iio: accel: fxls8962af: Fix temperature calculation
      iio: accel: fxls8962af: Fix temperature scan element sign

 drivers/iio/accel/fxls8962af-core.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
---
base-commit: 609bc31eca06c7408e6860d8b46311ebe45c1fef
change-id: 20250501-fxls-307ef3d6d065

Best regards,
-- 
Sean Nyekjaer <sean@geanix.com>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v4 1/2] iio: accel: fxls8962af: Fix temperature calculation
  2025-05-05 19:20 [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings Sean Nyekjaer
@ 2025-05-05 19:20 ` Sean Nyekjaer
  2025-05-05 19:20 ` [PATCH v4 2/2] iio: accel: fxls8962af: Fix temperature scan element sign Sean Nyekjaer
  2025-05-15 16:17 ` [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings Jonathan Cameron
  2 siblings, 0 replies; 4+ messages in thread
From: Sean Nyekjaer @ 2025-05-05 19:20 UTC (permalink / raw)
  To: Jonathan Cameron, Marcelo Schmitt, Lars-Peter Clausen, Andy Shevchenko
  Cc: Jonathan Cameron, linux-iio, linux-kernel, Sean Nyekjaer, stable

According to spec temperature should be returned in milli degrees Celsius.
Add in_temp_scale to calculate from Celsius to milli Celsius.

Fixes: a3e0b51884ee ("iio: accel: add support for FXLS8962AF/FXLS8964AF accelerometers")
Cc: stable@vger.kernel.org
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
 drivers/iio/accel/fxls8962af-core.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/accel/fxls8962af-core.c b/drivers/iio/accel/fxls8962af-core.c
index bf1d3923a181798a1c884ee08b62d86ab5aed26f..5f5e917f7aa53912448ba078027183c63bc0cd7d 100644
--- a/drivers/iio/accel/fxls8962af-core.c
+++ b/drivers/iio/accel/fxls8962af-core.c
@@ -23,6 +23,7 @@
 #include <linux/regulator/consumer.h>
 #include <linux/regmap.h>
 #include <linux/types.h>
+#include <linux/units.h>
 
 #include <linux/iio/buffer.h>
 #include <linux/iio/events.h>
@@ -439,8 +440,16 @@ static int fxls8962af_read_raw(struct iio_dev *indio_dev,
 		*val = FXLS8962AF_TEMP_CENTER_VAL;
 		return IIO_VAL_INT;
 	case IIO_CHAN_INFO_SCALE:
-		*val = 0;
-		return fxls8962af_read_full_scale(data, val2);
+		switch (chan->type) {
+		case IIO_TEMP:
+			*val = MILLIDEGREE_PER_DEGREE;
+			return IIO_VAL_INT;
+		case IIO_ACCEL:
+			*val = 0;
+			return fxls8962af_read_full_scale(data, val2);
+		default:
+			return -EINVAL;
+		}
 	case IIO_CHAN_INFO_SAMP_FREQ:
 		return fxls8962af_read_samp_freq(data, val, val2);
 	default:
@@ -736,6 +745,7 @@ static const struct iio_event_spec fxls8962af_event[] = {
 	.type = IIO_TEMP, \
 	.address = FXLS8962AF_TEMP_OUT, \
 	.info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | \
+			      BIT(IIO_CHAN_INFO_SCALE) | \
 			      BIT(IIO_CHAN_INFO_OFFSET),\
 	.scan_index = -1, \
 	.scan_type = { \

-- 
2.47.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v4 2/2] iio: accel: fxls8962af: Fix temperature scan element sign
  2025-05-05 19:20 [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings Sean Nyekjaer
  2025-05-05 19:20 ` [PATCH v4 1/2] iio: accel: fxls8962af: Fix temperature calculation Sean Nyekjaer
@ 2025-05-05 19:20 ` Sean Nyekjaer
  2025-05-15 16:17 ` [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings Jonathan Cameron
  2 siblings, 0 replies; 4+ messages in thread
From: Sean Nyekjaer @ 2025-05-05 19:20 UTC (permalink / raw)
  To: Jonathan Cameron, Marcelo Schmitt, Lars-Peter Clausen, Andy Shevchenko
  Cc: Jonathan Cameron, linux-iio, linux-kernel, Sean Nyekjaer, stable

Mark the temperature element signed, data read from the TEMP_OUT register
is in two's complement format.
This will avoid the temperature being mishandled and miss displayed.

Fixes: a3e0b51884ee ("iio: accel: add support for FXLS8962AF/FXLS8964AF accelerometers")
Suggested-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Cc: stable@vger.kernel.org
Reviewed-by: Marcelo Schmitt <marcelo.schmitt1@gmail.com>
Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
 drivers/iio/accel/fxls8962af-core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/iio/accel/fxls8962af-core.c b/drivers/iio/accel/fxls8962af-core.c
index 5f5e917f7aa53912448ba078027183c63bc0cd7d..ae965a8f560d3b9872a7197c3b540fe4f7f655df 100644
--- a/drivers/iio/accel/fxls8962af-core.c
+++ b/drivers/iio/accel/fxls8962af-core.c
@@ -749,6 +749,7 @@ static const struct iio_event_spec fxls8962af_event[] = {
 			      BIT(IIO_CHAN_INFO_OFFSET),\
 	.scan_index = -1, \
 	.scan_type = { \
+		.sign = 's', \
 		.realbits = 8, \
 		.storagebits = 8, \
 	}, \

-- 
2.47.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings
  2025-05-05 19:20 [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings Sean Nyekjaer
  2025-05-05 19:20 ` [PATCH v4 1/2] iio: accel: fxls8962af: Fix temperature calculation Sean Nyekjaer
  2025-05-05 19:20 ` [PATCH v4 2/2] iio: accel: fxls8962af: Fix temperature scan element sign Sean Nyekjaer
@ 2025-05-15 16:17 ` Jonathan Cameron
  2 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2025-05-15 16:17 UTC (permalink / raw)
  To: Sean Nyekjaer
  Cc: Marcelo Schmitt, Lars-Peter Clausen, Andy Shevchenko,
	Jonathan Cameron, linux-iio, linux-kernel, stable

On Mon, 05 May 2025 21:20:06 +0200
Sean Nyekjaer <sean@geanix.com> wrote:

> Add the correct scale to get temperature in mili degree Celcius.
> Add sign component to temperature scan element.
> 
> Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Applied.

Thanks,

> ---
> Changes in v4:
> - Blindly Copy/Pasted  Andy's comment. Use the correct MILLIDEGREE_PER_DEGREE
> - Link to v3: https://lore.kernel.org/r/20250505-fxls-v3-0-8c541bf0205c@geanix.com
> 
> Changes in v3:
> - Dropping define infavor of inline scale value
> - Added using constants from units.h
> - Tweaked commit msg to make it more assertive
> - Link to v2: https://lore.kernel.org/r/20250502-fxls-v2-0-e1af65f1aa6c@geanix.com
> 
> Changes in v2:
> - Correct offset is applied before scaling component 
> - Added sign component to temperature scan element
> - Link to v1: https://lore.kernel.org/r/20250501-fxls-v1-1-f54061a07099@geanix.com
> 
> ---
> Sean Nyekjaer (2):
>       iio: accel: fxls8962af: Fix temperature calculation
>       iio: accel: fxls8962af: Fix temperature scan element sign
> 
>  drivers/iio/accel/fxls8962af-core.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> ---
> base-commit: 609bc31eca06c7408e6860d8b46311ebe45c1fef
> change-id: 20250501-fxls-307ef3d6d065
> 
> Best regards,


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-05-15 16:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-05 19:20 [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings Sean Nyekjaer
2025-05-05 19:20 ` [PATCH v4 1/2] iio: accel: fxls8962af: Fix temperature calculation Sean Nyekjaer
2025-05-05 19:20 ` [PATCH v4 2/2] iio: accel: fxls8962af: Fix temperature scan element sign Sean Nyekjaer
2025-05-15 16:17 ` [PATCH v4 0/2] iio: accel: fxls8962af: Fix temperature readings Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®