Iconia Talk S uses a Bosch BMC150 accelerometer/magnetometer combo.
The chip provides two separate I2C devices for the accelerometer
and magnetometer that are already supported by the bmc150-accel
and bmc150-magn driver.
Signed-off-by: Lin, Meng-Bo <[email protected]>
---
.../boot/dts/qcom/msm8916-acer-a1-724.dts | 38 +++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
index 67187673364c..a87de8af9f15 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
@@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
/*
* NOTE: The original firmware from Acer can only boot 32-bit kernels.
@@ -51,6 +52,35 @@ usb_id: usb-id {
};
};
+&blsp_i2c2 {
+ status = "okay";
+
+ accelerometer@10 {
+ compatible = "bosch,bmc150_accel";
+ reg = <0x10>;
+ interrupt-parent = <&msmgpio>;
+ interrupts = <115 IRQ_TYPE_EDGE_RISING>;
+
+ vdd-supply = <&pm8916_l17>;
+ vddio-supply = <&pm8916_l6>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&accel_int_default>;
+
+ mount-matrix = "0", "-1", "0",
+ "-1", "0", "0",
+ "0", "0", "1";
+ };
+
+ magnetometer@12 {
+ compatible = "bosch,bmc150_magn";
+ reg = <0x12>;
+
+ vdd-supply = <&pm8916_l17>;
+ vddio-supply = <&pm8916_l6>;
+ };
+};
+
&blsp1_uart2 {
status = "okay";
};
@@ -199,6 +229,14 @@ l18 {
};
&msmgpio {
+ accel_int_default: accel-int-default-state {
+ pins = "gpio115";
+ function = "gpio";
+
+ drive-strength = <2>;
+ bias-disable;
+ };
+
gpio_keys_default: gpio-keys-default-state {
pins = "gpio107";
function = "gpio";
--
2.30.2
On 21.11.2022 01:47, Lin, Meng-Bo wrote:
> Iconia Talk S uses a Bosch BMC150 accelerometer/magnetometer combo.
> The chip provides two separate I2C devices for the accelerometer
> and magnetometer that are already supported by the bmc150-accel
> and bmc150-magn driver.
>
> Signed-off-by: Lin, Meng-Bo <[email protected]>
> ---
Reviewed-by: Konrad Dybcio <[email protected]>
Konrad
> .../boot/dts/qcom/msm8916-acer-a1-724.dts | 38 +++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
> index 67187673364c..a87de8af9f15 100644
> --- a/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
> +++ b/arch/arm64/boot/dts/qcom/msm8916-acer-a1-724.dts
> @@ -6,6 +6,7 @@
>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/input/input.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
>
> /*
> * NOTE: The original firmware from Acer can only boot 32-bit kernels.
> @@ -51,6 +52,35 @@ usb_id: usb-id {
> };
> };
>
> +&blsp_i2c2 {
> + status = "okay";
> +
> + accelerometer@10 {
> + compatible = "bosch,bmc150_accel";
> + reg = <0x10>;
> + interrupt-parent = <&msmgpio>;
> + interrupts = <115 IRQ_TYPE_EDGE_RISING>;
> +
> + vdd-supply = <&pm8916_l17>;
> + vddio-supply = <&pm8916_l6>;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&accel_int_default>;
> +
> + mount-matrix = "0", "-1", "0",
> + "-1", "0", "0",
> + "0", "0", "1";
> + };
> +
> + magnetometer@12 {
> + compatible = "bosch,bmc150_magn";
> + reg = <0x12>;
> +
> + vdd-supply = <&pm8916_l17>;
> + vddio-supply = <&pm8916_l6>;
> + };
> +};
> +
> &blsp1_uart2 {
> status = "okay";
> };
> @@ -199,6 +229,14 @@ l18 {
> };
>
> &msmgpio {
> + accel_int_default: accel-int-default-state {
> + pins = "gpio115";
> + function = "gpio";
> +
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> gpio_keys_default: gpio-keys-default-state {
> pins = "gpio107";
> function = "gpio";