Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752663AbcDXLQX (ORCPT ); Sun, 24 Apr 2016 07:16:23 -0400 Received: from saturn.retrosnub.co.uk ([178.18.118.26]:35731 "EHLO saturn.retrosnub.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751770AbcDXLQW (ORCPT ); Sun, 24 Apr 2016 07:16:22 -0400 Subject: Re: [PATCH 5/5] iio: inv_mpu6050: Add explicit support for MPU9150 To: Crestez Dan Leonard , linux-iio@vger.kernel.org References: Cc: linux-kernel@vger.kernel.org, Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Daniel Baluta , Ge Gao From: Jonathan Cameron Message-ID: <76645673-6d2c-3d51-a689-1c9310cbc765@kernel.org> Date: Sun, 24 Apr 2016 12:16:19 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4349 Lines: 113 On 20/04/16 14:15, Crestez Dan Leonard wrote: > This device is a package containing a MPU6050-like sensor and an AK8975 > magnetometer. The magnetometer component is supported by the existing > ak8975 driver. > > This patch also rephrases the Kconfig descriptions. > > Signed-off-by: Crestez Dan Leonard Looks good. Will just wait for Ge to hopefully have time to take a look at the whole series. For future reference, it's always worth making sure you have cc'd the original author of a driver unless you know someone else is definitely maintaining it. Ge was reply to emails recently so I guess he is still very much active! Jonathan > --- > drivers/iio/imu/inv_mpu6050/Kconfig | 10 ++++------ > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 6 ++++++ > drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 1 + > drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 2 ++ > drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 1 + > 5 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/drivers/iio/imu/inv_mpu6050/Kconfig b/drivers/iio/imu/inv_mpu6050/Kconfig > index a7f557a..c05d474 100644 > --- a/drivers/iio/imu/inv_mpu6050/Kconfig > +++ b/drivers/iio/imu/inv_mpu6050/Kconfig > @@ -14,10 +14,8 @@ config INV_MPU6050_I2C > select I2C_MUX > select REGMAP_I2C > help > - This driver supports the Invensense MPU6050 devices. > - This driver can also support MPU6500 in MPU6050 compatibility mode > - and also in MPU6500 mode with some limitations. > - It is a gyroscope/accelerometer combo device. > + This driver supports the Invensense MPU6050/6500/9150 motion tracking > + devices over I2C. > This driver can be built as a module. The module will be called > inv-mpu6050-i2c. > > @@ -27,7 +25,7 @@ config INV_MPU6050_SPI > select INV_MPU6050_IIO > select REGMAP_SPI > help > - This driver supports the Invensense MPU6050 devices. > - It is a gyroscope/accelerometer combo device. > + This driver supports the Invensense MPU6000/6500/9150 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 273b7fa7..3a82a49 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > @@ -108,6 +108,12 @@ static const struct inv_mpu6050_hw hw_info[] = { > .reg = ®_set_6050, > .config = &chip_config_6050, > }, > + { > + .whoami = INV_MPU9150_WHOAMI_VALUE, > + .name = "MPU9150", > + .reg = ®_set_6050, > + .config = &chip_config_6050, > + }, > }; > > int inv_mpu6050_switch_engine(struct inv_mpu6050_state *st, bool en, u32 mask) > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c > index bb1a7b1..1a424a6 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c > @@ -202,6 +202,7 @@ static int inv_mpu_remove(struct i2c_client *client) > static const struct i2c_device_id inv_mpu_id[] = { > {"mpu6050", INV_MPU6050}, > {"mpu6500", INV_MPU6500}, > + {"mpu9150", INV_MPU9150}, > {} > }; > > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h > index 564cabd..38d6a09 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h > @@ -68,6 +68,7 @@ enum inv_devices { > INV_MPU6050, > INV_MPU6500, > INV_MPU6000, > + INV_MPU9150, > INV_NUM_PARTS > }; > > @@ -220,6 +221,7 @@ struct inv_mpu6050_state { > #define INV_MPU6000_WHOAMI_VALUE 0x68 > #define INV_MPU6050_WHOAMI_VALUE 0x68 > #define INV_MPU6500_WHOAMI_VALUE 0x70 > +#define INV_MPU9150_WHOAMI_VALUE 0x68 > > /* scan element definition */ > enum inv_mpu6050_scan { > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c > index a0f8df2..190a4a5 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c > @@ -81,6 +81,7 @@ static int inv_mpu_remove(struct spi_device *spi) > static const struct spi_device_id inv_mpu_id[] = { > {"mpu6000", INV_MPU6000}, > {"mpu6500", INV_MPU6500}, > + {"mpu9150", INV_MPU9150}, > {} > }; > >