From nobody Wed Apr 1 22:37:57 2026 Received: from mail-07.mail-europe.com (mail-0701.mail-europe.com [51.83.17.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7B33438C2B4; Wed, 1 Apr 2026 07:34:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=51.83.17.38 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028849; cv=none; b=ZkZ0bN7EKWSWiRhSlcHS+qv7dCIMPmUeJ/J+sPYwsVAlFIpzTFCkfXwO4klGl3qI6fKcTS4bxbs8fwHFBQ0/t5gEoBO1kYv6vHZnL4u+aIU+d4voZF+aVW7yjCXJ0G4LIlx7oAoD9p7YydY4ivFRLXnSYhTyVrzNk6WxvnLL7Vw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028849; c=relaxed/simple; bh=HDf6IioTKtM2Yd1tpJQvPhXmt4BYp2pPyNCv8v9anSY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nNY0zHFG9Z2S54n9ycEc9ulmQsIv5wjUOEIB4YlUStFaKV7+wEFeeyNh2y9XNybF+NYwnhUeiYtPvmHhJkUdxJTGqorTNBYVGFX4nkhtxNS5K8aOBsp2KdFhkabTZHtB9lrRzcrlT8NobDbC7Iu5wrkZsr/tbfZqACU/cHSwVq0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com; spf=fail smtp.mailfrom=vinarskis.com; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b=0nD6GMGM; arc=none smtp.client-ip=51.83.17.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b="0nD6GMGM" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vinarskis.com; s=protonmail2; t=1775028831; x=1775288031; bh=Lwc3kbdW5NBfrKmN1gAR7uqJolBzBAqp7UUOoy4W31A=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=0nD6GMGMy4NktB9BIBAvXj6K/fJmg+VI2kQj/7yCdwghvZU4wxjX12UX0exaygZjN vhEoBiG7d/koav0T25gphud4b0mZG2JQBXcbIZir1MHhHwUzjjlbCBnetY+CLZmKas gKjs5gzZ5Oaeu7NIo309j87petARyMBQgoyubt3VC/g/uwfYAiWSgY3RXYHEQexzQk 1juF9uMo4H/eXInlhHSpj/wT4/ESpEKMiCf5tka6rd87D0rajKunYTd7AsKawOIeWz EGvYtxqhgFAtXDGcrDfiyLESBN8HBzfajA3mSowe6TzFFVKWfntn9mncTGRHR4A8UI pzXtRwHVVCqLw== X-Pm-Submission-Id: 4flxYn3kJ7z1DDLb gpg: Signature made Wed 01 Apr 2026 09:30:46 AM CEST gpg: using EDDSA key 8BFCF5668AA29DAD00D728F6EDAE71A20F500310 gpg: Good signature from "Aleksandrs Vinarskis " [ultimate] gpg: aka "Aleksandrs Vinarskis " [ultimate] From: Aleksandrs Vinarskis Date: Wed, 01 Apr 2026 09:33:10 +0200 Subject: [PATCH 1/4] dt-bindings: platform: introduce EC for Dell XPS 13 9345 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260401-dell-xps-9345-ec-v1-1-afa5cacd49be@vinarskis.com> References: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> In-Reply-To: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, laurentiu.tudor1@dell.com, Abel Vesa , Tobias Heider , Val Packett X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4404; i=alex@vinarskis.com; h=from:subject:message-id; bh=HDf6IioTKtM2Yd1tpJQvPhXmt4BYp2pPyNCv8v9anSY=; b=owGbwMvMwCX2dl3hIv4AZgHG02pJDJlnTkW7pLZU8pVvFX5V33bw/vmNx1w3iy3j9FLQSc4pW LyUy/5tRykLgxgXg6yYIkv3n69pXYvmrmW4rvENZg4rE8gQBi5OAZjIJTuG/2keX3ymKkdsVm1K Efh/4FXv9o+HbohJWnC8KrgqO0+vtobhN7uggxhL8A/FoI7c0lNb1cz+c4Yb8M/qFiq1YxC79fA bBwA= X-Developer-Key: i=alex@vinarskis.com; a=openpgp; fpr=8E21FAE2D2967BB123303E8C684FD4BA28133815 Add bindings for Embedded Controller (EC) in Dell XPS 13 9345 (platform codename 'tributo'). It may be partially or fully compatible with EC found in Snapdragon-based Dell Latitude, Inspiron ('thena'). Signed-off-by: Aleksandrs Vinarskis --- .../embedded-controller/dell,xps13-9345-ec.yaml | 86 ++++++++++++++++++= ++++ MAINTAINERS | 5 ++ 2 files changed, 91 insertions(+) diff --git a/Documentation/devicetree/bindings/embedded-controller/dell,xps= 13-9345-ec.yaml b/Documentation/devicetree/bindings/embedded-controller/del= l,xps13-9345-ec.yaml new file mode 100644 index 0000000000000000000000000000000000000000..30dc6dcd8c9f0312fdb4eafdef9= 6bf0ce4975798 --- /dev/null +++ b/Documentation/devicetree/bindings/embedded-controller/dell,xps13-9345= -ec.yaml @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/embedded-controller/dell,xps13-9345-ec.= yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Dell XPS 13 9345 Embedded Controller + +maintainers: + - Aleksandrs Vinarskis + +description: + The Dell XPS 13 9345 has an Embedded Controller (EC) which handles therm= al and power + management. It is communicating with SoC over multiple i2c busses. Parti= cular driver + is for EC subsystem that handles fan speed control, thermal shutdown, pe= ripherals + supply including trackpad, touch-row, display. + +properties: + compatible: + const: dell,xps13-9345-ec + + reg: + const: 0x3b + + interrupts: + maxItems: 1 + + io-channels: + description: + ADC channels connected to the 7 onboard thermistors on PMK8550. + EC requires frequent thermal readings of these channels to perform + automated fan speed control. + items: + - description: ADC channel for sys_therm0 + - description: ADC channel for sys_therm1 + - description: ADC channel for sys_therm2 + - description: ADC channel for sys_therm3 + - description: ADC channel for sys_therm4 + - description: ADC channel for sys_therm5 + - description: ADC channel for sys_therm6 + + io-channel-names: + items: + - const: sys_therm0 + - const: sys_therm1 + - const: sys_therm2 + - const: sys_therm3 + - const: sys_therm4 + - const: sys_therm5 + - const: sys_therm6 + +required: + - compatible + - reg + - interrupts + - io-channels + - io-channel-names + +additionalProperties: false + +examples: + - |+ + #include + #include + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + embedded-controller@3b { + compatible =3D "dell,xps13-9345-ec"; + reg =3D <0x3b>; + interrupts-extended =3D <&tlmm 66 IRQ_TYPE_LEVEL_LOW>; + + io-channels =3D <&pmk8550_vadc PM8350_ADC7_GPIO3_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_GPIO4_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM5_100K_PU(1)>; + io-channel-names =3D "sys_therm0", "sys_therm1", "sys_therm2", + "sys_therm3", "sys_therm4", "sys_therm5", + "sys_therm6"; + }; + }; +... diff --git a/MAINTAINERS b/MAINTAINERS index ff935e197c2153a9c52c94d6ead1df54543a36d4..fe3f2fc4fbc087d8041f97708fb= b93722f7d1882 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7236,6 +7236,11 @@ S: Maintained F: Documentation/ABI/testing/sysfs-class-firmware-attributes F: drivers/platform/x86/dell/dell-wmi-sysman/ =20 +DELL XPS EMBEDDED CONTROLLER DRIVER +M: Aleksandrs Vinarskis +S: Maintained +F: Documentation/devicetree/bindings/embedded-controller/dell,xps13-9345-e= c.yaml + DELTA AHE-50DC FAN CONTROL MODULE DRIVER M: Zev Weiss L: linux-hwmon@vger.kernel.org --=20 2.53.0 From nobody Wed Apr 1 22:37:57 2026 Received: from mail-106111.protonmail.ch (mail-106111.protonmail.ch [79.135.106.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0FC2B37B007 for ; Wed, 1 Apr 2026 07:33:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=79.135.106.111 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028841; cv=none; b=jzJ1jEA8qgs6/1Eshn6KX7zOTdRtZXagP71cva19u4BbSnf0tjMo1MNxGwp49yhYiWL9lT+r0MFOEzwGmvdiP6LRI3h7axEjkdaRb2ME4M3i/Ri+DLz/r8nIud52vYBICOaa/+EUi8cQpoKAptrNZ8hf0BNRW4cc6CceSf07vdM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028841; c=relaxed/simple; bh=lLj4Xc+UftwrZsK2MCQpCga4bmKt9EEUkpkkdsD2nOc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WIF7EV+qlWOmGBQ77hjDCizyhNi5PXAXTRyHKfUvCS5qm1kLrE0NDgIu6MfHxM/5+X/VxGQY84/m2PIz2+LE416AhY6UBFOcXDzxRLcndLP0Aslt4LgrvwayRSlK1ofETTvC+0a8xoIR++q5HysSyjhW0dyOaT5hp753P0Vuo1Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com; spf=pass smtp.mailfrom=vinarskis.com; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b=f0LYuS1w; arc=none smtp.client-ip=79.135.106.111 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b="f0LYuS1w" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vinarskis.com; s=protonmail2; t=1775028833; x=1775288033; bh=Hf/LAvcljlUBsXvQy4R0nX66XX6Cl+XJpVnTXqWigo8=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=f0LYuS1wwHbec6j76f/UCy/Ar4/ypTlliK8nvqAm/pG+I1PFfyQNv8j5b199egihg 3/jodwWgAccUBOQkYVry4lyqVSxGyrpTjChuBT29Np9wpyKF3V3Ip34nYkTYn4inUp yAJgejBAcWi8TidUDbeR1qclsr9UU/W8H4lVNJ+rcpfmiD6fQVMuo8DBkM8gGWj9pT S4yF2Fs5IyPwIQXGlMeabWECSWVe79+IxXZH8d37gu1wFX0RiMDnSMBa5lyDJCv/1W C5NYj7bm2Y/eEf6WlkhoDXinweh4J6p99El51fOoI5Ms7Q25fc5aM2STI57Y31bbov q1KcY4U7vz0UQ== X-Pm-Submission-Id: 4flxYq1WMWz1DDLW gpg: Signature made Wed 01 Apr 2026 09:30:46 AM CEST gpg: using EDDSA key 8BFCF5668AA29DAD00D728F6EDAE71A20F500310 gpg: Good signature from "Aleksandrs Vinarskis " [ultimate] gpg: aka "Aleksandrs Vinarskis " [ultimate] From: Aleksandrs Vinarskis Date: Wed, 01 Apr 2026 09:33:11 +0200 Subject: [PATCH 2/4] platform: arm64: dell-xps-ec: new driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260401-dell-xps-9345-ec-v1-2-afa5cacd49be@vinarskis.com> References: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> In-Reply-To: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, laurentiu.tudor1@dell.com, Abel Vesa , Tobias Heider , Val Packett X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=11550; i=alex@vinarskis.com; h=from:subject:message-id; bh=lLj4Xc+UftwrZsK2MCQpCga4bmKt9EEUkpkkdsD2nOc=; b=owGbwMvMwCX2dl3hIv4AZgHG02pJDJlnTkVPqZ5yaado9rZp2y48L/i/8+Da4i8L64Rcgy0+T jP1PX7yckcpC4MYF4OsmCJL95+vaV2L5q5luK7xDWYOKxPIEAYuTgGYSII7w/+QY9cvrlVWfJiS V1tTKp4bLM/ONyGto+iqvm90nYHc7lRGhsWNZ3juKG2X+bpF3E7hYJqC1Yspj/7cdDTPZvar3HT 2OgcA X-Developer-Key: i=alex@vinarskis.com; a=openpgp; fpr=8E21FAE2D2967BB123303E8C684FD4BA28133815 Introduce EC driver for Dell XPS 13 9345 (codename 'tributo') which may partially of fully compatible with Snapdragon-based Dell Latitude, Inspiron ('thena'). Primary function of this driver is unblock EC's thermal management, specifically to provide it with necessary information to control device fans, peripherals power. The driver was developed primarily by analyzing ACPI DSDT's _DSM and i2c dumps of communication between SoC and EC. Changes to Windows driver's behavior include increasing temperature feed loop from ~50ms to 100ms here. While Xps's EC is rather complex and controls practically all device peripherals including touch row's brightness and special keys such as mic mute, these do not go over this particular i2c interface. Not yet implemented features: - On lid-close IRQ event is registered. Windows performs what to appears to be thermistor constants readout, though its not obvious what it used for. - According to ACPI's _DSM there is a method to readout fans' RPM. - Initial thermistor constants were sniffed from Windows, these can be likely fine tuned for better cooling performance. - There is additional temperature reading that Windows sents to EC but more rare than others, likely SoC T_j / TZ98 or TZ4. This is the only thermal zone who's reading can exceed 115C without triggering thermal shutdown. - Given similarities between 'tributo' and 'thena' platforms, including EC i2c address, driver can be potentially extended to support both. Signed-off-by: Aleksandrs Vinarskis --- MAINTAINERS | 1 + drivers/platform/arm64/Kconfig | 12 ++ drivers/platform/arm64/Makefile | 1 + drivers/platform/arm64/dell-xps-ec.c | 269 +++++++++++++++++++++++++++++++= ++++ 4 files changed, 283 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index fe3f2fc4fbc087d8041f97708fbb93722f7d1882..f82c7f6c7377d3f2ff0ae1be263= d854749541f03 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7240,6 +7240,7 @@ DELL XPS EMBEDDED CONTROLLER DRIVER M: Aleksandrs Vinarskis S: Maintained F: Documentation/devicetree/bindings/embedded-controller/dell,xps13-9345-e= c.yaml +F: drivers/platform/arm64/dell-xps-ec.c =20 DELTA AHE-50DC FAN CONTROL MODULE DRIVER M: Zev Weiss diff --git a/drivers/platform/arm64/Kconfig b/drivers/platform/arm64/Kconfig index 10f905d7d6bfa5fad30a0689d3a20481268c781e..0bc8f016032bb05cb3a7cc50bdf= 1092da04153bc 100644 --- a/drivers/platform/arm64/Kconfig +++ b/drivers/platform/arm64/Kconfig @@ -33,6 +33,18 @@ config EC_ACER_ASPIRE1 laptop where this information is not properly exposed via the standard ACPI devices. =20 +config EC_DELL_XPS + tristate "Dell XPS 9345 Embedded Controller driver" + depends on ARCH_QCOM || COMPILE_TEST + depends on I2C + depends on IIO + help + Driver for the Embedded Controller in the Qualcomm Snapdragon-based + Dell XPS 13 9345, which handles thermal management and fan speed + control. + + Say M or Y here to include this support. + config EC_HUAWEI_GAOKUN tristate "Huawei Matebook E Go Embedded Controller driver" depends on ARCH_QCOM || COMPILE_TEST diff --git a/drivers/platform/arm64/Makefile b/drivers/platform/arm64/Makef= ile index 60c131cff6a15bb51a49c9edab95badf513ee0f6..6768dc6c2310837374e67381cfc= 729bed1fdaaef 100644 --- a/drivers/platform/arm64/Makefile +++ b/drivers/platform/arm64/Makefile @@ -6,6 +6,7 @@ # =20 obj-$(CONFIG_EC_ACER_ASPIRE1) +=3D acer-aspire1-ec.o +obj-$(CONFIG_EC_DELL_XPS) +=3D dell-xps-ec.o obj-$(CONFIG_EC_HUAWEI_GAOKUN) +=3D huawei-gaokun-ec.o obj-$(CONFIG_EC_LENOVO_YOGA_C630) +=3D lenovo-yoga-c630.o obj-$(CONFIG_EC_LENOVO_THINKPAD_T14S) +=3D lenovo-thinkpad-t14s.o diff --git a/drivers/platform/arm64/dell-xps-ec.c b/drivers/platform/arm64/= dell-xps-ec.c new file mode 100644 index 0000000000000000000000000000000000000000..5ea8f30931d8b61acbb948d8617= dde3681fb8de3 --- /dev/null +++ b/drivers/platform/arm64/dell-xps-ec.c @@ -0,0 +1,269 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2026, Aleksandrs Vinarskis + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DELL_XPS_EC_SUSPEND_CMD 0xb9 +#define DELL_XPS_EC_SUSPEND_MSG_LEN 64 + +#define DELL_XPS_EC_TEMP_CMD0 0xfb +#define DELL_XPS_EC_TEMP_CMD1 0x20 +#define DELL_XPS_EC_TEMP_CMD3 0x02 +#define DELL_XPS_EC_TEMP_MSG_LEN 6 +#define DELL_XPS_EC_TEMP_INTERVAL_MS 100 + +/* + * Format: + * - header/unknown (2 bytes) + * - per-thermistor entries (3 bytes): thermistor_id, param1, param2 + */ +static const u8 dell_xps_ec_thermistor_profile[] =3D { + 0xff, 0x54, + 0x01, 0x00, 0x2b, /* sys_therm0 */ + 0x02, 0x44, 0x2a, /* sys_therm1 */ + 0x03, 0x44, 0x2b, /* sys_therm2 */ + 0x04, 0x44, 0x28, /* sys_therm3 */ + 0x05, 0x55, 0x2a, /* sys_therm4 */ + 0x06, 0x44, 0x26, /* sys_therm5 */ + 0x07, 0x44, 0x2b, /* sys_therm6 */ +}; + +/* + * Mapping from IIO channel name to EC command byte + */ +static const struct { + const char *name; + u8 cmd; +} dell_xps_ec_therms[] =3D { + /* TODO: 0x01 is sent only occasionally, likely TZ98 or TZ4 */ + { "sys_therm0", 0x02 }, + { "sys_therm1", 0x03 }, + { "sys_therm2", 0x04 }, + { "sys_therm3", 0x05 }, + { "sys_therm4", 0x06 }, + { "sys_therm5", 0x07 }, + { "sys_therm6", 0x08 }, +}; + +struct dell_xps_ec { + struct device *dev; + struct i2c_client *client; + struct iio_channel *therm_channels[ARRAY_SIZE(dell_xps_ec_therms)]; + struct delayed_work temp_work; +}; + +static int dell_xps_ec_suspend_cmd(struct dell_xps_ec *ec, bool suspend) +{ + u8 buf[DELL_XPS_EC_SUSPEND_MSG_LEN] =3D {}; + int ret; + + buf[0] =3D DELL_XPS_EC_SUSPEND_CMD; + buf[1] =3D suspend ? 0x01 : 0x00; + /* bytes 2..63 remain zero */ + + ret =3D i2c_master_send(ec->client, buf, sizeof(buf)); + if (ret < 0) + return ret; + + return 0; +} + +static int dell_xps_ec_send_temp(struct dell_xps_ec *ec, u8 cmd_byte, + int milli_celsius) +{ + u8 buf[DELL_XPS_EC_TEMP_MSG_LEN]; + u16 deci_celsius; + int ret; + + /* Convert milli-Celsius to deci-Celsius (Celsius * 10) */ + deci_celsius =3D milli_celsius / 100; + + buf[0] =3D DELL_XPS_EC_TEMP_CMD0; + buf[1] =3D DELL_XPS_EC_TEMP_CMD1; + buf[2] =3D cmd_byte; + buf[3] =3D DELL_XPS_EC_TEMP_CMD3; + buf[4] =3D deci_celsius & 0xff; /* LSB */ + buf[5] =3D (deci_celsius >> 8) & 0xff; /* MSB */ + + ret =3D i2c_master_send(ec->client, buf, sizeof(buf)); + if (ret < 0) + return ret; + + return 0; +} + +static void dell_xps_ec_temp_work_fn(struct work_struct *work) +{ + struct dell_xps_ec *ec =3D container_of(work, struct dell_xps_ec, + temp_work.work); + int val, ret, i; + + for (i =3D 0; i < ARRAY_SIZE(dell_xps_ec_therms); i++) { + if (!ec->therm_channels[i]) + continue; + + ret =3D iio_read_channel_processed(ec->therm_channels[i], &val); + if (ret < 0) { + dev_err_ratelimited(ec->dev, + "Failed to read thermistor %s: %d\n", + dell_xps_ec_therms[i].name, ret); + continue; + } + + ret =3D dell_xps_ec_send_temp(ec, dell_xps_ec_therms[i].cmd, val); + if (ret < 0) { + dev_err_ratelimited(ec->dev, + "Failed to send temp for %s: %d\n", + dell_xps_ec_therms[i].name, ret); + } + } + + schedule_delayed_work(&ec->temp_work, + msecs_to_jiffies(DELL_XPS_EC_TEMP_INTERVAL_MS)); +} + +static irqreturn_t dell_xps_ec_irq_handler(int irq, void *data) +{ + struct dell_xps_ec *ec =3D data; + + /* + * TODO: IRQ is fired on lid-close. Follow Windows example to read out + * the thermistor thresholds and potentially fan speeds. + */ + dev_info_ratelimited(ec->dev, "IRQ triggered! (irq=3D%d)\n", irq); + + return IRQ_HANDLED; +} + +static int dell_xps_ec_probe(struct i2c_client *client) +{ + struct device *dev =3D &client->dev; + struct dell_xps_ec *ec; + int ret, i; + + ec =3D devm_kzalloc(dev, sizeof(*ec), GFP_KERNEL); + if (!ec) + return -ENOMEM; + + ec->dev =3D dev; + ec->client =3D client; + i2c_set_clientdata(client, ec); + + /* Set default thermistor profile */ + ret =3D i2c_master_send(client, dell_xps_ec_thermistor_profile, + sizeof(dell_xps_ec_thermistor_profile)); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to set thermistor profile\n"); + + /* Get IIO channels for thermistors */ + for (i =3D 0; i < ARRAY_SIZE(dell_xps_ec_therms); i++) { + ec->therm_channels[i] =3D devm_iio_channel_get(dev, + dell_xps_ec_therms[i].name); + if (IS_ERR(ec->therm_channels[i])) { + ret =3D PTR_ERR(ec->therm_channels[i]); + ec->therm_channels[i] =3D NULL; + if (ret =3D=3D -EPROBE_DEFER) + return ret; + dev_warn(dev, "Thermistor %s not available: %d\n", + dell_xps_ec_therms[i].name, ret); + } + } + + /* Start periodic temperature reporting */ + ret =3D devm_delayed_work_autocancel(dev, &ec->temp_work, + dell_xps_ec_temp_work_fn); + if (ret) + return ret; + schedule_delayed_work(&ec->temp_work, + msecs_to_jiffies(DELL_XPS_EC_TEMP_INTERVAL_MS)); + dev_info(dev, "Started periodic temperature reporting to EC every %d ms\n= ", + DELL_XPS_EC_TEMP_INTERVAL_MS); + + /* Request IRQ for EC events */ + ret =3D devm_request_threaded_irq(dev, client->irq, NULL, + dell_xps_ec_irq_handler, + IRQF_ONESHOT, dev_name(dev), ec); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to request IRQ\n"); + + return 0; +} + +/* + * Notify EC of suspend + * + * This will: + * - Ramp down the fans + * - Cut power to display/trackpad/keyboard/touch row + * - Periodically (?) power them back, such that wake-up source still works + */ +static int dell_xps_ec_suspend(struct device *dev) +{ + struct dell_xps_ec *ec =3D dev_get_drvdata(dev); + + cancel_delayed_work_sync(&ec->temp_work); + + return dell_xps_ec_suspend_cmd(ec, true); +} + +/* + * Notify EC of resume + * + * This will undo the suspend actions + * Without the resume signal, device would wake up but be forced back into + * suspend by EC within seconds + */ +static int dell_xps_ec_resume(struct device *dev) +{ + struct dell_xps_ec *ec =3D dev_get_drvdata(dev); + int ret; + + ret =3D dell_xps_ec_suspend_cmd(ec, false); + if (ret) + return ret; + + schedule_delayed_work(&ec->temp_work, + msecs_to_jiffies(DELL_XPS_EC_TEMP_INTERVAL_MS)); + return 0; +} + +static const struct of_device_id dell_xps_ec_of_match[] =3D { + { .compatible =3D "dell,xps13-9345-ec" }, + {} +}; +MODULE_DEVICE_TABLE(of, dell_xps_ec_of_match); + +static const struct i2c_device_id dell_xps_ec_i2c_id[] =3D { + { "dell-xps-ec" }, + {} +}; +MODULE_DEVICE_TABLE(i2c, dell_xps_ec_i2c_id); + +static const struct dev_pm_ops dell_xps_ec_pm_ops =3D { + SYSTEM_SLEEP_PM_OPS(dell_xps_ec_suspend, dell_xps_ec_resume) +}; + +static struct i2c_driver dell_xps_ec_driver =3D { + .driver =3D { + .name =3D "dell-xps-ec", + .of_match_table =3D dell_xps_ec_of_match, + .pm =3D &dell_xps_ec_pm_ops, + }, + .probe =3D dell_xps_ec_probe, + .id_table =3D dell_xps_ec_i2c_id, +}; +module_i2c_driver(dell_xps_ec_driver); + +MODULE_AUTHOR("Aleksandrs Vinarskis "); +MODULE_DESCRIPTION("Dell XPS 13 9345 Embedded Controller"); +MODULE_LICENSE("GPL"); --=20 2.53.0 From nobody Wed Apr 1 22:37:57 2026 Received: from mail-06.mail-europe.com (mail-06.mail-europe.com [85.9.210.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0927F38E5C7; Wed, 1 Apr 2026 07:34:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=85.9.210.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028851; cv=none; b=FEOvZIUsmBW5eUDsKrO33D5Pa2EHCQ4lCVISXecWvtDKEBWz7D+QpJbJ+g1lEYXDGb7HZcPJq1W0td1XWtn0txF9fyOoCSuYeBFJmmccVkmGT4qqzxPbKLrdkfmEaMYqFqJnUH8jCLbaEziB9eKRNmX/qidPV9yC/ojiFQqybus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028851; c=relaxed/simple; bh=9sjSmF37Jj1/yKIEQuiZkUqQJHlqS7e8NQWGB6S5478=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Kqs3UU/igNAOVZ8isc7O07ADFdOBWvMQqo8OyWNUJRCrUvlV0ByXnwCfQMhdyAm4Nbaes2F+g+c6ZOgQx5up2oHjgjfe+u8AwTC6HN5Dr1ZpMfluuBVnJWljw09pihwsJtwemIbGGkfVMEQ85GCtwSWVGW2u0LlGvlNkCroyYGo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com; spf=pass smtp.mailfrom=vinarskis.com; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b=LN5Eyjhv; arc=none smtp.client-ip=85.9.210.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b="LN5Eyjhv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vinarskis.com; s=protonmail2; t=1775028834; x=1775288034; bh=TcQPmkPisSS3l4yiWGk1b3+vCnrbkgc767xf1rlFq9c=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=LN5EyjhvQKDoij7n+z5A8aQ9nRLdv92fnyCKc5RUTwGl67iTfBnRUb+e+QzTZmHO6 t9aAQ2zT5EoYKr/iscBwxUUa1mTxxQ/P92nRgxDFZQZSrjPJNmdm8k6lrlDHDXVqy1 jXu7p4TfkVIoiFKEuzDq2xQKEVcPt5/6WiUp8i78D/fcn/Bxr14CEwQKrtAYHNi/P5 n4lD9AtR3sE65yHoU10qXrnbsWs2m1I7f9IzDd6yhpC1E+IGi4HGfzyZDg+BsRxvUr R/v31VCG8EaYxQ5hQzB6MUbXk0L3aypWClPwrZuQpoAICCXwuKTKIUYoE8qOH7HSFl 1QvILCzD0EqOA== X-Pm-Submission-Id: 4flxYs3pRQz1DDLK gpg: Signature made Wed 01 Apr 2026 09:30:46 AM CEST gpg: using EDDSA key 8BFCF5668AA29DAD00D728F6EDAE71A20F500310 gpg: Good signature from "Aleksandrs Vinarskis " [ultimate] gpg: aka "Aleksandrs Vinarskis " [ultimate] From: Aleksandrs Vinarskis Date: Wed, 01 Apr 2026 09:33:12 +0200 Subject: [PATCH 3/4] arm64: dts: qcom: hamoa-pmics: define VADC for pmk8550 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260401-dell-xps-9345-ec-v1-3-afa5cacd49be@vinarskis.com> References: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> In-Reply-To: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, laurentiu.tudor1@dell.com, Abel Vesa , Tobias Heider , Val Packett X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1094; i=alex@vinarskis.com; h=from:subject:message-id; bh=9sjSmF37Jj1/yKIEQuiZkUqQJHlqS7e8NQWGB6S5478=; b=owGbwMvMwCX2dl3hIv4AZgHG02pJDJlnTkW/DT72l8v3+Pl8N4VtmaUubBvM5bv3e6Se8tjLq +CYH8PSUcrCIMbFICumyNL952ta16K5axmua3yDmcPKBDKEgYtTACaSKczIMEP0YWbAncM9PR0J 3zKOX1Rx4tNT3SkyVY+9THhSn4XGD4b/ATmC0mZhe+3/JK8992Hat4yESPWkT2dOJeqfdtqX+8y CCQA= X-Developer-Key: i=alex@vinarskis.com; a=openpgp; fpr=8E21FAE2D2967BB123303E8C684FD4BA28133815 Follow pattern of pmk8350 to add missing pmk8550 VADC to hamoa. Register address of 0x9000 matches example schema for spmi-adc5-gen3. Signed-off-by: Aleksandrs Vinarskis --- arch/arm64/boot/dts/qcom/hamoa-pmics.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/hamoa-pmics.dtsi b/arch/arm64/boot/dt= s/qcom/hamoa-pmics.dtsi index 6a31a0adf8be472badea502a916cdbc9477e9f2b..58c0dd3ccca70bce3424f83bfd5= a52b1fef35c2e 100644 --- a/arch/arm64/boot/dts/qcom/hamoa-pmics.dtsi +++ b/arch/arm64/boot/dts/qcom/hamoa-pmics.dtsi @@ -218,6 +218,17 @@ pon_resin: resin { }; }; =20 + pmk8550_vadc: adc@9000 { + compatible =3D "qcom,spmi-adc5-gen3"; + reg =3D <0x9000>, <0x9100>; + #address-cells =3D <1>; + #size-cells =3D <0>; + interrupts =3D <0x0 0x90 0x1 IRQ_TYPE_EDGE_RISING>, + <0x0 0x91 0x1 IRQ_TYPE_EDGE_RISING>; + #io-channel-cells =3D <1>; + #thermal-sensor-cells =3D <1>; + }; + pmk8550_rtc: rtc@6100 { compatible =3D "qcom,pmk8350-rtc"; reg =3D <0x6100>, <0x6200>; --=20 2.53.0 From nobody Wed Apr 1 22:37:57 2026 Received: from mail-08.mail-europe.com (mail-08.mail-europe.com [57.129.93.249]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB29238BF67; Wed, 1 Apr 2026 07:34:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=57.129.93.249 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028848; cv=none; b=Kuy+JWfV7GgdjozfKHcpuPnHNnSiuHxSn9xJU5mJkmPfjALjES0aJqUFzFbK5meV0zqyJnXRsVrnhvGwuoObSvOuLIDWlkueOJNYD8++pxY7nARBoRJCik0+s05wMvfhARc65LC6r5BKH3QNl4P85UH1RGxJ3u95COC0ZOFqgdc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775028848; c=relaxed/simple; bh=60K/Uy8LU9zf98IRPCjLh2551vSDeukTLK2XSg3KdFw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hwuxNKxEsRNa2E5/hVPKs/KJhBFNTtQ+l68qFk/IokYu7TqYeHxOsLJm2pkZVW6yuslC/JkdOzeC0XYns13psSJtYT1UIeeshp9xHVItrlKCyrDjvC0Eeh4ofWmXeMAtF+MK9S71eMAIqot3bZDNzhsNAO6Z7RzLetlyqU+bCD4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com; spf=pass smtp.mailfrom=vinarskis.com; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b=Md3i3u7k; arc=none smtp.client-ip=57.129.93.249 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vinarskis.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vinarskis.com header.i=@vinarskis.com header.b="Md3i3u7k" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vinarskis.com; s=protonmail2; t=1775028835; x=1775288035; bh=3cX2RM0lGaVVwCSJiPc5We3uqoBIIsjre4hSZZ55meA=; h=From:Date:Subject:Message-Id:References:In-Reply-To:To:Cc:From:To: Cc:Date:Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=Md3i3u7k84zPIbmyEQdyoQ7b24uu/iyBdfUdOseBvhapFgSNeZYaV0bMWykGfWDDv VT/fWlMaT4FGdvOgTTFc8SV/gPzctndZzURAcX+xymFbVmgKG8UHMGMLOdOKuBwFdV OsnsOBmDHetm4tLoSQzCLWN0zKIHep5VKISlW6yzPMHVN/aIzxXfxK2ntKDxjV5bq4 VbO3+e9EBWLFYA5B2i5/wpNj6BcEdZQ4ShT1vrbt1B/Yn87hULuL45mOSTMbF5u1aR Hty9WA2t78rq2M6nFU97ttqqnBkzomk0VyI31Dsl67jRWWo0aCdq+wtCJebvUzTjZ4 THmnBVfpQRjEg== X-Pm-Submission-Id: 4flxYt4nyxz1DDLb gpg: Signature made Wed 01 Apr 2026 09:30:47 AM CEST gpg: using EDDSA key 8BFCF5668AA29DAD00D728F6EDAE71A20F500310 gpg: Good signature from "Aleksandrs Vinarskis " [ultimate] gpg: aka "Aleksandrs Vinarskis " [ultimate] From: Aleksandrs Vinarskis Date: Wed, 01 Apr 2026 09:33:13 +0200 Subject: [PATCH 4/4] arm64: dts: qcom: x1e80100-dell-xps13-9345: introduce EC Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260401-dell-xps-9345-ec-v1-4-afa5cacd49be@vinarskis.com> References: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> In-Reply-To: <20260401-dell-xps-9345-ec-v1-0-afa5cacd49be@vinarskis.com> To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Bryan O'Donoghue Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, laurentiu.tudor1@dell.com, Abel Vesa , Tobias Heider , Val Packett X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4046; i=alex@vinarskis.com; h=from:subject:message-id; bh=60K/Uy8LU9zf98IRPCjLh2551vSDeukTLK2XSg3KdFw=; b=owGbwMvMwCX2dl3hIv4AZgHG02pJDJlnTkXz1eQ+NeY7WfT7yAdDH66daZa3hb+Ensk+tl0te /7zRzqlHaUsDGJcDLJiiizdf76mdS2au5bhusY3mDmsTCBDGLg4BeAiqQz/ix1W+7+Uee4vEfgr aELujvtn/FKV7h9V+xChvLxplfT0NQz/1Bef+pcx9/TnR2v4Qu7ecPjnfNwizD3iReI8bh7T08x 5TAA= X-Developer-Key: i=alex@vinarskis.com; a=openpgp; fpr=8E21FAE2D2967BB123303E8C684FD4BA28133815 Describe embedded controller, its interrupt and required thermal zones. Add EC's reset GPIO to reserved range, as triggering it during device operation leads to unrecoverable and unusable state. Signed-off-by: Aleksandrs Vinarskis --- .../boot/dts/qcom/x1e80100-dell-xps13-9345.dts | 91 ++++++++++++++++++= +++- 1 file changed, 89 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts b/arch/a= rm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts index ce7b10ea89b6dcb2a4a65c114037f4c90a4b0c6d..32e7134316709f5574d43d9edd8= 3c77fb7d23451 100644 --- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts +++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts @@ -7,6 +7,7 @@ /dts-v1/; =20 #include +#include #include #include #include @@ -759,8 +760,29 @@ retimer_ss0_con_sbu_out: endpoint { =20 &i2c5 { clock-frequency =3D <100000>; - status =3D "disabled"; - /* EC @0x3b */ + status =3D "okay"; + + embedded-controller@3b { + compatible =3D "dell,xps13-9345-ec"; + reg =3D <0x3b>; + + interrupts-extended =3D <&tlmm 66 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-0 =3D <&ec_int_n_default>; + pinctrl-names =3D "default"; + + io-channels =3D <&pmk8550_vadc PM8350_ADC7_GPIO3_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_GPIO4_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM1_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM2_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM3_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>, + <&pmk8550_vadc PM8350_ADC7_AMUX_THM5_100K_PU(1)>; + + io-channel-names =3D "sys_therm0", "sys_therm1", "sys_therm2", + "sys_therm3", "sys_therm4", "sys_therm5", + "sys_therm6"; + }; }; =20 &i2c7 { @@ -1025,6 +1047,64 @@ rtmr0_1p8_reg_en: rtmr0-1p8-reg-en-state { }; }; =20 +&pmk8550_vadc { + /* sys_therm0, around DRAM */ + channel@14c { + reg =3D ; + qcom,hw-settle-time =3D <200>; + qcom,ratiometric; + label =3D "sys_therm0"; + }; + + /* sys_therm1, around left Type-C charging controller */ + channel@14d { + reg =3D ; + qcom,hw-settle-time =3D <200>; + qcom,ratiometric; + label =3D "sys_therm1"; + }; + + /* sys_therm2, around upper-left side of motherboard */ + channel@144 { + reg =3D ; + qcom,hw-settle-time =3D <200>; + qcom,ratiometric; + label =3D "sys_therm2"; + }; + + /* sys_therm3, around right Type-C charging controller */ + channel@145 { + reg =3D ; + qcom,hw-settle-time =3D <200>; + qcom,ratiometric; + label =3D "sys_therm3"; + }; + + /* sys_therm4, around SSD connector */ + channel@146 { + reg =3D ; + qcom,hw-settle-time =3D <200>; + qcom,ratiometric; + label =3D "sys_therm4"; + }; + + /* sys_therm5, around battery charging circuit */ + channel@147 { + reg =3D ; + qcom,hw-settle-time =3D <200>; + qcom,ratiometric; + label =3D "sys_therm5"; + }; + + /* sys_therm6, around keyboard */ + channel@148 { + reg =3D ; + qcom,hw-settle-time =3D <200>; + qcom,ratiometric; + label =3D "sys_therm6"; + }; +}; + &qupv3_0 { status =3D "okay"; }; @@ -1071,6 +1151,7 @@ &smb2360_1_eusb2_repeater { =20 &tlmm { gpio-reserved-ranges =3D <44 4>, /* SPI11 (TPM) */ + <65 1>, /* EC Reset */ <76 4>, /* SPI19 (TZ Protected) */ <238 1>; /* UFS Reset */ =20 @@ -1081,6 +1162,12 @@ cam_indicator_en: cam-indicator-en-state { bias-disable; }; =20 + ec_int_n_default: ec-int-n-state { + pins =3D "gpio66"; + function =3D "gpio"; + bias-disable; + }; + edp_bl_en: edp-bl-en-state { pins =3D "gpio74"; function =3D "gpio"; --=20 2.53.0