On Sun, Oct 11, 2026 at 07:50:10PM +0200, Aleksandrs Vinarskis wrote:
> + io-channels = <&pmk8550_vadc ADC5_GEN3_AMUX3_GPIO_100K_PU(1)>,
> + <&pmk8550_vadc ADC5_GEN3_AMUX4_GPIO_100K_PU(1)>,
These two should be AMUX1_GPIO and AMUX2_GPIO. My unit (BIOS 2.14.0)
shows what Liviu reported [1]: 0x14c (lpddr5_therm) reads 130.048 C from
boot on, and that is the value the EC is sent.
The Windows ADC configuration answers Liviu's question, wrong channel or
missing pin configuration. In ADC1 from your qcom-aeob-dumps
(dell-xps-9345/ADC1.json), the channel table puts the seven board
thermistors on SID 1, all with the 100k pull-up:
SYS_THERM1 0x4a AMUX1_GPIO
SYS_THERM2 0x4b AMUX2_GPIO
SYS_THERM3 0x44 AMUX1_THM
SYS_THERM4 0x45 AMUX2_THM
SYS_THERM5 0x46 AMUX3_THM
SYS_THERM6 0x47 AMUX4_THM
SYS_THERM7 0x48 AMUX5_THM
Its GPIO table sets up only two pins as ADC inputs: PM8550 GPIO3 on
channels 0x0a/0x4a and GPIO4 on 0x0b/0x4b. hamoa-pmics.dtsi already
puts those two pins in high impedance for the VADC and defines
channel@14a and channel@14b. Nothing in ADC1 uses AMUX3 or AMUX4 GPIO.
sys_therm2 to sys_therm6 here are SYS_THERM3 to SYS_THERM7, so
sys_thermN is SYS_THERM(N+1), and sys_therm0/1 are 0x14a/0x14b. The
labels fit too: Liviu found the left charger thermistor on AMUX2 GPIO
[2], and sys_therm1 is usb_charger_left_therm.
Readings on a 7.3-rc6 based kernel, idle:
0x14a 40.6 C 0x14c 130.0 C (constant)
0x14b 34.6 C 0x14d 37.0 C
AMUX1-5 THM 34.6 to 40.5 C
> + sys_therm0: channel@14c {
> + reg = <ADC5_GEN3_AMUX3_GPIO_100K_PU(1)>;
[...]
> + sys_therm1: channel@14d {
> + reg = <ADC5_GEN3_AMUX4_GPIO_100K_PU(1)>;
With the change below on a v7.3-rc7 based kernel, sys_therm0 and
sys_therm1 read 45.4 C and 41.0 C, next to 38.2 to 46.8 C on the THM
channels:
--- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
@@ -1133,8 +1133,8 @@ embedded-controller@3b {
pinctrl-0 = <&ec_int_n_default>;
pinctrl-names = "default";
- io-channels = <&pmk8550_vadc ADC5_GEN3_AMUX3_GPIO_100K_PU(1)>,
- <&pmk8550_vadc ADC5_GEN3_AMUX4_GPIO_100K_PU(1)>,
+ io-channels = <&pmk8550_vadc ADC5_GEN3_AMUX1_GPIO_100K_PU(1)>,
+ <&pmk8550_vadc ADC5_GEN3_AMUX2_GPIO_100K_PU(1)>,
<&pmk8550_vadc ADC5_GEN3_AMUX1_THM_100K_PU(1)>,
<&pmk8550_vadc ADC5_GEN3_AMUX2_THM_100K_PU(1)>,
<&pmk8550_vadc ADC5_GEN3_AMUX3_THM_100K_PU(1)>,
@@ -1439,15 +1439,15 @@ rtmr0_1p8_reg_en: rtmr0-1p8-reg-en-state {
};
&pmk8550_vadc {
- sys_therm0: channel@14c {
- reg = <ADC5_GEN3_AMUX3_GPIO_100K_PU(1)>;
+ sys_therm0: channel@14a {
+ reg = <ADC5_GEN3_AMUX1_GPIO_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "lpddr5_therm";
};
- sys_therm1: channel@14d {
- reg = <ADC5_GEN3_AMUX4_GPIO_100K_PU(1)>;
+ sys_therm1: channel@14b {
+ reg = <ADC5_GEN3_AMUX2_GPIO_100K_PU(1)>;
qcom,hw-settle-time = <200>;
qcom,ratiometric;
label = "usb_charger_left_therm";
[1] https://lore.kernel.org/r/[email protected]
[2] https://lore.kernel.org/r/[email protected]
Michael