Re: [PATCH] iio: gyro: mpu3050: fix chip ID reading

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

 



On Sat,  2 Mar 2019 19:54:55 +0300
Sergey Larin <cerg2010cerg2010@xxxxxxx> wrote:

> According to the datasheet, the last bit of CHIP_ID register controls
> I2C bus, and the first one is unused. Handle this correctly.
> 
> Signed-off-by: Sergey Larin <cerg2010cerg2010@xxxxxxx>
Fix certainly seems to be correct, but seeing as we only support i2c for
this chip and that I assume the bottom bit is actually set (though
reserved), currently this is a tidy up rather than a fix.

Hence I'll take this the slow way rather than quickly as I would
a fix with actual effect.

Let me know if I've missed something!

Jonathan

> ---
>  drivers/iio/gyro/mpu3050-core.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iio/gyro/mpu3050-core.c b/drivers/iio/gyro/mpu3050-core.c
> index 77fac81a3adc..5ddebede31a6 100644
> --- a/drivers/iio/gyro/mpu3050-core.c
> +++ b/drivers/iio/gyro/mpu3050-core.c
> @@ -29,7 +29,8 @@
>  
>  #include "mpu3050.h"
>  
> -#define MPU3050_CHIP_ID		0x69
> +#define MPU3050_CHIP_ID		0x68
> +#define MPU3050_CHIP_ID_MASK	0x7E
>  
>  /*
>   * Register map: anything suffixed *_H is a big-endian high byte and always
> @@ -1176,8 +1177,9 @@ int mpu3050_common_probe(struct device *dev,
>  		goto err_power_down;
>  	}
>  
> -	if (val != MPU3050_CHIP_ID) {
> -		dev_err(dev, "unsupported chip id %02x\n", (u8)val);
> +	if ((val & MPU3050_CHIP_ID_MASK) != MPU3050_CHIP_ID) {
> +		dev_err(dev, "unsupported chip id %02x\n",
> +				(u8)(val & MPU3050_CHIP_ID_MASK));
>  		ret = -ENODEV;
>  		goto err_power_down;
>  	}




[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