Linux IIO development
 help / color / mirror / Atom feed
* [PATCH v2 0/6] iio: st_sensors: Add lsm303d support
@ 2023-04-13  2:40 Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 1/6] iio: accel: st_accel: Add LSM303D Marius Hoch
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Marius Hoch @ 2023-04-13  2:40 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel
  Cc: Hans de Goede, Marius Hoch

Hi!

This patch series adds support for the LSM303D accelerometer and
magnetometer. As the LSM303D is basically, as far as I can tell,
the LSM9DS0 without gyroscope, we can easily re-use its definitions.

This was tested on a Lenovo Yoga Tablet 2 1051-F.

Cheers,
Marius

Marius Hoch (6):
  iio: accel: st_accel: Add LSM303D
  iio: magnetometer: st_accel: Add LSM303D
  iio: st_sensors: Add lsm303d support to the LSM9DS0 IMU driver
  iio: st_sensors: Add ACPI support for lsm303d to the LSM9DS0 IMU
    driver
  iio: Comment that the LSM303D also has the Magnetometer DRDY
  dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer

 .../devicetree/bindings/iio/st,st-sensors.yaml    |  1 +
 drivers/iio/accel/st_accel_core.c                 |  1 +
 drivers/iio/imu/st_lsm9ds0/Kconfig                |  3 ++-
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c       | 15 +++++++++++++++
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c       | 15 +++++++++++++++
 drivers/iio/magnetometer/st_magn_core.c           |  1 +
 include/linux/iio/common/st_sensors.h             |  1 +
 include/linux/platform_data/st_sensors_pdata.h    |  2 +-
 8 files changed, 37 insertions(+), 2 deletions(-)


base-commit: e62252bc55b6d4eddc6c2bdbf95a448180d6a08d
-- 
2.39.2


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

* [PATCH v2 1/6] iio: accel: st_accel: Add LSM303D
  2023-04-13  2:40 [PATCH v2 0/6] iio: st_sensors: Add lsm303d support Marius Hoch
@ 2023-04-13  2:40 ` Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 2/6] iio: magnetometer: " Marius Hoch
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Marius Hoch @ 2023-04-13  2:40 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel
  Cc: Hans de Goede, Marius Hoch

The lsm303d has the same register mapping as the lsm9ds0,
thus we can just re-use that.

Tested on a Lenovo Yoga Tablet 2 1051-F.

Signed-off-by: Marius Hoch <mail@mariushoch.de>
---
 drivers/iio/accel/st_accel_core.c     | 1 +
 include/linux/iio/common/st_sensors.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
index 6b8562f684d5..1628b177d0ed 100644
--- a/drivers/iio/accel/st_accel_core.c
+++ b/drivers/iio/accel/st_accel_core.c
@@ -1006,6 +1006,7 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
 		.wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
 		.sensors_supported = {
 			[0] = LSM9DS0_IMU_DEV_NAME,
+			[1] = LSM303D_IMU_DEV_NAME,
 		},
 		.ch = (struct iio_chan_spec *)st_accel_16bit_channels,
 		.odr = {
diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h
index f5f3ee57bc70..607c3a89a647 100644
--- a/include/linux/iio/common/st_sensors.h
+++ b/include/linux/iio/common/st_sensors.h
@@ -22,6 +22,7 @@
 #include <linux/platform_data/st_sensors_pdata.h>
 
 #define LSM9DS0_IMU_DEV_NAME		"lsm9ds0"
+#define LSM303D_IMU_DEV_NAME		"lsm303d"
 
 /*
  * Buffer size max case: 2bytes per channel, 3 channels in total +
-- 
2.39.2


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

* [PATCH v2 2/6] iio: magnetometer: st_accel: Add LSM303D
  2023-04-13  2:40 [PATCH v2 0/6] iio: st_sensors: Add lsm303d support Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 1/6] iio: accel: st_accel: Add LSM303D Marius Hoch
@ 2023-04-13  2:40 ` Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 3/6] iio: st_sensors: Add lsm303d support to the LSM9DS0 IMU driver Marius Hoch
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Marius Hoch @ 2023-04-13  2:40 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel
  Cc: Hans de Goede, Marius Hoch

The lsm303d has the same register mapping as the lsm9ds0,
thus we can just re-use that.

Tested on a Lenovo Yoga Tablet 2 1051-F.

Signed-off-by: Marius Hoch <mail@mariushoch.de>
---
 drivers/iio/magnetometer/st_magn_core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c
index 8faa7409d9e1..6cc0dfd31821 100644
--- a/drivers/iio/magnetometer/st_magn_core.c
+++ b/drivers/iio/magnetometer/st_magn_core.c
@@ -427,6 +427,7 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = {
 		.wai_addr = ST_SENSORS_DEFAULT_WAI_ADDRESS,
 		.sensors_supported = {
 			[0] = LSM9DS0_IMU_DEV_NAME,
+			[1] = LSM303D_IMU_DEV_NAME,
 		},
 		.ch = (struct iio_chan_spec *)st_magn_4_16bit_channels,
 		.odr = {
-- 
2.39.2


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

* [PATCH v2 3/6] iio: st_sensors: Add lsm303d support to the LSM9DS0 IMU driver
  2023-04-13  2:40 [PATCH v2 0/6] iio: st_sensors: Add lsm303d support Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 1/6] iio: accel: st_accel: Add LSM303D Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 2/6] iio: magnetometer: " Marius Hoch
@ 2023-04-13  2:40 ` Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 4/6] iio: st_sensors: Add ACPI support for lsm303d " Marius Hoch
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Marius Hoch @ 2023-04-13  2:40 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel
  Cc: Hans de Goede, Marius Hoch

The lsm303d is basically the lsm9ds0 without the gyroscope
(which the LSM9DS0 IMU driver doesn't handle), as far as I
can tell.

Signed-off-by: Marius Hoch <mail@mariushoch.de>
---
 drivers/iio/imu/st_lsm9ds0/Kconfig          | 3 ++-
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 5 +++++
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 5 +++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/imu/st_lsm9ds0/Kconfig b/drivers/iio/imu/st_lsm9ds0/Kconfig
index d29558edee60..7aef714b6ecb 100644
--- a/drivers/iio/imu/st_lsm9ds0/Kconfig
+++ b/drivers/iio/imu/st_lsm9ds0/Kconfig
@@ -10,7 +10,8 @@ config IIO_ST_LSM9DS0
 
 	help
 	  Say yes here to build support for STMicroelectronics LSM9DS0 IMU
-	  sensor. Supported devices: accelerometer/magnetometer of lsm9ds0.
+	  sensor. Supported devices: accelerometer/magnetometer of lsm9ds0
+	  and lsm303d.
 
 	  To compile this driver as a module, choose M here: the module
 	  will be called st_lsm9ds0.
diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
index a90138d8b06a..64fa77d302e2 100644
--- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
+++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
@@ -22,12 +22,17 @@ static const struct of_device_id st_lsm9ds0_of_match[] = {
 		.compatible = "st,lsm9ds0-imu",
 		.data = LSM9DS0_IMU_DEV_NAME,
 	},
+	{
+		.compatible = "st,lsm303d-imu",
+		.data = LSM303D_IMU_DEV_NAME,
+	},
 	{}
 };
 MODULE_DEVICE_TABLE(of, st_lsm9ds0_of_match);
 
 static const struct i2c_device_id st_lsm9ds0_id_table[] = {
 	{ LSM9DS0_IMU_DEV_NAME },
+	{ LSM303D_IMU_DEV_NAME },
 	{}
 };
 MODULE_DEVICE_TABLE(i2c, st_lsm9ds0_id_table);
diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
index b743bf3546a7..997b5ff792be 100644
--- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
+++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
@@ -22,12 +22,17 @@ static const struct of_device_id st_lsm9ds0_of_match[] = {
 		.compatible = "st,lsm9ds0-imu",
 		.data = LSM9DS0_IMU_DEV_NAME,
 	},
+	{
+		.compatible = "st,lsm303d-imu",
+		.data = LSM303D_IMU_DEV_NAME,
+	},
 	{}
 };
 MODULE_DEVICE_TABLE(of, st_lsm9ds0_of_match);
 
 static const struct spi_device_id st_lsm9ds0_id_table[] = {
 	{ LSM9DS0_IMU_DEV_NAME },
+	{ LSM303D_IMU_DEV_NAME },
 	{}
 };
 MODULE_DEVICE_TABLE(spi, st_lsm9ds0_id_table);
-- 
2.39.2


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

* [PATCH v2 4/6] iio: st_sensors: Add ACPI support for lsm303d to the LSM9DS0 IMU driver
  2023-04-13  2:40 [PATCH v2 0/6] iio: st_sensors: Add lsm303d support Marius Hoch
                   ` (2 preceding siblings ...)
  2023-04-13  2:40 ` [PATCH v2 3/6] iio: st_sensors: Add lsm303d support to the LSM9DS0 IMU driver Marius Hoch
@ 2023-04-13  2:40 ` Marius Hoch
  2023-04-15 16:55   ` Jonathan Cameron
  2023-04-13  2:40 ` [PATCH v2 5/6] iio: Comment that the LSM303D also has the Magnetometer DRDY Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer Marius Hoch
  5 siblings, 1 reply; 13+ messages in thread
From: Marius Hoch @ 2023-04-13  2:40 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel
  Cc: Hans de Goede, Marius Hoch

The lsm303d can be found as ACCL0001 on various Lenovo devices,
including the Lenovo Yoga Tablet 2 1051-F, where I tested this
patch.

Signed-off-by: Marius Hoch <mail@mariushoch.de>
---
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 10 ++++++++++
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
index 64fa77d302e2..79be8d28d965 100644
--- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
+++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
@@ -12,6 +12,7 @@
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
 #include <linux/regmap.h>
+#include <linux/acpi.h>
 
 #include <linux/iio/common/st_sensors_i2c.h>
 
@@ -37,6 +38,14 @@ static const struct i2c_device_id st_lsm9ds0_id_table[] = {
 };
 MODULE_DEVICE_TABLE(i2c, st_lsm9ds0_id_table);
 
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id st_lsm9ds0_acpi_match[] = {
+	{"ACCL0001", (kernel_ulong_t)LSM303D_IMU_DEV_NAME},
+	{ },
+};
+MODULE_DEVICE_TABLE(acpi, st_lsm9ds0_acpi_match);
+#endif
+
 static const struct regmap_config st_lsm9ds0_regmap_config = {
 	.reg_bits	= 8,
 	.val_bits	= 8,
@@ -73,6 +82,7 @@ static struct i2c_driver st_lsm9ds0_driver = {
 	.driver = {
 		.name = "st-lsm9ds0-i2c",
 		.of_match_table = st_lsm9ds0_of_match,
+		.acpi_match_table = ACPI_PTR(st_lsm9ds0_acpi_match),
 	},
 	.probe_new = st_lsm9ds0_i2c_probe,
 	.id_table = st_lsm9ds0_id_table,
diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
index 997b5ff792be..27c5d99ce0e3 100644
--- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
+++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
@@ -12,6 +12,7 @@
 #include <linux/mod_devicetable.h>
 #include <linux/regmap.h>
 #include <linux/spi/spi.h>
+#include <linux/acpi.h>
 
 #include <linux/iio/common/st_sensors_spi.h>
 
@@ -37,6 +38,14 @@ static const struct spi_device_id st_lsm9ds0_id_table[] = {
 };
 MODULE_DEVICE_TABLE(spi, st_lsm9ds0_id_table);
 
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id st_lsm9ds0_acpi_match[] = {
+	{"ACCL0001", (kernel_ulong_t)LSM303D_IMU_DEV_NAME},
+	{ },
+};
+MODULE_DEVICE_TABLE(acpi, st_lsm9ds0_acpi_match);
+#endif
+
 static const struct regmap_config st_lsm9ds0_regmap_config = {
 	.reg_bits	= 8,
 	.val_bits	= 8,
@@ -72,6 +81,7 @@ static struct spi_driver st_lsm9ds0_driver = {
 	.driver = {
 		.name = "st-lsm9ds0-spi",
 		.of_match_table = st_lsm9ds0_of_match,
+		.acpi_match_table = ACPI_PTR(st_lsm9ds0_acpi_match),
 	},
 	.probe = st_lsm9ds0_spi_probe,
 	.id_table = st_lsm9ds0_id_table,
-- 
2.39.2


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

* [PATCH v2 5/6] iio: Comment that the LSM303D also has the Magnetometer DRDY
  2023-04-13  2:40 [PATCH v2 0/6] iio: st_sensors: Add lsm303d support Marius Hoch
                   ` (3 preceding siblings ...)
  2023-04-13  2:40 ` [PATCH v2 4/6] iio: st_sensors: Add ACPI support for lsm303d " Marius Hoch
@ 2023-04-13  2:40 ` Marius Hoch
  2023-04-13  2:40 ` [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer Marius Hoch
  5 siblings, 0 replies; 13+ messages in thread
From: Marius Hoch @ 2023-04-13  2:40 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel
  Cc: Hans de Goede, Marius Hoch

Per its datasheet, the LSM303D also features that
pin.

Signed-off-by: Marius Hoch <mail@mariushoch.de>
---
 include/linux/platform_data/st_sensors_pdata.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/platform_data/st_sensors_pdata.h b/include/linux/platform_data/st_sensors_pdata.h
index 897051e51b78..a657830232ae 100644
--- a/include/linux/platform_data/st_sensors_pdata.h
+++ b/include/linux/platform_data/st_sensors_pdata.h
@@ -15,7 +15,7 @@
  * @drdy_int_pin: Redirect DRDY on pin 1 (1) or pin 2 (2).
  *	Available only for accelerometer, magnetometer and pressure sensors.
  *	Accelerometer DRDY on LSM330 available only on pin 1 (see datasheet).
- *	Magnetometer DRDY is supported only on LSM9DS0.
+ *	Magnetometer DRDY is supported only on LSM9DS0 and LSM303D.
  * @open_drain: set the interrupt line to be open drain if possible.
  * @spi_3wire: enable spi-3wire mode.
  * @pullups: enable/disable i2c controller pullup resistors.
-- 
2.39.2


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

* [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer
  2023-04-13  2:40 [PATCH v2 0/6] iio: st_sensors: Add lsm303d support Marius Hoch
                   ` (4 preceding siblings ...)
  2023-04-13  2:40 ` [PATCH v2 5/6] iio: Comment that the LSM303D also has the Magnetometer DRDY Marius Hoch
@ 2023-04-13  2:40 ` Marius Hoch
  2023-04-13  8:07   ` Krzysztof Kozlowski
  5 siblings, 1 reply; 13+ messages in thread
From: Marius Hoch @ 2023-04-13  2:40 UTC (permalink / raw)
  To: Jonathan Cameron, Lars-Peter Clausen, linux-iio, linux-kernel
  Cc: Hans de Goede, Marius Hoch

Same as the lsm9ds0, except that the lsm303d doesn't
feature a gyroscope.

Signed-off-by: Marius Hoch <mail@mariushoch.de>
---
 Documentation/devicetree/bindings/iio/st,st-sensors.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/iio/st,st-sensors.yaml b/Documentation/devicetree/bindings/iio/st,st-sensors.yaml
index c6201976378f..194aca5542c2 100644
--- a/Documentation/devicetree/bindings/iio/st,st-sensors.yaml
+++ b/Documentation/devicetree/bindings/iio/st,st-sensors.yaml
@@ -85,6 +85,7 @@ properties:
       - description: IMUs
         enum:
           - st,lsm9ds0-imu
+          - st,lsm303d-imu
       - description: Deprecated bindings
         enum:
           - st,lis302dl-spi
-- 
2.39.2


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

* Re: [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer
  2023-04-13  2:40 ` [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer Marius Hoch
@ 2023-04-13  8:07   ` Krzysztof Kozlowski
  2023-04-15 16:51     ` Jonathan Cameron
  0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2023-04-13  8:07 UTC (permalink / raw)
  To: Marius Hoch, Jonathan Cameron, Lars-Peter Clausen, linux-iio,
	linux-kernel
  Cc: Hans de Goede

On 13/04/2023 04:40, Marius Hoch wrote:
> Same as the lsm9ds0, except that the lsm303d doesn't
> feature a gyroscope.
> 
> Signed-off-by: Marius Hoch <mail@mariushoch.de>

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.

Best regards,
Krzysztof


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

* Re: [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer
  2023-04-13  8:07   ` Krzysztof Kozlowski
@ 2023-04-15 16:51     ` Jonathan Cameron
  2023-04-15 23:19       ` Marius Hoch
  2023-04-16  7:14       ` Krzysztof Kozlowski
  0 siblings, 2 replies; 13+ messages in thread
From: Jonathan Cameron @ 2023-04-15 16:51 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Marius Hoch, Lars-Peter Clausen, linux-iio, linux-kernel,
	Hans de Goede

On Thu, 13 Apr 2023 10:07:04 +0200
Krzysztof Kozlowski <krzk@kernel.org> wrote:

> On 13/04/2023 04:40, Marius Hoch wrote:
> > Same as the lsm9ds0, except that the lsm303d doesn't
> > feature a gyroscope.
> > 
> > Signed-off-by: Marius Hoch <mail@mariushoch.de>  
> 
> 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.

Just to avoid any confusion.  Point here is that the dt-binding
maintainers and list should be cc'd on series that touch bindings.

Jonathan

> 
> Best regards,
> Krzysztof
> 


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

* Re: [PATCH v2 4/6] iio: st_sensors: Add ACPI support for lsm303d to the LSM9DS0 IMU driver
  2023-04-13  2:40 ` [PATCH v2 4/6] iio: st_sensors: Add ACPI support for lsm303d " Marius Hoch
@ 2023-04-15 16:55   ` Jonathan Cameron
  2023-04-15 23:17     ` Marius Hoch
  0 siblings, 1 reply; 13+ messages in thread
From: Jonathan Cameron @ 2023-04-15 16:55 UTC (permalink / raw)
  To: Marius Hoch; +Cc: Lars-Peter Clausen, linux-iio, linux-kernel, Hans de Goede

On Thu, 13 Apr 2023 04:40:11 +0200
Marius Hoch <mail@mariushoch.de> wrote:

> The lsm303d can be found as ACCL0001 on various Lenovo devices,
> including the Lenovo Yoga Tablet 2 1051-F, where I tested this
> patch.
> 
> Signed-off-by: Marius Hoch <mail@mariushoch.de>
> ---
>  drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 10 ++++++++++
>  drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 10 ++++++++++
>  2 files changed, 20 insertions(+)
> 
> diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
> index 64fa77d302e2..79be8d28d965 100644
> --- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
> +++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
> @@ -12,6 +12,7 @@
>  #include <linux/module.h>
>  #include <linux/mod_devicetable.h>
>  #include <linux/regmap.h>
> +#include <linux/acpi.h>
>  
>  #include <linux/iio/common/st_sensors_i2c.h>
>  
> @@ -37,6 +38,14 @@ static const struct i2c_device_id st_lsm9ds0_id_table[] = {
>  };
>  MODULE_DEVICE_TABLE(i2c, st_lsm9ds0_id_table);
>  
> +#ifdef CONFIG_ACPI
> +static const struct acpi_device_id st_lsm9ds0_acpi_match[] = {
> +	{"ACCL0001", (kernel_ulong_t)LSM303D_IMU_DEV_NAME},
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(acpi, st_lsm9ds0_acpi_match);
> +#endif

The table is tiny so I'd prefer dropping the complexity of ifdefs
and getting rid of the ACPI_PTR() below. Just assign the pointer
unconditionally.

Rest of the series looks good to me

Thanks,

Jonathan

> +
>  static const struct regmap_config st_lsm9ds0_regmap_config = {
>  	.reg_bits	= 8,
>  	.val_bits	= 8,
> @@ -73,6 +82,7 @@ static struct i2c_driver st_lsm9ds0_driver = {
>  	.driver = {
>  		.name = "st-lsm9ds0-i2c",
>  		.of_match_table = st_lsm9ds0_of_match,
> +		.acpi_match_table = ACPI_PTR(st_lsm9ds0_acpi_match),
>  	},
>  	.probe_new = st_lsm9ds0_i2c_probe,
>  	.id_table = st_lsm9ds0_id_table,
> diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
> index 997b5ff792be..27c5d99ce0e3 100644
> --- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
> +++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
> @@ -12,6 +12,7 @@
>  #include <linux/mod_devicetable.h>
>  #include <linux/regmap.h>
>  #include <linux/spi/spi.h>
> +#include <linux/acpi.h>
>  
>  #include <linux/iio/common/st_sensors_spi.h>
>  
> @@ -37,6 +38,14 @@ static const struct spi_device_id st_lsm9ds0_id_table[] = {
>  };
>  MODULE_DEVICE_TABLE(spi, st_lsm9ds0_id_table);
>  
> +#ifdef CONFIG_ACPI
> +static const struct acpi_device_id st_lsm9ds0_acpi_match[] = {
> +	{"ACCL0001", (kernel_ulong_t)LSM303D_IMU_DEV_NAME},
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(acpi, st_lsm9ds0_acpi_match);
> +#endif
> +
>  static const struct regmap_config st_lsm9ds0_regmap_config = {
>  	.reg_bits	= 8,
>  	.val_bits	= 8,
> @@ -72,6 +81,7 @@ static struct spi_driver st_lsm9ds0_driver = {
>  	.driver = {
>  		.name = "st-lsm9ds0-spi",
>  		.of_match_table = st_lsm9ds0_of_match,
> +		.acpi_match_table = ACPI_PTR(st_lsm9ds0_acpi_match),
>  	},
>  	.probe = st_lsm9ds0_spi_probe,
>  	.id_table = st_lsm9ds0_id_table,


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

* Re: [PATCH v2 4/6] iio: st_sensors: Add ACPI support for lsm303d to the LSM9DS0 IMU driver
  2023-04-15 16:55   ` Jonathan Cameron
@ 2023-04-15 23:17     ` Marius Hoch
  0 siblings, 0 replies; 13+ messages in thread
From: Marius Hoch @ 2023-04-15 23:17 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Lars-Peter Clausen, linux-iio, linux-kernel, Hans de Goede

On 15/04/2023 18:55, Jonathan Cameron wrote:
> On Thu, 13 Apr 2023 04:40:11 +0200
> Marius Hoch <mail@mariushoch.de> wrote:
>
>> The lsm303d can be found as ACCL0001 on various Lenovo devices,
>> including the Lenovo Yoga Tablet 2 1051-F, where I tested this
>> patch.
>>
>> Signed-off-by: Marius Hoch <mail@mariushoch.de>
>> ---
>>   drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 10 ++++++++++
>>   drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 10 ++++++++++
>>   2 files changed, 20 insertions(+)
>>
>> diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
>> index 64fa77d302e2..79be8d28d965 100644
>> --- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
>> +++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c
>> @@ -12,6 +12,7 @@
>>   #include <linux/module.h>
>>   #include <linux/mod_devicetable.h>
>>   #include <linux/regmap.h>
>> +#include <linux/acpi.h>
>>   
>>   #include <linux/iio/common/st_sensors_i2c.h>
>>   
>> @@ -37,6 +38,14 @@ static const struct i2c_device_id st_lsm9ds0_id_table[] = {
>>   };
>>   MODULE_DEVICE_TABLE(i2c, st_lsm9ds0_id_table);
>>   
>> +#ifdef CONFIG_ACPI
>> +static const struct acpi_device_id st_lsm9ds0_acpi_match[] = {
>> +	{"ACCL0001", (kernel_ulong_t)LSM303D_IMU_DEV_NAME},
>> +	{ },
>> +};
>> +MODULE_DEVICE_TABLE(acpi, st_lsm9ds0_acpi_match);
>> +#endif
> The table is tiny so I'd prefer dropping the complexity of ifdefs
> and getting rid of the ACPI_PTR() below. Just assign the pointer
> unconditionally.
>
> Rest of the series looks good to me
>
> Thanks,
>
> Jonathan
Thanks for your review, applied in v3.
>> +
>>   static const struct regmap_config st_lsm9ds0_regmap_config = {
>>   	.reg_bits	= 8,
>>   	.val_bits	= 8,
>> @@ -73,6 +82,7 @@ static struct i2c_driver st_lsm9ds0_driver = {
>>   	.driver = {
>>   		.name = "st-lsm9ds0-i2c",
>>   		.of_match_table = st_lsm9ds0_of_match,
>> +		.acpi_match_table = ACPI_PTR(st_lsm9ds0_acpi_match),
>>   	},
>>   	.probe_new = st_lsm9ds0_i2c_probe,
>>   	.id_table = st_lsm9ds0_id_table,
>> diff --git a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
>> index 997b5ff792be..27c5d99ce0e3 100644
>> --- a/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
>> +++ b/drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c
>> @@ -12,6 +12,7 @@
>>   #include <linux/mod_devicetable.h>
>>   #include <linux/regmap.h>
>>   #include <linux/spi/spi.h>
>> +#include <linux/acpi.h>
>>   
>>   #include <linux/iio/common/st_sensors_spi.h>
>>   
>> @@ -37,6 +38,14 @@ static const struct spi_device_id st_lsm9ds0_id_table[] = {
>>   };
>>   MODULE_DEVICE_TABLE(spi, st_lsm9ds0_id_table);
>>   
>> +#ifdef CONFIG_ACPI
>> +static const struct acpi_device_id st_lsm9ds0_acpi_match[] = {
>> +	{"ACCL0001", (kernel_ulong_t)LSM303D_IMU_DEV_NAME},
>> +	{ },
>> +};
>> +MODULE_DEVICE_TABLE(acpi, st_lsm9ds0_acpi_match);
>> +#endif
>> +
>>   static const struct regmap_config st_lsm9ds0_regmap_config = {
>>   	.reg_bits	= 8,
>>   	.val_bits	= 8,
>> @@ -72,6 +81,7 @@ static struct spi_driver st_lsm9ds0_driver = {
>>   	.driver = {
>>   		.name = "st-lsm9ds0-spi",
>>   		.of_match_table = st_lsm9ds0_of_match,
>> +		.acpi_match_table = ACPI_PTR(st_lsm9ds0_acpi_match),
>>   	},
>>   	.probe = st_lsm9ds0_spi_probe,
>>   	.id_table = st_lsm9ds0_id_table,


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

* Re: [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer
  2023-04-15 16:51     ` Jonathan Cameron
@ 2023-04-15 23:19       ` Marius Hoch
  2023-04-16  7:14       ` Krzysztof Kozlowski
  1 sibling, 0 replies; 13+ messages in thread
From: Marius Hoch @ 2023-04-15 23:19 UTC (permalink / raw)
  To: Jonathan Cameron, Krzysztof Kozlowski
  Cc: Lars-Peter Clausen, linux-iio, linux-kernel, Hans de Goede

On 15/04/2023 18:51, Jonathan Cameron wrote:
> On Thu, 13 Apr 2023 10:07:04 +0200
> Krzysztof Kozlowski <krzk@kernel.org> wrote:
>
>> On 13/04/2023 04:40, Marius Hoch wrote:
>>> Same as the lsm9ds0, except that the lsm303d doesn't
>>> feature a gyroscope.
>>>
>>> Signed-off-by: Marius Hoch <mail@mariushoch.de>
>> 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.
> Just to avoid any confusion.  Point here is that the dt-binding
> maintainers and list should be cc'd on series that touch bindings.
>
> Jonathan
Thank you for your replies. Not sure what went wrong here initially, I 
probably only ran get_maintainer.pl on some of the patches.

For v3 I used a complete and up to date list of recipients.

Cheers,
Marius
>
>> Best regards,
>> Krzysztof
>>


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

* Re: [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer
  2023-04-15 16:51     ` Jonathan Cameron
  2023-04-15 23:19       ` Marius Hoch
@ 2023-04-16  7:14       ` Krzysztof Kozlowski
  1 sibling, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2023-04-16  7:14 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Marius Hoch, Lars-Peter Clausen, linux-iio, linux-kernel,
	Hans de Goede

On 15/04/2023 18:51, Jonathan Cameron wrote:
> On Thu, 13 Apr 2023 10:07:04 +0200
> Krzysztof Kozlowski <krzk@kernel.org> wrote:
> 
>> On 13/04/2023 04:40, Marius Hoch wrote:
>>> Same as the lsm9ds0, except that the lsm303d doesn't
>>> feature a gyroscope.
>>>
>>> Signed-off-by: Marius Hoch <mail@mariushoch.de>  
>>
>> 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.
> 
> Just to avoid any confusion.  Point here is that the dt-binding
> maintainers and list should be cc'd on series that touch bindings.
> 

Maybe not only there, maybe more people were missed.

Best regards,
Krzysztof


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

end of thread, other threads:[~2023-04-16  7:14 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-13  2:40 [PATCH v2 0/6] iio: st_sensors: Add lsm303d support Marius Hoch
2023-04-13  2:40 ` [PATCH v2 1/6] iio: accel: st_accel: Add LSM303D Marius Hoch
2023-04-13  2:40 ` [PATCH v2 2/6] iio: magnetometer: " Marius Hoch
2023-04-13  2:40 ` [PATCH v2 3/6] iio: st_sensors: Add lsm303d support to the LSM9DS0 IMU driver Marius Hoch
2023-04-13  2:40 ` [PATCH v2 4/6] iio: st_sensors: Add ACPI support for lsm303d " Marius Hoch
2023-04-15 16:55   ` Jonathan Cameron
2023-04-15 23:17     ` Marius Hoch
2023-04-13  2:40 ` [PATCH v2 5/6] iio: Comment that the LSM303D also has the Magnetometer DRDY Marius Hoch
2023-04-13  2:40 ` [PATCH v2 6/6] dt-bindings: iio: st-sensors: Add LSM303D accelerometer+magnetometer Marius Hoch
2023-04-13  8:07   ` Krzysztof Kozlowski
2023-04-15 16:51     ` Jonathan Cameron
2023-04-15 23:19       ` Marius Hoch
2023-04-16  7:14       ` Krzysztof Kozlowski

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