public inbox for linux-iio@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Add support for the ICM 20600 IMU
@ 2023-04-21  7:16 Hermes Zhang
  2023-04-21  7:16 ` [PATCH 1/2] iio: imu: mpu6050: " Hermes Zhang
  2023-04-21  7:16 ` [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050 Hermes Zhang
  0 siblings, 2 replies; 7+ messages in thread
From: Hermes Zhang @ 2023-04-21  7:16 UTC (permalink / raw)
  To: jic23, krzysztof.kozlowski+dt, robh+dt
  Cc: jmaneyrol, linux-iio, linux-kernel, kernel, Hermes Zhang

The Invensense ICM-20600 is a 6-axis MotionTracking device that combines a
3-axis gyroscope and an 3-axis accelerometer. It is very similar to the
ICM20602 imu which is already supported by the mpu6050 driver. The main
difference is that the ICM-20600 has a different WHOAMI value.

Hermes Zhang (2):
  iio: imu: mpu6050: Add support for the ICM 20600 IMU
  dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050

 .../bindings/iio/imu/invensense,mpu6050.yaml           |  1 +
 drivers/iio/imu/inv_mpu6050/Kconfig                    |  4 ++--
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c             | 10 ++++++++++
 drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c              |  6 ++++++
 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h              |  2 ++
 drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c              |  5 +++++
 6 files changed, 26 insertions(+), 2 deletions(-)

-- 
2.30.2


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

* [PATCH 1/2] iio: imu: mpu6050: Add support for the ICM 20600 IMU
  2023-04-21  7:16 [PATCH 0/2] Add support for the ICM 20600 IMU Hermes Zhang
@ 2023-04-21  7:16 ` Hermes Zhang
  2023-04-22 17:21   ` Jonathan Cameron
  2023-04-21  7:16 ` [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050 Hermes Zhang
  1 sibling, 1 reply; 7+ messages in thread
From: Hermes Zhang @ 2023-04-21  7:16 UTC (permalink / raw)
  To: jic23, krzysztof.kozlowski+dt, robh+dt
  Cc: jmaneyrol, linux-iio, linux-kernel, kernel, Hermes Zhang,
	Lars-Peter Clausen

The Invensense ICM-20600 is a 6-axis MotionTracking device that combines a
3-axis gyroscope and an 3-axis accelerometer. It is very similar to the
ICM20602 imu which is already supported by the mpu6050 driver. The main
difference is that the ICM-20600 has a different WHOAMI value.

Signed-off-by: Hermes Zhang <chenhuiz@axis.com>
---
 drivers/iio/imu/inv_mpu6050/Kconfig        |  4 ++--
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 10 ++++++++++
 drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c  |  6 ++++++
 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h  |  2 ++
 drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c  |  5 +++++
 5 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/imu/inv_mpu6050/Kconfig b/drivers/iio/imu/inv_mpu6050/Kconfig
index 3636b1bc90f1..64dd73dcc4ba 100644
--- a/drivers/iio/imu/inv_mpu6050/Kconfig
+++ b/drivers/iio/imu/inv_mpu6050/Kconfig
@@ -16,7 +16,7 @@ config INV_MPU6050_I2C
 	select REGMAP_I2C
 	help
 	  This driver supports the Invensense MPU6050/9150,
-	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20602/ICM20690
+	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20600/20602/20690
 	  and IAM20680 motion tracking devices over I2C.
 	  This driver can be built as a module. The module will be called
 	  inv-mpu6050-i2c.
@@ -28,7 +28,7 @@ config INV_MPU6050_SPI
 	select REGMAP_SPI
 	help
 	  This driver supports the Invensense MPU6000,
-	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20602/ICM20690
+	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20600/20602/20690
 	  and IAM20680 motion tracking devices over SPI.
 	  This driver can be built as a module. The module will be called
 	  inv-mpu6050-spi.
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index 8a129120b73d..592a6e60b413 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -244,6 +244,15 @@ static const struct inv_mpu6050_hw hw_info[] = {
 		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
 		.startup_time = {INV_MPU6500_GYRO_STARTUP_TIME, INV_MPU6500_ACCEL_STARTUP_TIME},
 	},
+	{
+		.whoami = INV_ICM20600_WHOAMI_VALUE,
+		.name = "ICM20600",
+		.reg = &reg_set_icm20602,
+		.config = &chip_config_6500,
+		.fifo_size = 1008,
+		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
+		.startup_time = {INV_ICM20602_GYRO_STARTUP_TIME, INV_ICM20602_ACCEL_STARTUP_TIME},
+	},
 	{
 		.whoami = INV_ICM20602_WHOAMI_VALUE,
 		.name = "ICM20602",
@@ -1597,6 +1606,7 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
 		indio_dev->num_channels = ARRAY_SIZE(inv_mpu9250_channels);
 		indio_dev->available_scan_masks = inv_mpu9x50_scan_masks;
 		break;
+	case INV_ICM20600:
 	case INV_ICM20602:
 		indio_dev->channels = inv_mpu_channels;
 		indio_dev->num_channels = ARRAY_SIZE(inv_mpu_channels);
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
index 2f2da4cb7321..0e39877678df 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
@@ -32,6 +32,7 @@ static bool inv_mpu_i2c_aux_bus(struct device *dev)
 	case INV_ICM20608D:
 	case INV_ICM20609:
 	case INV_ICM20689:
+	case INV_ICM20600:
 	case INV_ICM20602:
 	case INV_IAM20680:
 		/* no i2c auxiliary bus on the chip */
@@ -183,6 +184,7 @@ static const struct i2c_device_id inv_mpu_id[] = {
 	{"icm20608d", INV_ICM20608D},
 	{"icm20609", INV_ICM20609},
 	{"icm20689", INV_ICM20689},
+	{"icm20600", INV_ICM20600},
 	{"icm20602", INV_ICM20602},
 	{"icm20690", INV_ICM20690},
 	{"iam20680", INV_IAM20680},
@@ -236,6 +238,10 @@ static const struct of_device_id inv_of_match[] = {
 		.compatible = "invensense,icm20689",
 		.data = (void *)INV_ICM20689
 	},
+	{
+		.compatible = "invensense,icm20600",
+		.data = (void *)INV_ICM20600
+	},
 	{
 		.compatible = "invensense,icm20602",
 		.data = (void *)INV_ICM20602
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
index 94b54c501ec0..b4ab2c397d0f 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
@@ -79,6 +79,7 @@ enum inv_devices {
 	INV_ICM20608D,
 	INV_ICM20609,
 	INV_ICM20689,
+	INV_ICM20600,
 	INV_ICM20602,
 	INV_ICM20690,
 	INV_IAM20680,
@@ -398,6 +399,7 @@ struct inv_mpu6050_state {
 #define INV_ICM20608D_WHOAMI_VALUE		0xAE
 #define INV_ICM20609_WHOAMI_VALUE		0xA6
 #define INV_ICM20689_WHOAMI_VALUE		0x98
+#define INV_ICM20600_WHOAMI_VALUE		0x11
 #define INV_ICM20602_WHOAMI_VALUE		0x12
 #define INV_ICM20690_WHOAMI_VALUE		0x20
 #define INV_IAM20680_WHOAMI_VALUE		0xA9
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
index 89f46c2f213d..05451ca1580b 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
@@ -76,6 +76,7 @@ static const struct spi_device_id inv_mpu_id[] = {
 	{"icm20608d", INV_ICM20608D},
 	{"icm20609", INV_ICM20609},
 	{"icm20689", INV_ICM20689},
+	{"icm20600", INV_ICM20600},
 	{"icm20602", INV_ICM20602},
 	{"icm20690", INV_ICM20690},
 	{"iam20680", INV_IAM20680},
@@ -125,6 +126,10 @@ static const struct of_device_id inv_of_match[] = {
 		.compatible = "invensense,icm20689",
 		.data = (void *)INV_ICM20689
 	},
+	{
+		.compatible = "invensense,icm20600",
+		.data = (void *)INV_ICM20600
+	},
 	{
 		.compatible = "invensense,icm20602",
 		.data = (void *)INV_ICM20602
-- 
2.30.2


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

* [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050
  2023-04-21  7:16 [PATCH 0/2] Add support for the ICM 20600 IMU Hermes Zhang
  2023-04-21  7:16 ` [PATCH 1/2] iio: imu: mpu6050: " Hermes Zhang
@ 2023-04-21  7:16 ` Hermes Zhang
  2023-04-21  8:23   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 7+ messages in thread
From: Hermes Zhang @ 2023-04-21  7:16 UTC (permalink / raw)
  To: jic23, krzysztof.kozlowski+dt, robh+dt, Jean-Baptiste Maneyrol
  Cc: linux-iio, linux-kernel, kernel, Hermes Zhang, Lars-Peter Clausen,
	devicetree

Adding the invensense ICM-20600 to the compatible list of the mpu6050
driver

Signed-off-by: Hermes Zhang <chenhuiz@axis.com>
---
 .../devicetree/bindings/iio/imu/invensense,mpu6050.yaml          | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
index ec64d7877fe5..67711bc0ee6c 100644
--- a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
+++ b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
@@ -20,6 +20,7 @@ properties:
           - invensense,icm20608
           - invensense,icm20609
           - invensense,icm20689
+          - invensense,icm20600
           - invensense,icm20602
           - invensense,icm20690
           - invensense,mpu6000
-- 
2.30.2


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

* Re: [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050
  2023-04-21  7:16 ` [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050 Hermes Zhang
@ 2023-04-21  8:23   ` Krzysztof Kozlowski
  2023-04-22  6:14     ` Hermes Zhang
  0 siblings, 1 reply; 7+ messages in thread
From: Krzysztof Kozlowski @ 2023-04-21  8:23 UTC (permalink / raw)
  To: Hermes Zhang, jic23, krzysztof.kozlowski+dt, robh+dt,
	Jean-Baptiste Maneyrol
  Cc: linux-iio, linux-kernel, kernel, Lars-Peter Clausen, devicetree

On 21/04/2023 09:16, Hermes Zhang wrote:
> Adding the invensense ICM-20600 to the compatible list of the mpu6050
> driver
> 
> Signed-off-by: Hermes Zhang <chenhuiz@axis.com>
> ---
>  .../devicetree/bindings/iio/imu/invensense,mpu6050.yaml          | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
> index ec64d7877fe5..67711bc0ee6c 100644
> --- a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
> +++ b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
> @@ -20,6 +20,7 @@ properties:
>            - invensense,icm20608
>            - invensense,icm20609
>            - invensense,icm20689
> +          - invensense,icm20600
>            - invensense,icm20602

Didn't we start switching to compatible groups of devices? This looks
compatible with 20602.

Best regards,
Krzysztof


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

* Re: [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050
  2023-04-21  8:23   ` Krzysztof Kozlowski
@ 2023-04-22  6:14     ` Hermes Zhang
  2023-04-22 17:19       ` Jonathan Cameron
  0 siblings, 1 reply; 7+ messages in thread
From: Hermes Zhang @ 2023-04-22  6:14 UTC (permalink / raw)
  To: Krzysztof Kozlowski, jic23, krzysztof.kozlowski+dt, robh+dt,
	Jean-Baptiste Maneyrol
  Cc: linux-iio, linux-kernel, kernel, Lars-Peter Clausen, devicetree


在 2023/4/21 16:23, Krzysztof Kozlowski 写道:
> Didn't we start switching to compatible groups of devices? This looks
> compatible with 20602.

Hi Krzysztof,

Sorry, I may not aware of this. Could you give some more info about the 
compatible groups? Yes, the icm20602 is quite similar as icm20600.

Thanks & Best Regards,

Hermes


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

* Re: [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050
  2023-04-22  6:14     ` Hermes Zhang
@ 2023-04-22 17:19       ` Jonathan Cameron
  0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2023-04-22 17:19 UTC (permalink / raw)
  To: Hermes Zhang
  Cc: Krzysztof Kozlowski, krzysztof.kozlowski+dt, robh+dt,
	Jean-Baptiste Maneyrol, linux-iio, linux-kernel, kernel,
	Lars-Peter Clausen, devicetree

On Sat, 22 Apr 2023 14:14:49 +0800
Hermes Zhang <chenhuiz@axis.com> wrote:

> 在 2023/4/21 16:23, Krzysztof Kozlowski 写道:
> > Didn't we start switching to compatible groups of devices? This looks
> > compatible with 20602.  
> 
> Hi Krzysztof,
> 
> Sorry, I may not aware of this. Could you give some more info about the 
> compatible groups? Yes, the icm20602 is quite similar as icm20600.

If it's compatible enough that a device tree that lists
compatible = "invensense,icm20600", "invensense,icm20602"
would work correctly with an old kernel by first checking for invensense,icm20600
then falling back to invense,icm20602 then it should be listed with that fallback.

See the existing block that covers the fallback form icm20608d to icm20608


       - items:
          - const: invensense,icm20608d
          - const: invensense,icm20608

Note it is fine if the driver 'warns' that it's found a WHOAMI value it doesn't
know as long as it then goes on and works correctly.  Thus there can't be
any incompatibilities between the two parts when we consider the functionality the
driver implements today.  If we add features in future that aren't compatible, that's
fine because we will be matching against the more specific compatible you are
adding here.

Jonathan



> 
> Thanks & Best Regards,
> 
> Hermes
> 


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

* Re: [PATCH 1/2] iio: imu: mpu6050: Add support for the ICM 20600 IMU
  2023-04-21  7:16 ` [PATCH 1/2] iio: imu: mpu6050: " Hermes Zhang
@ 2023-04-22 17:21   ` Jonathan Cameron
  0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2023-04-22 17:21 UTC (permalink / raw)
  To: Hermes Zhang
  Cc: krzysztof.kozlowski+dt, robh+dt, jmaneyrol, linux-iio,
	linux-kernel, kernel, Lars-Peter Clausen

On Fri, 21 Apr 2023 15:16:29 +0800
Hermes Zhang <chenhuiz@axis.com> wrote:

> The Invensense ICM-20600 is a 6-axis MotionTracking device that combines a
> 3-axis gyroscope and an 3-axis accelerometer. It is very similar to the
> ICM20602 imu which is already supported by the mpu6050 driver. The main
> difference is that the ICM-20600 has a different WHOAMI value.
> 
> Signed-off-by: Hermes Zhang <chenhuiz@axis.com>
FWIW the driver changes look good to me and the binding discussion
will have no impact on this patch.

Thanks,

Jonathan


> ---
>  drivers/iio/imu/inv_mpu6050/Kconfig        |  4 ++--
>  drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 10 ++++++++++
>  drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c  |  6 ++++++
>  drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h  |  2 ++
>  drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c  |  5 +++++
>  5 files changed, 25 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/imu/inv_mpu6050/Kconfig b/drivers/iio/imu/inv_mpu6050/Kconfig
> index 3636b1bc90f1..64dd73dcc4ba 100644
> --- a/drivers/iio/imu/inv_mpu6050/Kconfig
> +++ b/drivers/iio/imu/inv_mpu6050/Kconfig
> @@ -16,7 +16,7 @@ config INV_MPU6050_I2C
>  	select REGMAP_I2C
>  	help
>  	  This driver supports the Invensense MPU6050/9150,
> -	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20602/ICM20690
> +	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20600/20602/20690
>  	  and IAM20680 motion tracking devices over I2C.
>  	  This driver can be built as a module. The module will be called
>  	  inv-mpu6050-i2c.
> @@ -28,7 +28,7 @@ config INV_MPU6050_SPI
>  	select REGMAP_SPI
>  	help
>  	  This driver supports the Invensense MPU6000,
> -	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20602/ICM20690
> +	  MPU6500/6515/6880/9250/9255, ICM20608(D)/20609/20689, ICM20600/20602/20690
>  	  and IAM20680 motion tracking devices over SPI.
>  	  This driver can be built as a module. The module will be called
>  	  inv-mpu6050-spi.
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> index 8a129120b73d..592a6e60b413 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> @@ -244,6 +244,15 @@ static const struct inv_mpu6050_hw hw_info[] = {
>  		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
>  		.startup_time = {INV_MPU6500_GYRO_STARTUP_TIME, INV_MPU6500_ACCEL_STARTUP_TIME},
>  	},
> +	{
> +		.whoami = INV_ICM20600_WHOAMI_VALUE,
> +		.name = "ICM20600",
> +		.reg = &reg_set_icm20602,
> +		.config = &chip_config_6500,
> +		.fifo_size = 1008,
> +		.temp = {INV_ICM20608_TEMP_OFFSET, INV_ICM20608_TEMP_SCALE},
> +		.startup_time = {INV_ICM20602_GYRO_STARTUP_TIME, INV_ICM20602_ACCEL_STARTUP_TIME},
> +	},
>  	{
>  		.whoami = INV_ICM20602_WHOAMI_VALUE,
>  		.name = "ICM20602",
> @@ -1597,6 +1606,7 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
>  		indio_dev->num_channels = ARRAY_SIZE(inv_mpu9250_channels);
>  		indio_dev->available_scan_masks = inv_mpu9x50_scan_masks;
>  		break;
> +	case INV_ICM20600:
>  	case INV_ICM20602:
>  		indio_dev->channels = inv_mpu_channels;
>  		indio_dev->num_channels = ARRAY_SIZE(inv_mpu_channels);
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
> index 2f2da4cb7321..0e39877678df 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
> @@ -32,6 +32,7 @@ static bool inv_mpu_i2c_aux_bus(struct device *dev)
>  	case INV_ICM20608D:
>  	case INV_ICM20609:
>  	case INV_ICM20689:
> +	case INV_ICM20600:
>  	case INV_ICM20602:
>  	case INV_IAM20680:
>  		/* no i2c auxiliary bus on the chip */
> @@ -183,6 +184,7 @@ static const struct i2c_device_id inv_mpu_id[] = {
>  	{"icm20608d", INV_ICM20608D},
>  	{"icm20609", INV_ICM20609},
>  	{"icm20689", INV_ICM20689},
> +	{"icm20600", INV_ICM20600},
>  	{"icm20602", INV_ICM20602},
>  	{"icm20690", INV_ICM20690},
>  	{"iam20680", INV_IAM20680},
> @@ -236,6 +238,10 @@ static const struct of_device_id inv_of_match[] = {
>  		.compatible = "invensense,icm20689",
>  		.data = (void *)INV_ICM20689
>  	},
> +	{
> +		.compatible = "invensense,icm20600",
> +		.data = (void *)INV_ICM20600
> +	},
>  	{
>  		.compatible = "invensense,icm20602",
>  		.data = (void *)INV_ICM20602
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> index 94b54c501ec0..b4ab2c397d0f 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> @@ -79,6 +79,7 @@ enum inv_devices {
>  	INV_ICM20608D,
>  	INV_ICM20609,
>  	INV_ICM20689,
> +	INV_ICM20600,
>  	INV_ICM20602,
>  	INV_ICM20690,
>  	INV_IAM20680,
> @@ -398,6 +399,7 @@ struct inv_mpu6050_state {
>  #define INV_ICM20608D_WHOAMI_VALUE		0xAE
>  #define INV_ICM20609_WHOAMI_VALUE		0xA6
>  #define INV_ICM20689_WHOAMI_VALUE		0x98
> +#define INV_ICM20600_WHOAMI_VALUE		0x11
>  #define INV_ICM20602_WHOAMI_VALUE		0x12
>  #define INV_ICM20690_WHOAMI_VALUE		0x20
>  #define INV_IAM20680_WHOAMI_VALUE		0xA9
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
> index 89f46c2f213d..05451ca1580b 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
> @@ -76,6 +76,7 @@ static const struct spi_device_id inv_mpu_id[] = {
>  	{"icm20608d", INV_ICM20608D},
>  	{"icm20609", INV_ICM20609},
>  	{"icm20689", INV_ICM20689},
> +	{"icm20600", INV_ICM20600},
>  	{"icm20602", INV_ICM20602},
>  	{"icm20690", INV_ICM20690},
>  	{"iam20680", INV_IAM20680},
> @@ -125,6 +126,10 @@ static const struct of_device_id inv_of_match[] = {
>  		.compatible = "invensense,icm20689",
>  		.data = (void *)INV_ICM20689
>  	},
> +	{
> +		.compatible = "invensense,icm20600",
> +		.data = (void *)INV_ICM20600
> +	},
>  	{
>  		.compatible = "invensense,icm20602",
>  		.data = (void *)INV_ICM20602


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

end of thread, other threads:[~2023-04-22 17:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-21  7:16 [PATCH 0/2] Add support for the ICM 20600 IMU Hermes Zhang
2023-04-21  7:16 ` [PATCH 1/2] iio: imu: mpu6050: " Hermes Zhang
2023-04-22 17:21   ` Jonathan Cameron
2023-04-21  7:16 ` [PATCH 2/2] dt-bindings: iio: imu: mpu6050: Add icm20600 bindings to mpu6050 Hermes Zhang
2023-04-21  8:23   ` Krzysztof Kozlowski
2023-04-22  6:14     ` Hermes Zhang
2023-04-22 17:19       ` Jonathan Cameron

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