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 2b4514592f833c9be71e0522ca8e839082470030..94941fc43e49700015270c4ff3f7f2888d18c3b2 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 7d64be353403a3f1ceedda9704991393ddf53940..20b94d9a1a2278bfec7e1d0ccf49223b4292812f 100644 (file)
@@ -120,6 +120,12 @@ static const struct inv_mpu6050_hw hw_info[] = {
                .reg = &reg_set_6500,
                .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",
index fcd7a92b6cf8c5bd61d41c0099e020a4f2394e83..f70e7b9ef6638eea8020e5d0c7c9a20cef06ef27 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},
        {}
 };
@@ -202,6 +203,10 @@ static const struct of_device_id inv_of_match[] = {
                .compatible = "invensense,mpu9250",
                .data = (void *)INV_MPU9250
        },
+       {
+               .compatible = "invensense,mpu9255",
+               .data = (void *)INV_MPU9255
+       },
        {
                .compatible = "invensense,icm20608",
                .data = (void *)INV_ICM20608
index c3d6225ee997dbb0f676b0752ad4e8afe8045094..d476dc3d20fac727609e8b5b1ca3008fd820aca9 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 74506e5ac0db6d48749cc8dff55d5741daf6f9af..a7b0f15433e3a225cc453fd4f9d10ae889880ce2 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},
        {}
 };