public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] iio: imu: add devices to adis16480 driver
@ 2024-11-07 13:45 Darius Berghe
  2024-11-07 13:45 ` [PATCH v2 1/3] iio: imu: adis16480: " Darius Berghe
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Darius Berghe @ 2024-11-07 13:45 UTC (permalink / raw)
  To: linux-iio, linux-kernel; +Cc: jic23, darius.berghe

Thanks for the review and input Jonathan, I've addressed the 2 points
you raised in V1, here's the breakdown.

Changes in v2:
 - document in the commit description the main differences between 
   the newly added and the already supported devices
 - make adis16487 fallback compatible with adis16485 since they are
   functionally equivalent

Darius Berghe (3):
  iio: imu: adis16480: add devices to adis16480 driver
  iio: imu: adis16480: add devices to adis16480 - docs
  dt-bindings: iio: adis16480: add devices to adis16480

 .../bindings/iio/imu/adi,adis16480.yaml       |  5 ++
 Documentation/iio/adis16480.rst               |  3 +
 drivers/iio/imu/adis16480.c                   | 75 +++++++++++++++++++
 3 files changed, 83 insertions(+)

-- 
2.46.1


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

* [PATCH v2 1/3] iio: imu: adis16480: add devices to adis16480 driver
  2024-11-07 13:45 [PATCH v2 0/3] iio: imu: add devices to adis16480 driver Darius Berghe
@ 2024-11-07 13:45 ` Darius Berghe
  2024-11-07 13:45 ` [PATCH v2 2/3] iio: imu: adis16480: add devices to adis16480 - docs Darius Berghe
  2024-11-07 13:45 ` [PATCH v2 3/3] dt-bindings: iio: adis16480: add devices to adis16480 Darius Berghe
  2 siblings, 0 replies; 5+ messages in thread
From: Darius Berghe @ 2024-11-07 13:45 UTC (permalink / raw)
  To: linux-iio, linux-kernel; +Cc: jic23, darius.berghe

Add support for adis16486, adis16487 and adis16489 Six Degrees
of Freedom Inertial Sensors into the existing adis16480 iio
subsystem driver.

adis16486 is similar to adis16485, has the exact same channels
but acceleration and delta velocity scales are different.

adis16487 is fallback compatible with adis16485.

adis16489 is similar to adis16488 but lacks the magnetometer
and has a different accelerometer scale.

Signed-off-by: Darius Berghe <darius.berghe@analog.com>
---
 drivers/iio/imu/adis16480.c | 75 +++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
index 7bfda7133a96..03a2f21dd779 100644
--- a/drivers/iio/imu/adis16480.c
+++ b/drivers/iio/imu/adis16480.c
@@ -912,6 +912,24 @@ static const struct iio_chan_spec adis16485_channels[] = {
 	ADIS16480_DELTVEL_CHANNEL_NO_SCAN(Z),
 };
 
+static const struct iio_chan_spec adis16489_channels[] = {
+	ADIS16480_GYRO_CHANNEL(X),
+	ADIS16480_GYRO_CHANNEL(Y),
+	ADIS16480_GYRO_CHANNEL(Z),
+	ADIS16480_ACCEL_CHANNEL(X),
+	ADIS16480_ACCEL_CHANNEL(Y),
+	ADIS16480_ACCEL_CHANNEL(Z),
+	ADIS16480_PRESSURE_CHANNEL(),
+	ADIS16480_TEMP_CHANNEL(),
+	IIO_CHAN_SOFT_TIMESTAMP(8),
+	ADIS16480_DELTANG_CHANNEL_NO_SCAN(X),
+	ADIS16480_DELTANG_CHANNEL_NO_SCAN(Y),
+	ADIS16480_DELTANG_CHANNEL_NO_SCAN(Z),
+	ADIS16480_DELTVEL_CHANNEL_NO_SCAN(X),
+	ADIS16480_DELTVEL_CHANNEL_NO_SCAN(Y),
+	ADIS16480_DELTVEL_CHANNEL_NO_SCAN(Z),
+};
+
 static const struct iio_chan_spec adis16495_channels[] = {
 	ADIS16480_GYRO_CHANNEL(X),
 	ADIS16480_GYRO_CHANNEL(Y),
@@ -952,7 +970,10 @@ enum adis16480_variant {
 	ADIS16375,
 	ADIS16480,
 	ADIS16485,
+	ADIS16486,
+	ADIS16487,
 	ADIS16488,
+	ADIS16489,
 	ADIS16490,
 	ADIS16495_1,
 	ADIS16495_2,
@@ -1108,6 +1129,38 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 		.filter_freqs = adis16480_def_filter_freqs,
 		.adis_data = ADIS16480_DATA(16485, &adis16485_timeouts, 0, 0),
 	},
+	[ADIS16486] = {
+		.channels = adis16485_channels,
+		.num_channels = ARRAY_SIZE(adis16485_channels),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(20000 << 16),
+		.accel_max_scale = 18,
+		.temp_scale = 5650, /* 5.65 milli degree Celsius */
+		.deltang_max_val = IIO_DEGREE_TO_RAD(720),
+		.deltvel_max_val = 200,
+		.int_clk = 2460000,
+		.max_dec_rate = 2048,
+		.has_sleep_cnt = true,
+		.filter_freqs = adis16480_def_filter_freqs,
+		.adis_data = ADIS16480_DATA(16486, &adis16480_timeouts, 0, 0),
+	},
+	[ADIS16487] = {
+		.channels = adis16485_channels,
+		.num_channels = ARRAY_SIZE(adis16485_channels),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(20000 << 16),
+		.accel_max_scale = 5,
+		.temp_scale = 5650, /* 5.65 milli degree Celsius */
+		.deltang_max_val = IIO_DEGREE_TO_RAD(720),
+		.deltvel_max_val = 50,
+		.int_clk = 2460000,
+		.max_dec_rate = 2048,
+		.has_sleep_cnt = true,
+		.filter_freqs = adis16480_def_filter_freqs,
+		.adis_data = ADIS16480_DATA(16487, &adis16485_timeouts, 0, 0),
+	},
 	[ADIS16488] = {
 		.channels = adis16480_channels,
 		.num_channels = ARRAY_SIZE(adis16480_channels),
@@ -1124,6 +1177,22 @@ static const struct adis16480_chip_info adis16480_chip_info[] = {
 		.filter_freqs = adis16480_def_filter_freqs,
 		.adis_data = ADIS16480_DATA(16488, &adis16485_timeouts, 0, 0),
 	},
+	[ADIS16489] = {
+		.channels = adis16489_channels,
+		.num_channels = ARRAY_SIZE(adis16489_channels),
+		.gyro_max_val = 22500 << 16,
+		.gyro_max_scale = IIO_DEGREE_TO_RAD(450),
+		.accel_max_val = IIO_M_S_2_TO_G(20000 << 16),
+		.accel_max_scale = 18,
+		.temp_scale = 5650, /* 5.65 milli degree Celsius */
+		.deltang_max_val = IIO_DEGREE_TO_RAD(720),
+		.deltvel_max_val = 200,
+		.int_clk = 2460000,
+		.max_dec_rate = 2048,
+		.has_sleep_cnt = true,
+		.filter_freqs = adis16480_def_filter_freqs,
+		.adis_data = ADIS16480_DATA(16489, &adis16480_timeouts, 0, 0),
+	},
 	[ADIS16490] = {
 		.channels = adis16485_channels,
 		.num_channels = ARRAY_SIZE(adis16485_channels),
@@ -1841,7 +1910,10 @@ static const struct spi_device_id adis16480_ids[] = {
 	{ "adis16375", ADIS16375 },
 	{ "adis16480", ADIS16480 },
 	{ "adis16485", ADIS16485 },
+	{ "adis16486", ADIS16486 },
+	{ "adis16487", ADIS16487 },
 	{ "adis16488", ADIS16488 },
+	{ "adis16489", ADIS16489 },
 	{ "adis16490", ADIS16490 },
 	{ "adis16495-1", ADIS16495_1 },
 	{ "adis16495-2", ADIS16495_2 },
@@ -1863,7 +1935,10 @@ static const struct of_device_id adis16480_of_match[] = {
 	{ .compatible = "adi,adis16375" },
 	{ .compatible = "adi,adis16480" },
 	{ .compatible = "adi,adis16485" },
+	{ .compatible = "adi,adis16486" },
+	{ .compatible = "adi,adis16487" },
 	{ .compatible = "adi,adis16488" },
+	{ .compatible = "adi,adis16489" },
 	{ .compatible = "adi,adis16490" },
 	{ .compatible = "adi,adis16495-1" },
 	{ .compatible = "adi,adis16495-2" },
-- 
2.46.1


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

* [PATCH v2 2/3] iio: imu: adis16480: add devices to adis16480 - docs
  2024-11-07 13:45 [PATCH v2 0/3] iio: imu: add devices to adis16480 driver Darius Berghe
  2024-11-07 13:45 ` [PATCH v2 1/3] iio: imu: adis16480: " Darius Berghe
@ 2024-11-07 13:45 ` Darius Berghe
  2024-11-07 13:45 ` [PATCH v2 3/3] dt-bindings: iio: adis16480: add devices to adis16480 Darius Berghe
  2 siblings, 0 replies; 5+ messages in thread
From: Darius Berghe @ 2024-11-07 13:45 UTC (permalink / raw)
  To: linux-iio, linux-kernel; +Cc: jic23, darius.berghe

Add datasheet links for adis16486, adis16487 and adis16489
Six Degrees of Freedom Inertial Sensors into the existing
adis16480 driver documentation.

adis16486 is similar to adis16485, has the exact same channels
but acceleration and delta velocity scales are different.

adis16487 is fallback compatible with adis16485.

adis16489 is similar to adis16488 but lacks the magnetometer
and has a different accelerometer scale.

Signed-off-by: Darius Berghe <darius.berghe@analog.com>
---
 Documentation/iio/adis16480.rst | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Documentation/iio/adis16480.rst b/Documentation/iio/adis16480.rst
index e3cc64ddc8f6..d911131c613c 100644
--- a/Documentation/iio/adis16480.rst
+++ b/Documentation/iio/adis16480.rst
@@ -12,7 +12,10 @@ This driver supports Analog Device's IMUs on SPI bus.
 * `ADIS16375 <https://www.analog.com/ADIS16375>`_
 * `ADIS16480 <https://www.analog.com/ADIS16480>`_
 * `ADIS16485 <https://www.analog.com/ADIS16485>`_
+* `ADIS16486 <https://www.analog.com/ADIS16486>`_
+* `ADIS16487 <https://www.analog.com/ADIS16487>`_
 * `ADIS16488 <https://www.analog.com/ADIS16488>`_
+* `ADIS16489 <https://www.analog.com/ADIS16489>`_
 * `ADIS16490 <https://www.analog.com/ADIS16490>`_
 * `ADIS16495 <https://www.analog.com/ADIS16495>`_
 * `ADIS16497 <https://www.analog.com/ADIS16497>`_
-- 
2.46.1


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

* [PATCH v2 3/3] dt-bindings: iio: adis16480: add devices to adis16480
  2024-11-07 13:45 [PATCH v2 0/3] iio: imu: add devices to adis16480 driver Darius Berghe
  2024-11-07 13:45 ` [PATCH v2 1/3] iio: imu: adis16480: " Darius Berghe
  2024-11-07 13:45 ` [PATCH v2 2/3] iio: imu: adis16480: add devices to adis16480 - docs Darius Berghe
@ 2024-11-07 13:45 ` Darius Berghe
  2024-11-08 10:43   ` Krzysztof Kozlowski
  2 siblings, 1 reply; 5+ messages in thread
From: Darius Berghe @ 2024-11-07 13:45 UTC (permalink / raw)
  To: linux-iio, linux-kernel; +Cc: jic23, darius.berghe

Add the adis16486, adis16487 and adis16489 Six Degrees
of Freedom Inertial Sensors to the list of compatible devices
of the adis16480 iio subsystem driver.

adis16486 is similar to adis16485, has the exact same channels
but acceleration and delta velocity scales are different.

adis16487 is fallback compatible with adis16485.

adis16489 is similar to adis16488 but lacks the magnetometer
and has a different accelerometer scale.

Signed-off-by: Darius Berghe <darius.berghe@analog.com>
---
 Documentation/devicetree/bindings/iio/imu/adi,adis16480.yaml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/Documentation/devicetree/bindings/iio/imu/adi,adis16480.yaml b/Documentation/devicetree/bindings/iio/imu/adi,adis16480.yaml
index e3eec38897bf..2d3e6ecec6a5 100644
--- a/Documentation/devicetree/bindings/iio/imu/adi,adis16480.yaml
+++ b/Documentation/devicetree/bindings/iio/imu/adi,adis16480.yaml
@@ -15,7 +15,9 @@ properties:
       - adi,adis16375
       - adi,adis16480
       - adi,adis16485
+      - adi,adis16486
       - adi,adis16488
+      - adi,adis16489
       - adi,adis16490
       - adi,adis16495-1
       - adi,adis16495-2
@@ -29,6 +31,9 @@ properties:
       - adi,adis16547-1
       - adi,adis16547-2
       - adi,adis16547-3
+    - items
+      - const: adi,adis16487
+      - const: adi,adis16485
 
   reg:
     maxItems: 1
-- 
2.46.1


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

* Re: [PATCH v2 3/3] dt-bindings: iio: adis16480: add devices to adis16480
  2024-11-07 13:45 ` [PATCH v2 3/3] dt-bindings: iio: adis16480: add devices to adis16480 Darius Berghe
@ 2024-11-08 10:43   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2024-11-08 10:43 UTC (permalink / raw)
  To: Darius Berghe, linux-iio, linux-kernel; +Cc: jic23

On 07/11/2024 14:45, Darius Berghe wrote:
> Add the adis16486, adis16487 and adis16489 Six Degrees
> of Freedom Inertial Sensors to the list of compatible devices
> of the adis16480 iio subsystem driver.
> 
> adis16486 is similar to adis16485, has the exact same channels
> but acceleration and delta velocity scales are different.
> 
> adis16487 is fallback compatible with adis16485.

This was never tested - visible easily from the diff. No need to ask
reviewers to do the tools job. Tools are for that.

<form letter>
Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC. It might happen, that command when run on an older
kernel, gives you outdated entries. Therefore please be sure you base
your patches on recent Linux kernel.

Tools like b4 or scripts/get_maintainer.pl provide you proper list of
people, so fix your workflow. Tools might also fail if you work on some
ancient tree (don't, instead use mainline) or work on fork of kernel
(don't, instead use mainline). Just use b4 and everything should be
fine, although remember about `b4 prep --auto-to-cc` if you added new
patches to the patchset.

You missed at least devicetree list (maybe more), so this won't be
tested by automated tooling. Performing review on untested code might be
a waste of time.

Please kindly resend and include all necessary To/Cc entries.
</form letter>

Best regards,
Krzysztof


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

end of thread, other threads:[~2024-11-08 10:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-07 13:45 [PATCH v2 0/3] iio: imu: add devices to adis16480 driver Darius Berghe
2024-11-07 13:45 ` [PATCH v2 1/3] iio: imu: adis16480: " Darius Berghe
2024-11-07 13:45 ` [PATCH v2 2/3] iio: imu: adis16480: add devices to adis16480 - docs Darius Berghe
2024-11-07 13:45 ` [PATCH v2 3/3] dt-bindings: iio: adis16480: add devices to adis16480 Darius Berghe
2024-11-08 10:43   ` Krzysztof Kozlowski

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