Re: [PATCH] iio: imu: Add mpu9255 support to mpu6050 driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

mpu9255 is completely similar to mpu9250. The only thing that is changing is the associated firmware running inside it.

Since we are not loading and using firmware in this driver, the chips are virtually the same.

JB

On 08/04/2018 18:42, Jonathan Cameron wrote:
On Mon, 2 Apr 2018 18:42:00 -0400
Douglas Fischer <fischerdouglasc@xxxxxxxxx> wrote:

Added support for the mpu9255 IMU to the mpu6050 driver. The
register map is the same as the other chips; the only driver
difference is the compatible string and the WHOAMI register
value.

Signed-off-by: Douglas Fischer <fischerdouglasc@xxxxxxxxx>
Looks good to me.  I'd like to give some time for Jean-Baptiste/others
to confirm they are happy with this as well though.

Give me a bump if I seem to have lost it in a couple of
weeks time.

Thanks.  It's interesting to note that all the manufacturer's
interfaces finally seem to be stabilizing across generations.
The days of large changes every version seem to finally
be behind us.

Jonathan

---

diff -uprN linux-4.16.orig/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt linux-4.16/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
--- linux-4.16.orig/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt	2018-04-01 17:20:27.000000000 -0400
+++ linux-4.16/Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt	2018-04-02 18:31:38.342464417 -0400
@@ -8,6 +8,7 @@ Required properties:
   		"invensense,mpu6500"
  		"invensense,mpu9150"
  		"invensense,mpu9250"
+		"invensense,mpu9255"
  		"invensense,icm20608"
   - reg : the I2C address of the sensor
   - interrupt-parent : should be the phandle for the interrupt controller
diff -uprN linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
--- linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c	2018-04-01 17:20:27.000000000 -0400
+++ linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c	2018-04-02 18:31:38.345464417 -0400
@@ -121,6 +121,12 @@ static const struct inv_mpu6050_hw hw_in
  		.config = &chip_config_6050,
  	},
  	{
+		.whoami = INV_MPU9255_WHOAMI_VALUE,
+		.name = "MPU9255",
+		.reg = &reg_set_6500,
+		.config = &chip_config_6050,
+	},
+	{
  		.whoami = INV_ICM20608_WHOAMI_VALUE,
  		.name = "ICM20608",
  		.reg = &reg_set_6500,
diff -uprN linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
--- linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c	2018-04-01 17:20:27.000000000 -0400
+++ linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c	2018-04-02 18:31:38.348464417 -0400
@@ -179,6 +179,7 @@ static const struct i2c_device_id inv_mp
  	{"mpu6500", INV_MPU6500},
  	{"mpu9150", INV_MPU9150},
  	{"mpu9250", INV_MPU9250},
+	{"mpu9255", INV_MPU9255},
  	{"icm20608", INV_ICM20608},
  	{}
  };
@@ -203,6 +204,10 @@ static const struct of_device_id inv_of_
  		.data = (void *)INV_MPU9250
  	},
  	{
+		.compatible = "invensense,mpu9255",
+		.data = (void *)INV_MPU9255
+	},
+	{
  		.compatible = "invensense,icm20608",
  		.data = (void *)INV_ICM20608
  	},
diff -uprN linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
--- linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h	2018-04-01 17:20:27.000000000 -0400
+++ linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h	2018-04-02 18:31:38.351464416 -0400
@@ -74,6 +74,7 @@ enum inv_devices {
  	INV_MPU6000,
  	INV_MPU9150,
  	INV_MPU9250,
+	INV_MPU9255,
  	INV_ICM20608,
  	INV_NUM_PARTS
  };
@@ -232,6 +233,7 @@ struct inv_mpu6050_state {
  #define INV_MPU6500_WHOAMI_VALUE		0x70
  #define INV_MPU9150_WHOAMI_VALUE		0x68
  #define INV_MPU9250_WHOAMI_VALUE		0x71
+#define INV_MPU9255_WHOAMI_VALUE		0x73
  #define INV_ICM20608_WHOAMI_VALUE		0xAF
/* scan element definition */
diff -uprN linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
--- linux-4.16.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c	2018-04-01 17:20:27.000000000 -0400
+++ linux-4.16/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c	2018-04-02 18:31:38.356464416 -0400
@@ -83,6 +83,7 @@ static const struct spi_device_id inv_mp
  	{"mpu6500", INV_MPU6500},
  	{"mpu9150", INV_MPU9150},
  	{"mpu9250", INV_MPU9250},
+	{"mpu9255", INV_MPU9255},
  	{"icm20608", INV_ICM20608},
  	{}
  };
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux