Re: [PATCH 2/3] iio: imu: mpu6050: add level shifter flag

From: Jean-Baptiste Maneyrol
Date: Mon Sep 25 2023 - 07:21:55 EST


Hello,

these are very old unsupported chips, thus this is not something I can easily find. Even after doing some archaeology.

But when looking at register maps, it should only be used with MPU-9150 and not MPU-9250. I would feel much more comfortable to restrict this fix to MPU-9150 only (by testing chip_type against INV_MPU9150).

Thanks,
JB

From: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
Sent: Monday, September 25, 2023 13:07
To: Andreas Kemnade <andreas@xxxxxxxxxxxx>
Cc: jic23@xxxxxxxxxx <jic23@xxxxxxxxxx>; lars@xxxxxxxxxx <lars@xxxxxxxxxx>; robh+dt@xxxxxxxxxx <robh+dt@xxxxxxxxxx>; krzysztof.kozlowski+dt@xxxxxxxxxx <krzysztof.kozlowski+dt@xxxxxxxxxx>; conor+dt@xxxxxxxxxx <conor+dt@xxxxxxxxxx>; bcousson@xxxxxxxxxxxx <bcousson@xxxxxxxxxxxx>; tony@xxxxxxxxxxx <tony@xxxxxxxxxxx>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@xxxxxxx>; chenhuiz@xxxxxxxx <chenhuiz@xxxxxxxx>; linux-iio@xxxxxxxxxxxxxxx <linux-iio@xxxxxxxxxxxxxxx>; devicetree@xxxxxxxxxxxxxxx <devicetree@xxxxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx <linux-kernel@xxxxxxxxxxxxxxx>; linux-omap@xxxxxxxxxxxxxxx <linux-omap@xxxxxxxxxxxxxxx>
Subject: Re: [PATCH 2/3] iio: imu: mpu6050: add level shifter flag
 
On Mon, Sep 25, 2023 at 1: 26 AM Andreas Kemnade <andreas@ kemnade. info> wrote: > > Some boards fail in magnetometer probe if flag is not set. Which flag? Can you elaborate a bit more? Does it deserve the Fixes tag? .. . > unsigned
ZjQcmQRYFpfptBannerStart
This Message Is From an Untrusted Sender
You have not previously corresponded with this sender.
 
ZjQcmQRYFpfptBannerEnd
On Mon, Sep 25, 2023 at 1:26 AM Andreas Kemnade <andreas@xxxxxxxxxxxx> wrote:
>
> Some boards fail in magnetometer probe if flag is not set.

Which flag? Can you elaborate a bit more?

Does it deserve the Fixes tag?

...

> unsigned int val;
> int ret;

> + ret = regmap_update_bits(st->map, 0x1, 0x80,
> + st->level_shifter ? 0x80 : 0);

This is a bit cryptic, what does 1 stand for?

Also

unsigned int mask = BIT(7);
...
val = st->level_shifter ? mask : 0;

> + if (ret)
> + return ret;

...
> + st->level_shifter = device_property_present(dev,
> + "invensense,level-shifter");

It was a recommendation to use _read_bool() when reading the value,
while the result will be the same.

--
With Best Regards,
Andy Shevchenko