Skip to content

Commit

Permalink
arm64: dts: qcom: msm8916-longcheer-l8150: Add missing sensor interrupts
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Stephan Gerhold <[email protected]>
Signed-off-by: Bjorn Andersson <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
  • Loading branch information
stephan-gh authored and andersson committed Sep 27, 2021
1 parent ede638c commit 51c7786
Showing 1 changed file with 39 additions and 4 deletions.
43 changes: 39 additions & 4 deletions arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,21 @@
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>;

Expand All @@ -133,9 +145,15 @@
};

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>;
};
Expand All @@ -145,7 +163,8 @@
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>;
Expand Down Expand Up @@ -336,6 +355,14 @@
};

&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";
Expand All @@ -361,7 +388,15 @@
};

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>;
Expand Down

0 comments on commit 51c7786

Please sign in to comment.