iio: imu: Add mpu9255 support to mpu6050 driver
authorDouglas Fischer <fischerdouglasc@gmail.com>
Mon, 2 Apr 2018 22:42:00 +0000 (18:42 -0400)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 15 Apr 2018 18:07:38 +0000 (19:07 +0100)
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@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Documentation/devicetree/bindings/iio/imu/inv_mpu6050.txt
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c

index 2b45145..94941fc 100644 (file)
@@ -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
index 7d64be3..20b94d9 100644 (file)
@@ -121,6 +121,12 @@ static const struct inv_mpu6050_hw hw_info[] = {
                .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,
index fcd7a92..f70e7b9 100644 (file)
@@ -179,6 +179,7 @@ static const struct i2c_device_id inv_mpu_id[] = {
        {"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_match[] = {
                .data = (void *)INV_MPU9250
        },
        {
+               .compatible = "invensense,mpu9255",
+               .data = (void *)INV_MPU9255
+       },
+       {
                .compatible = "invensense,icm20608",
                .data = (void *)INV_ICM20608
        },
index c3d6225..d476dc3 100644 (file)
@@ -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 */
index 74506e5..a7b0f15 100644 (file)
@@ -83,6 +83,7 @@ static const struct spi_device_id inv_mpu_id[] = {
        {"mpu6500", INV_MPU6500},
        {"mpu9150", INV_MPU9150},
        {"mpu9250", INV_MPU9250},
+       {"mpu9255", INV_MPU9255},
        {"icm20608", INV_ICM20608},
        {}
 };