arm64: dts: qcom: milos-fairphone-fp6: add sensor i2c bus and magnetometer
The FP6 sensor suite (QMC6308 magnetometer @ 0x2c, SPL07 barometer @ 0x76, STK3BCx ALS/proximity @ 0x48) sits on an I2C bus wired to TLMM gpio153/gpio154. Those pads are eGPIOs with no AP serial-engine function: on the stock OS the bus is driven by an island QUP owned by the Snapdragon Sensor Core on the ADSP. From the AP they are only usable as software GPIOs, so describe the bus as i2c-gpio, and add the QMC6308 magnetometer node: powered from the always-on vreg_l10b (per the schematics), mount matrix from the vendor SSC registry (volcano_qmc630x_0.json .orient: sensor x -> device +y, sensor y -> device -x, z -> z), validated against Earth's field with a four-point cardinal rotation. Assisted-by: Claude:claude-fable-5 Signed-off-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
This commit is contained in:
parent
50cd4e823f
commit
cf98406408
1 changed files with 36 additions and 0 deletions
|
|
@ -27,6 +27,34 @@
|
|||
serial1 = &uart11;
|
||||
};
|
||||
|
||||
/*
|
||||
* The sensor I2C bus sits on TLMM eGPIO pads that have no AP QUP
|
||||
* function; on the stock OS it is driven by an island QUP of the
|
||||
* Snapdragon Sensor Core (ADSP). From the AP the pads are only
|
||||
* usable as software GPIOs, so bit-bang the bus.
|
||||
* Devices on the bus: QMC6308 magnetometer @ 0x2c, SPL07
|
||||
* barometer @ 0x76, STK3BCx ALS/proximity @ 0x48.
|
||||
*/
|
||||
i2c-sensors {
|
||||
compatible = "i2c-gpio";
|
||||
sda-gpios = <&tlmm 153 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||
scl-gpios = <&tlmm 154 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
|
||||
i2c-gpio,delay-us = <2>;
|
||||
pinctrl-0 = <&sensor_i2c_default>;
|
||||
pinctrl-names = "default";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
magnetometer@2c {
|
||||
compatible = "qstcorp,qmc6308";
|
||||
reg = <0x2c>;
|
||||
vdd-supply = <&vreg_l10b>;
|
||||
mount-matrix = "0", "-1", "0",
|
||||
"1", "0", "0",
|
||||
"0", "0", "1";
|
||||
};
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
|
|
@ -1091,6 +1119,14 @@
|
|||
<13 1>, /* NC */
|
||||
<63 2>; /* WLAN UART */
|
||||
|
||||
sensor_i2c_default: sensor-i2c-default-state {
|
||||
/* SDA, SCL; external pull-ups to vreg_l10b */
|
||||
pins = "gpio153", "gpio154";
|
||||
function = "gpio";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
ts_active: ts-irq-active-state {
|
||||
pins = "gpio19";
|
||||
function = "gpio";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue