mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
arm64: dts: qcom: x1e80100-dell-xps13-9345: enable onboard accelerometers
Particular laptop comes with two sets of sensors: 1. Motherboard: accelerometer 2. Display/Camera module: accelerometer, ambient ligth (and more) sensor Both i2c busses are bound to Snapdragon Sensor Core (SSC) and are typically controlled by (A)DSP thus allowing for great power efficiency. This however requires DSP libraries matching ADSP firmware, sensors descriptions (must be extracted from Windows) and other potentially closed-source libraries. Opensource tooling includes `libssc` and `hexagonrpcd`, but they were not verified to be working. Until SSC support for X1E lands, bitbang both i2c busses to enable accelerometer functionality. In the future if/when sensors on this platform can be used from DSP directly, this commit can be reverted. Both accelerometers were tested individually via `monitor-sensor`. Display accelerometer is defined first, as it appears automatic screen rotation tools simply pick the 1st iio device. Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com> Acked-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://patch.msgid.link/20260331-dell-xps-9345-accel-v2-1-7dacbd24b43d@vinarskis.com Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
This commit is contained in:
committed by
Abel Vesa
parent
f7d0acd6df
commit
070154ae57
@@ -40,6 +40,67 @@
|
||||
};
|
||||
};
|
||||
|
||||
/* Display-mounted sensors */
|
||||
i2c-sensors1 {
|
||||
compatible = "i2c-gpio";
|
||||
i2c-gpio,delay-us = <2>;
|
||||
|
||||
scl-gpios = <&tlmm 232 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||
sda-gpios = <&tlmm 231 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||
|
||||
pinctrl-0 = <&sensors_i2c_display_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
accelerometer@18 {
|
||||
compatible = "st,lis2dw12";
|
||||
reg = <0x18>;
|
||||
|
||||
interrupts-extended = <&tlmm 29 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-0 = <&acc_display_int_n_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
mount-matrix = "-1", "0", "0",
|
||||
"0", "1", "0",
|
||||
"0", "0", "-1";
|
||||
};
|
||||
|
||||
/* AMS TCS3530 @ 0x39, IRQ 93 */
|
||||
};
|
||||
|
||||
/* Motherboard-mounted sensors */
|
||||
i2c-sensors2 {
|
||||
compatible = "i2c-gpio";
|
||||
i2c-gpio,delay-us = <2>;
|
||||
|
||||
scl-gpios = <&tlmm 216 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||
sda-gpios = <&tlmm 215 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||
|
||||
pinctrl-0 = <&sensors_i2c_mobo_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
accelerometer@18 {
|
||||
compatible = "st,lis2dw12";
|
||||
reg = <0x18>;
|
||||
|
||||
interrupts-extended = <&tlmm 28 IRQ_TYPE_LEVEL_LOW>;
|
||||
pinctrl-0 = <&acc_mobo_int_n_default>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
vdd-supply = <&vreg_l10b_1p8>;
|
||||
vddio-supply = <&vreg_l10b_1p8>;
|
||||
|
||||
mount-matrix = "0", "1", "0",
|
||||
"0", "0", "1",
|
||||
"1", "0", "0";
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
@@ -501,6 +562,13 @@
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l10b_1p8: ldo10 {
|
||||
regulator-name = "vreg_l10b_1p8";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
|
||||
};
|
||||
|
||||
vreg_l12b_1p2: ldo12 {
|
||||
regulator-name = "vreg_l12b_1p2";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
@@ -1289,6 +1357,18 @@
|
||||
<76 4>, /* SPI19 (TZ Protected) */
|
||||
<238 1>; /* UFS Reset */
|
||||
|
||||
acc_display_int_n_default: acc-display-int-n-state {
|
||||
pins = "gpio29";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
acc_mobo_int_n_default: acc-mobo-int-n-state {
|
||||
pins = "gpio28";
|
||||
function = "gpio";
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
cam_indicator_en: cam-indicator-en-state {
|
||||
pins = "gpio110";
|
||||
function = "gpio";
|
||||
@@ -1418,6 +1498,20 @@
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
sensors_i2c_display_default: sensors-i2c-display-state {
|
||||
pins = "gpio231", "gpio232";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
sensors_i2c_mobo_default: sensors-i2c-mobo-state {
|
||||
pins = "gpio215", "gpio216";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
tpad_default: tpad-default-state {
|
||||
disable-pins {
|
||||
pins = "gpio38";
|
||||
|
||||
Reference in New Issue
Block a user