* [PATCH v3 0/3] ARM: omap: omap4-embt2ws: Add IMU on control unit
@ 2023-09-27 17:32 Andreas Kemnade
2023-09-27 17:32 ` [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter Andreas Kemnade
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Andreas Kemnade @ 2023-09-27 17:32 UTC (permalink / raw)
To: jic23, lars, robh+dt, krzysztof.kozlowski+dt, conor+dt, bcousson,
tony, andreas, chenhuiz, jean-baptiste.maneyrol, andy.shevchenko,
linux-iio, devicetree, linux-kernel, linux-omap
Contrary to the IMU at the head, a bit needs to be set to
make probe of the magnetometer successful.
Changes in V3:
- correct another - vs _ issue in device tree
- more standard kernel version description
Changes in V2:
- add types in binding doc
- more description / comments in binding doc
- limit register change to imu9150
- correct node name in device tree (- vs _)
Andreas Kemnade (3):
dt-bindings: iio: imu: mpu6050: Add level shifter
iio: imu: mpu6050: add level shifter flag
ARM: dts: omap: omap4-embt2ws: Add IMU at control unit
.../bindings/iio/imu/invensense,mpu6050.yaml | 5 +++++
.../boot/dts/ti/omap/omap4-epson-embt2ws.dts | 17 ++++++++++++++++-
drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c | 13 +++++++++++++
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 3 +++
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 1 +
5 files changed, 38 insertions(+), 1 deletion(-)
--
2.39.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter
2023-09-27 17:32 [PATCH v3 0/3] ARM: omap: omap4-embt2ws: Add IMU on control unit Andreas Kemnade
@ 2023-09-27 17:32 ` Andreas Kemnade
2023-09-27 19:06 ` Jean-Baptiste Maneyrol
2023-09-28 18:34 ` Rob Herring
2023-09-27 17:32 ` [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag Andreas Kemnade
2023-09-27 17:32 ` [PATCH v3 3/3] ARM: dts: omap: omap4-embt2ws: Add IMU at control unit Andreas Kemnade
2 siblings, 2 replies; 9+ messages in thread
From: Andreas Kemnade @ 2023-09-27 17:32 UTC (permalink / raw)
To: jic23, lars, robh+dt, krzysztof.kozlowski+dt, conor+dt, bcousson,
tony, andreas, chenhuiz, jean-baptiste.maneyrol, andy.shevchenko,
linux-iio, devicetree, linux-kernel, linux-omap
Add a level shifter flag as found in ancient platform data struct:
level_shifter: 0: VLogic, 1: VDD
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
.../devicetree/bindings/iio/imu/invensense,mpu6050.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
index 1db6952ddca5e..297b8a1a7ffbc 100644
--- a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
+++ b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
@@ -48,6 +48,11 @@ properties:
mount-matrix: true
+ invensense,level-shifter:
+ type: boolean
+ description: |
+ From ancient platform data struct: false: VLogic, true: VDD
+
i2c-gate:
$ref: /schemas/i2c/i2c-controller.yaml
unevaluatedProperties: false
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag
2023-09-27 17:32 [PATCH v3 0/3] ARM: omap: omap4-embt2ws: Add IMU on control unit Andreas Kemnade
2023-09-27 17:32 ` [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter Andreas Kemnade
@ 2023-09-27 17:32 ` Andreas Kemnade
2023-09-27 19:08 ` Jean-Baptiste Maneyrol
2023-09-27 17:32 ` [PATCH v3 3/3] ARM: dts: omap: omap4-embt2ws: Add IMU at control unit Andreas Kemnade
2 siblings, 1 reply; 9+ messages in thread
From: Andreas Kemnade @ 2023-09-27 17:32 UTC (permalink / raw)
To: jic23, lars, robh+dt, krzysztof.kozlowski+dt, conor+dt, bcousson,
tony, andreas, chenhuiz, jean-baptiste.maneyrol, andy.shevchenko,
linux-iio, devicetree, linux-kernel, linux-omap
Some boards fail in magnetometer probe if level shifter flag is not set,
definition was found in the vendor Linux kernel v3.0.
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c | 13 +++++++++++++
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 3 +++
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 1 +
3 files changed, 17 insertions(+)
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
index 7327e5723f961..8a7f2911905af 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
@@ -71,6 +71,19 @@ int inv_mpu_aux_init(const struct inv_mpu6050_state *st)
unsigned int val;
int ret;
+ /*
+ * Code based on the vendor Linux kernel v3.0,
+ * the exact meaning is unknown.
+ */
+ if (st->chip_type == INV_MPU9150) {
+ unsigned int mask = BIT(7);
+
+ val = st->level_shifter ? mask : 0;
+ ret = regmap_update_bits(st->map, 0x1, mask, val);
+ if (ret)
+ return ret;
+ }
+
/* configure i2c master */
val = INV_MPU6050_BITS_I2C_MST_CLK_400KHZ |
INV_MPU6050_BIT_WAIT_FOR_ES;
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index 29f906c884bd8..3fbeef1a70186 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -17,6 +17,7 @@
#include <linux/regulator/consumer.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
+#include <linux/property.h>
#include <linux/iio/common/inv_sensors_timestamp.h>
#include <linux/iio/iio.h>
@@ -1495,6 +1496,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
st->irq = irq;
st->map = regmap;
+ st->level_shifter = device_property_read_bool(dev,
+ "invensense,level-shifter");
pdata = dev_get_platdata(dev);
if (!pdata) {
result = iio_read_mount_matrix(dev, &st->orientation);
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
index ed5a96e78df05..7eba1439c8093 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
@@ -203,6 +203,7 @@ struct inv_mpu6050_state {
s32 magn_raw_to_gauss[3];
struct iio_mount_matrix magn_orient;
unsigned int suspended_sensors;
+ bool level_shifter;
u8 *data;
};
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 3/3] ARM: dts: omap: omap4-embt2ws: Add IMU at control unit
2023-09-27 17:32 [PATCH v3 0/3] ARM: omap: omap4-embt2ws: Add IMU on control unit Andreas Kemnade
2023-09-27 17:32 ` [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter Andreas Kemnade
2023-09-27 17:32 ` [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag Andreas Kemnade
@ 2023-09-27 17:32 ` Andreas Kemnade
2023-10-07 6:57 ` Tony Lindgren
2 siblings, 1 reply; 9+ messages in thread
From: Andreas Kemnade @ 2023-09-27 17:32 UTC (permalink / raw)
To: jic23, lars, robh+dt, krzysztof.kozlowski+dt, conor+dt, bcousson,
tony, andreas, chenhuiz, jean-baptiste.maneyrol, andy.shevchenko,
linux-iio, devicetree, linux-kernel, linux-omap
Add also the level-shifter flag to avoid probe failure in magnetometer
probe.
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
.../boot/dts/ti/omap/omap4-epson-embt2ws.dts | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
index cd4f858d846ab..284a438fc5dcf 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
+++ b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
@@ -391,7 +391,16 @@ tlv320aic3x: codec@18 {
reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
};
- /* TODO: mpu9150 at control unit, seems to require quirks */
+ mpu9150: imu@68 {
+ compatible = "invensense,mpu9150";
+ reg = <0x68>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&mpu9150_pins>;
+ interrupt-parent = <&gpio2>;
+ interrupt = <7 IRQ_TYPE_LEVEL_HIGH>;
+ invensense,level-shifter;
+ };
};
&keypad {
@@ -530,6 +539,12 @@ OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx */
>;
};
+ mpu9150_pins: pinmux-mpu9150-pins {
+ pinctrl-single,pins = <
+ OMAP4_IOPAD(0x5e, PIN_INPUT_PULLUP | MUX_MODE3)
+ >;
+ };
+
mpu9150h_pins: pinmux-mpu9150h-pins {
pinctrl-single,pins = <
OMAP4_IOPAD(0x76, PIN_INPUT_PULLUP | MUX_MODE3)
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter
2023-09-27 17:32 ` [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter Andreas Kemnade
@ 2023-09-27 19:06 ` Jean-Baptiste Maneyrol
2023-09-28 18:34 ` Rob Herring
1 sibling, 0 replies; 9+ messages in thread
From: Jean-Baptiste Maneyrol @ 2023-09-27 19:06 UTC (permalink / raw)
To: Andreas Kemnade, jic23@kernel.org, lars@metafoo.de,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, bcousson@baylibre.com, tony@atomide.com,
chenhuiz@axis.com, andy.shevchenko@gmail.com,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org
Hello,
looks good for me, thanks.
Acked-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Thanks,
JB
From: Andreas Kemnade <andreas@kemnade.info>
Sent: Wednesday, September 27, 2023 19:32
To: jic23@kernel.org <jic23@kernel.org>; lars@metafoo.de <lars@metafoo.de>; robh+dt@kernel.org <robh+dt@kernel.org>; krzysztof.kozlowski+dt@linaro.org <krzysztof.kozlowski+dt@linaro.org>; conor+dt@kernel.org <conor+dt@kernel.org>; bcousson@baylibre.com <bcousson@baylibre.com>; tony@atomide.com <tony@atomide.com>; andreas@kemnade.info <andreas@kemnade.info>; chenhuiz@axis.com <chenhuiz@axis.com>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com>; andy.shevchenko@gmail.com <andy.shevchenko@gmail.com>; linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>; devicetree@vger.kernel.org <devicetree@vger.kernel.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; linux-omap@vger.kernel.org <linux-omap@vger.kernel.org>
Subject: [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter
Add a level shifter flag as found in ancient platform data struct: level_shifter: 0: VLogic, 1: VDD Signed-off-by: Andreas Kemnade <andreas@ kemnade. info> --- .. . /devicetree/bindings/iio/imu/invensense,mpu6050. yaml | 5 +++++ 1 file changed,
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
Add a level shifter flag as found in ancient platform data struct:
level_shifter: 0: VLogic, 1: VDD
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
.../devicetree/bindings/iio/imu/invensense,mpu6050.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
index 1db6952ddca5e..297b8a1a7ffbc 100644
--- a/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
+++ b/Documentation/devicetree/bindings/iio/imu/invensense,mpu6050.yaml
@@ -48,6 +48,11 @@ properties:
mount-matrix: true
+ invensense,level-shifter:
+ type: boolean
+ description: |
+ From ancient platform data struct: false: VLogic, true: VDD
+
i2c-gate:
$ref: /schemas/i2c/i2c-controller.yaml
unevaluatedProperties: false
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag
2023-09-27 17:32 ` [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag Andreas Kemnade
@ 2023-09-27 19:08 ` Jean-Baptiste Maneyrol
2023-09-30 16:50 ` Jonathan Cameron
0 siblings, 1 reply; 9+ messages in thread
From: Jean-Baptiste Maneyrol @ 2023-09-27 19:08 UTC (permalink / raw)
To: Andreas Kemnade, jic23@kernel.org, lars@metafoo.de,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, bcousson@baylibre.com, tony@atomide.com,
chenhuiz@axis.com, andy.shevchenko@gmail.com,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org
Hello,
looks good for me.
Acked-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Thanks,
JB
From: Andreas Kemnade <andreas@kemnade.info>
Sent: Wednesday, September 27, 2023 19:32
To: jic23@kernel.org <jic23@kernel.org>; lars@metafoo.de <lars@metafoo.de>; robh+dt@kernel.org <robh+dt@kernel.org>; krzysztof.kozlowski+dt@linaro.org <krzysztof.kozlowski+dt@linaro.org>; conor+dt@kernel.org <conor+dt@kernel.org>; bcousson@baylibre.com <bcousson@baylibre.com>; tony@atomide.com <tony@atomide.com>; andreas@kemnade.info <andreas@kemnade.info>; chenhuiz@axis.com <chenhuiz@axis.com>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com>; andy.shevchenko@gmail.com <andy.shevchenko@gmail.com>; linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>; devicetree@vger.kernel.org <devicetree@vger.kernel.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; linux-omap@vger.kernel.org <linux-omap@vger.kernel.org>
Subject: [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag
Some boards fail in magnetometer probe if level shifter flag is not set, definition was found in the vendor Linux kernel v3. 0. Signed-off-by: Andreas Kemnade <andreas@ kemnade. info> Reviewed-by: Andy Shevchenko <andy. shevchenko@ gmail. com>
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
Some boards fail in magnetometer probe if level shifter flag is not set,
definition was found in the vendor Linux kernel v3.0.
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c | 13 +++++++++++++
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 3 +++
drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 1 +
3 files changed, 17 insertions(+)
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
index 7327e5723f961..8a7f2911905af 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
@@ -71,6 +71,19 @@ int inv_mpu_aux_init(const struct inv_mpu6050_state *st)
unsigned int val;
int ret;
+ /*
+ * Code based on the vendor Linux kernel v3.0,
+ * the exact meaning is unknown.
+ */
+ if (st->chip_type == INV_MPU9150) {
+ unsigned int mask = BIT(7);
+
+ val = st->level_shifter ? mask : 0;
+ ret = regmap_update_bits(st->map, 0x1, mask, val);
+ if (ret)
+ return ret;
+ }
+
/* configure i2c master */
val = INV_MPU6050_BITS_I2C_MST_CLK_400KHZ |
INV_MPU6050_BIT_WAIT_FOR_ES;
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index 29f906c884bd8..3fbeef1a70186 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -17,6 +17,7 @@
#include <linux/regulator/consumer.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
+#include <linux/property.h>
#include <linux/iio/common/inv_sensors_timestamp.h>
#include <linux/iio/iio.h>
@@ -1495,6 +1496,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
st->irq = irq;
st->map = regmap;
+ st->level_shifter = device_property_read_bool(dev,
+ "invensense,level-shifter");
pdata = dev_get_platdata(dev);
if (!pdata) {
result = iio_read_mount_matrix(dev, &st->orientation);
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
index ed5a96e78df05..7eba1439c8093 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
@@ -203,6 +203,7 @@ struct inv_mpu6050_state {
s32 magn_raw_to_gauss[3];
struct iio_mount_matrix magn_orient;
unsigned int suspended_sensors;
+ bool level_shifter;
u8 *data;
};
--
2.39.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter
2023-09-27 17:32 ` [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter Andreas Kemnade
2023-09-27 19:06 ` Jean-Baptiste Maneyrol
@ 2023-09-28 18:34 ` Rob Herring
1 sibling, 0 replies; 9+ messages in thread
From: Rob Herring @ 2023-09-28 18:34 UTC (permalink / raw)
To: Andreas Kemnade
Cc: lars, robh+dt, bcousson, devicetree, linux-omap,
krzysztof.kozlowski+dt, jic23, tony, linux-iio,
jean-baptiste.maneyrol, linux-kernel, chenhuiz, andy.shevchenko,
conor+dt
On Wed, 27 Sep 2023 19:32:43 +0200, Andreas Kemnade wrote:
> Add a level shifter flag as found in ancient platform data struct:
> level_shifter: 0: VLogic, 1: VDD
>
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> ---
> .../devicetree/bindings/iio/imu/invensense,mpu6050.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
>
Acked-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag
2023-09-27 19:08 ` Jean-Baptiste Maneyrol
@ 2023-09-30 16:50 ` Jonathan Cameron
0 siblings, 0 replies; 9+ messages in thread
From: Jonathan Cameron @ 2023-09-30 16:50 UTC (permalink / raw)
To: Jean-Baptiste Maneyrol
Cc: Andreas Kemnade, lars@metafoo.de, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
bcousson@baylibre.com, tony@atomide.com, chenhuiz@axis.com,
andy.shevchenko@gmail.com, linux-iio@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-omap@vger.kernel.org
On Wed, 27 Sep 2023 19:08:31 +0000
Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com> wrote:
> Hello,
>
> looks good for me.
>
> Acked-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
Applied patches 1 and 2 to the togreg branch of iio.git which I will
initially push out as testing to let 0-day poke at it,
Thanks,
Jonathan
>
> Thanks,
> JB
>
>
> From: Andreas Kemnade <andreas@kemnade.info>
> Sent: Wednesday, September 27, 2023 19:32
> To: jic23@kernel.org <jic23@kernel.org>; lars@metafoo.de <lars@metafoo.de>; robh+dt@kernel.org <robh+dt@kernel.org>; krzysztof.kozlowski+dt@linaro.org <krzysztof.kozlowski+dt@linaro.org>; conor+dt@kernel.org <conor+dt@kernel.org>; bcousson@baylibre.com <bcousson@baylibre.com>; tony@atomide.com <tony@atomide.com>; andreas@kemnade.info <andreas@kemnade.info>; chenhuiz@axis.com <chenhuiz@axis.com>; Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com>; andy.shevchenko@gmail.com <andy.shevchenko@gmail.com>; linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>; devicetree@vger.kernel.org <devicetree@vger.kernel.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; linux-omap@vger.kernel.org <linux-omap@vger.kernel.org>
> Subject: [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag
>
> Some boards fail in magnetometer probe if level shifter flag is not set, definition was found in the vendor Linux kernel v3. 0. Signed-off-by: Andreas Kemnade <andreas@ kemnade. info> Reviewed-by: Andy Shevchenko <andy. shevchenko@ gmail. com>
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>
> ZjQcmQRYFpfptBannerEnd
> Some boards fail in magnetometer probe if level shifter flag is not set,
> definition was found in the vendor Linux kernel v3.0.
>
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> ---
> drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c | 13 +++++++++++++
> drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 3 +++
> drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h | 1 +
> 3 files changed, 17 insertions(+)
>
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
> index 7327e5723f961..8a7f2911905af 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_aux.c
> @@ -71,6 +71,19 @@ int inv_mpu_aux_init(const struct inv_mpu6050_state *st)
> unsigned int val;
> int ret;
>
> + /*
> + * Code based on the vendor Linux kernel v3.0,
> + * the exact meaning is unknown.
> + */
> + if (st->chip_type == INV_MPU9150) {
> + unsigned int mask = BIT(7);
> +
> + val = st->level_shifter ? mask : 0;
> + ret = regmap_update_bits(st->map, 0x1, mask, val);
> + if (ret)
> + return ret;
> + }
> +
> /* configure i2c master */
> val = INV_MPU6050_BITS_I2C_MST_CLK_400KHZ |
> INV_MPU6050_BIT_WAIT_FOR_ES;
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> index 29f906c884bd8..3fbeef1a70186 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
> @@ -17,6 +17,7 @@
> #include <linux/regulator/consumer.h>
> #include <linux/pm.h>
> #include <linux/pm_runtime.h>
> +#include <linux/property.h>
>
> #include <linux/iio/common/inv_sensors_timestamp.h>
> #include <linux/iio/iio.h>
> @@ -1495,6 +1496,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name,
> st->irq = irq;
> st->map = regmap;
>
> + st->level_shifter = device_property_read_bool(dev,
> + "invensense,level-shifter");
> pdata = dev_get_platdata(dev);
> if (!pdata) {
> result = iio_read_mount_matrix(dev, &st->orientation);
> diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> index ed5a96e78df05..7eba1439c8093 100644
> --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h
> @@ -203,6 +203,7 @@ struct inv_mpu6050_state {
> s32 magn_raw_to_gauss[3];
> struct iio_mount_matrix magn_orient;
> unsigned int suspended_sensors;
> + bool level_shifter;
> u8 *data;
> };
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 3/3] ARM: dts: omap: omap4-embt2ws: Add IMU at control unit
2023-09-27 17:32 ` [PATCH v3 3/3] ARM: dts: omap: omap4-embt2ws: Add IMU at control unit Andreas Kemnade
@ 2023-10-07 6:57 ` Tony Lindgren
0 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2023-10-07 6:57 UTC (permalink / raw)
To: Andreas Kemnade
Cc: jic23, lars, robh+dt, krzysztof.kozlowski+dt, conor+dt, bcousson,
chenhuiz, jean-baptiste.maneyrol, andy.shevchenko, linux-iio,
devicetree, linux-kernel, linux-omap
* Andreas Kemnade <andreas@kemnade.info> [230927 17:32]:
> Add also the level-shifter flag to avoid probe failure in magnetometer
> probe.
Applying this patch into omap-for-v6.7/dt thanks.
Regards,
Tony
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-10-07 6:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-27 17:32 [PATCH v3 0/3] ARM: omap: omap4-embt2ws: Add IMU on control unit Andreas Kemnade
2023-09-27 17:32 ` [PATCH v3 1/3] dt-bindings: iio: imu: mpu6050: Add level shifter Andreas Kemnade
2023-09-27 19:06 ` Jean-Baptiste Maneyrol
2023-09-28 18:34 ` Rob Herring
2023-09-27 17:32 ` [PATCH v3 2/3] iio: imu: mpu6050: add level shifter flag Andreas Kemnade
2023-09-27 19:08 ` Jean-Baptiste Maneyrol
2023-09-30 16:50 ` Jonathan Cameron
2023-09-27 17:32 ` [PATCH v3 3/3] ARM: dts: omap: omap4-embt2ws: Add IMU at control unit Andreas Kemnade
2023-10-07 6:57 ` Tony Lindgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).