]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: msm8916-samsung-fortuna: Add BMC150 accelerometer/magnetometer
authorJoe Mason <buddyjojo06@outlook.com>
Sat, 6 Apr 2024 11:14:28 +0000 (11:14 +0000)
committerBjorn Andersson <andersson@kernel.org>
Tue, 28 May 2024 15:15:07 +0000 (10:15 -0500)
Some Grand Prime use 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: Joe Mason <buddyjojo06@outlook.com>
[Stephan: Move sensors to common dtsi, disabled by default]
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
[Raymond: Add it to grandprimelte. Use interrupts-extended]
Signed-off-by: Raymond Hackley <raymondhackley@protonmail.com>
Link: https://lore.kernel.org/r/20240406111348.14358-2-raymondhackley@protonmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/msm8916-samsung-fortuna-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-gprimeltecan.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-grandprimelte.dts

index 62864cca0cbbb4d1d6cc01cb3d3e9dcd11afcd1d..fa6bfce6d1833ad9abe7a0474aba70c20b308011 100644 (file)
        };
 };
 
+&blsp_i2c2 {
+       /* Available sensors vary depending on model variant */
+       status = "okay";
+
+       bosch_accel: accelerometer@10 {
+               compatible = "bosch,bmc150_accel";
+               reg = <0x10>;
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>;
+
+               vdd-supply = <&pm8916_l5>;
+               vddio-supply = <&pm8916_l5>;
+
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+
+               mount-matrix = "0", "-1", "0",
+                             "-1",  "0", "0",
+                              "0",  "0", "1";
+
+               status = "disabled";
+       };
+
+       bosch_magn: magnetometer@12 {
+               compatible = "bosch,bmc150_magn";
+               reg = <0x12>;
+
+               vdd-supply = <&pm8916_l5>;
+               vddio-supply = <&pm8916_l5>;
+
+               mount-matrix = "0", "-1", "0",
+                             "-1",  "0", "0",
+                              "0",  "0", "1";
+
+               status = "disabled";
+       };
+};
+
 &blsp_i2c4 {
        status = "okay";
 
 };
 
 &tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio115";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        backlight_en_default: backlight-en-default-state {
                pins = "gpio98";
                function = "gpio";
index 9d65fa58ba92960f905f6c1b7209af76f3bd7cdb..4dc74e8bf1d827b98d9fa376d7c6d00c295bdebc 100644 (file)
        };
 };
 
+&bosch_accel {
+       status = "okay";
+};
+
+&bosch_magn {
+       status = "okay";
+};
+
 &mpss_mem {
        /* Firmware for gprimeltecan needs more space */
        reg = <0x0 0x86800000 0x0 0x5400000>;
index a66ce4b13547b46520ef509a933c500143a7b664..cffad734c4df78e0074510d018c79b4477e3ea0e 100644 (file)
        chassis-type = "handset";
 };
 
+&bosch_accel {
+       status = "okay";
+};
+
+&bosch_magn {
+       status = "okay";
+};
+
 &mpss_mem {
        /* Firmware for grandprimelte needs more space */
        reg = <0x0 0x86800000 0x0 0x5400000>;