All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts
@ 2021-08-16 12:35 Stephan Gerhold
  2021-09-27 22:56 ` (subset) " Bjorn Andersson
  2021-09-27 23:00 ` patchwork-bot+linux-arm-msm
  0 siblings, 2 replies; 3+ messages in thread
From: Stephan Gerhold @ 2021-08-16 12:35 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Andy Gross, linux-arm-msm, devicetree, ~postmarketos/upstreaming,
	Stephan Gerhold, Nikita Travkin

So far there were no interrupts set up for the BMC150 accelerometer
+ magnetometer combo because they were broken for some reason.
It turns out Longcheer L8150 actually has a BMC156 which is very similar
to BMC150, but only has an INT2 pin for the accelerometer part.

This requires some minor changes in the bmc150-accel driver which is now
supported by using the more correct bosch,bmc156_accel compatible.
Unfortunately it looks like even INT2 is not functional on most boards
because the interrupt line is not actually connected to the BMC156.
However, there are two pads next to the chip that can be shorted
to make it work if needed.

While at it, add the missing interrupts for the magnetometer part
and extra BMG160 gyroscope, those seem to work without any problems.
Also correct the magnetometer compatible to bosch,bmc156_magn for clarity
(no functional difference for the magnetometer part).

Tested-by: Nikita Travkin <nikita@trvn.ru>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
---
 .../boot/dts/qcom/msm8916-longcheer-l8150.dts | 43 +++++++++++++++++--
 1 file changed, 39 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
index 1e893c0b6fbc..30716eb8fb2d 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
@@ -121,9 +121,21 @@ &blsp_i2c2 {
 	status = "okay";
 
 	accelerometer@10 {
-		compatible = "bosch,bmc150_accel";
+		compatible = "bosch,bmc156_accel";
 		reg = <0x10>;
 
+		/*
+		 * For some reason the interrupt line is usually not connected
+		 * to the BMC156. However, there are two pads next to the chip
+		 * that can be shorted to make it work if needed.
+		 *
+		 * interrupt-parent = <&msmgpio>;
+		 * interrupts = <116 IRQ_TYPE_EDGE_RISING>;
+		 */
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&accel_int_default>;
+
 		vdd-supply = <&pm8916_l17>;
 		vddio-supply = <&pm8916_l6>;
 
@@ -133,9 +145,15 @@ accelerometer@10 {
 	};
 
 	magnetometer@12 {
-		compatible = "bosch,bmc150_magn";
+		compatible = "bosch,bmc156_magn";
 		reg = <0x12>;
 
+		interrupt-parent = <&msmgpio>;
+		interrupts = <113 IRQ_TYPE_EDGE_RISING>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&magn_int_default>;
+
 		vdd-supply = <&pm8916_l17>;
 		vddio-supply = <&pm8916_l6>;
 	};
@@ -145,7 +163,8 @@ gyroscope@68 {
 		reg = <0x68>;
 
 		interrupt-parent = <&msmgpio>;
-		interrupts = <23 IRQ_TYPE_EDGE_RISING>;
+		interrupts = <23 IRQ_TYPE_EDGE_RISING>,
+			     <22 IRQ_TYPE_EDGE_RISING>;
 
 		pinctrl-names = "default";
 		pinctrl-0 = <&gyro_int_default>;
@@ -336,6 +355,14 @@ l18 {
 };
 
 &msmgpio {
+	accel_int_default: accel-int-default {
+		pins = "gpio116";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	camera_flash_default: camera-flash-default {
 		pins = "gpio31", "gpio32";
 		function = "gpio";
@@ -361,7 +388,15 @@ gpio_keys_default: gpio-keys-default {
 	};
 
 	gyro_int_default: gyro-int-default {
-		pins = "gpio23";
+		pins = "gpio22", "gpio23";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	magn_int_default: magn-int-default {
+		pins = "gpio113";
 		function = "gpio";
 
 		drive-strength = <2>;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: (subset) [PATCH] arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts
  2021-08-16 12:35 [PATCH] arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts Stephan Gerhold
@ 2021-09-27 22:56 ` Bjorn Andersson
  2021-09-27 23:00 ` patchwork-bot+linux-arm-msm
  1 sibling, 0 replies; 3+ messages in thread
From: Bjorn Andersson @ 2021-09-27 22:56 UTC (permalink / raw)
  To: Stephan Gerhold
  Cc: ~postmarketos/upstreaming, Nikita Travkin, linux-arm-msm,
	Andy Gross, devicetree

On Mon, 16 Aug 2021 14:35:44 +0200, Stephan Gerhold wrote:
> So far there were no interrupts set up for the BMC150 accelerometer
> + magnetometer combo because they were broken for some reason.
> It turns out Longcheer L8150 actually has a BMC156 which is very similar
> to BMC150, but only has an INT2 pin for the accelerometer part.
> 
> This requires some minor changes in the bmc150-accel driver which is now
> supported by using the more correct bosch,bmc156_accel compatible.
> Unfortunately it looks like even INT2 is not functional on most boards
> because the interrupt line is not actually connected to the BMC156.
> However, there are two pads next to the chip that can be shorted
> to make it work if needed.
> 
> [...]

Applied, thanks!

[1/1] arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts
      commit: 51c7786f5d4201422e076b9a3650e543a61d36da

Best regards,
-- 
Bjorn Andersson <bjorn.andersson@linaro.org>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts
  2021-08-16 12:35 [PATCH] arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts Stephan Gerhold
  2021-09-27 22:56 ` (subset) " Bjorn Andersson
@ 2021-09-27 23:00 ` patchwork-bot+linux-arm-msm
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+linux-arm-msm @ 2021-09-27 23:00 UTC (permalink / raw)
  To: Stephan Gerhold; +Cc: linux-arm-msm

Hello:

This patch was applied to qcom/linux.git (refs/heads/for-next):

On Mon, 16 Aug 2021 14:35:44 +0200 you wrote:
> So far there were no interrupts set up for the BMC150 accelerometer
> + magnetometer combo because they were broken for some reason.
> It turns out Longcheer L8150 actually has a BMC156 which is very similar
> to BMC150, but only has an INT2 pin for the accelerometer part.
> 
> This requires some minor changes in the bmc150-accel driver which is now
> supported by using the more correct bosch,bmc156_accel compatible.
> Unfortunately it looks like even INT2 is not functional on most boards
> because the interrupt line is not actually connected to the BMC156.
> However, there are two pads next to the chip that can be shorted
> to make it work if needed.
> 
> [...]

Here is the summary with links:
  - arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts
    https://git.kernel.org/qcom/c/51c7786f5d42

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-27 23:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-16 12:35 [PATCH] arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts Stephan Gerhold
2021-09-27 22:56 ` (subset) " Bjorn Andersson
2021-09-27 23:00 ` patchwork-bot+linux-arm-msm

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.