mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
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 <alex@vinarskis.com>
Link: https://patch.msgid.link/20260801-dell-xps-9345-ec-v3-2-9f4bdb5a5dad@vinarskis.com
Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
119 lines
3.8 KiB
Plaintext
119 lines
3.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# EC-like Drivers for aarch64 based devices.
|
|
#
|
|
|
|
menuconfig ARM64_PLATFORM_DEVICES
|
|
bool "ARM64 Platform-Specific Device Drivers"
|
|
depends on ARM64 || COMPILE_TEST
|
|
default ARM64
|
|
help
|
|
Say Y here to get to see options for platform-specific device drivers
|
|
for arm64 based devices, primarily EC-like device drivers.
|
|
This option alone does not add any kernel code.
|
|
|
|
If you say N, all options in this submenu will be skipped and disabled.
|
|
|
|
if ARM64_PLATFORM_DEVICES
|
|
|
|
config EC_ACER_ASPIRE1
|
|
tristate "Acer Aspire 1 Embedded Controller driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on I2C
|
|
depends on DRM
|
|
depends on POWER_SUPPLY
|
|
depends on INPUT
|
|
help
|
|
Say Y here to enable the EC driver for the (Snapdragon-based)
|
|
Acer Aspire 1 laptop. The EC handles battery and charging
|
|
monitoring as well as some misc functions like the lid sensor
|
|
and USB Type-C DP HPD events.
|
|
|
|
This driver provides battery and AC status support for the mentioned
|
|
laptop where this information is not properly exposed via the
|
|
standard ACPI devices.
|
|
|
|
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
|
|
depends on I2C
|
|
depends on INPUT
|
|
depends on HWMON
|
|
select AUXILIARY_BUS
|
|
|
|
help
|
|
Say Y here to enable the EC driver for the Huawei Matebook E Go
|
|
which is a sc8280xp-based 2-in-1 tablet. The driver handles battery
|
|
(information, charge control) and USB Type-C DP HPD events as well
|
|
as some misc functions like the lid sensor and temperature sensors,
|
|
etc.
|
|
|
|
This driver provides battery and AC status support for the mentioned
|
|
laptop where this information is not properly exposed via the
|
|
standard ACPI devices.
|
|
|
|
Say M or Y here to include this support.
|
|
|
|
config EC_LENOVO_YOGA_C630
|
|
tristate "Lenovo Yoga C630 Embedded Controller driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on I2C
|
|
select AUXILIARY_BUS
|
|
help
|
|
Driver for the Embedded Controller in the Qualcomm Snapdragon-based
|
|
Lenovo Yoga C630, which provides battery and power adapter
|
|
information.
|
|
|
|
This driver provides battery and AC status support for the mentioned
|
|
laptop where this information is not properly exposed via the
|
|
standard ACPI devices.
|
|
|
|
Say M or Y here to include this support.
|
|
|
|
config EC_LENOVO_THINKPAD_T14S
|
|
tristate "Lenovo Thinkpad T14s Embedded Controller driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on I2C
|
|
depends on INPUT
|
|
select INPUT_SPARSEKMAP
|
|
select LEDS_CLASS
|
|
select NEW_LEDS
|
|
select SND_CTL_LED if SND
|
|
help
|
|
Driver for the Embedded Controller in the Qualcomm Snapdragon-based
|
|
Lenovo Thinkpad T14s, which provides access to keyboard backlight
|
|
and status LEDs.
|
|
|
|
This driver provides support for the mentioned laptop where this
|
|
information is not properly exposed via the standard Qualcomm
|
|
devices.
|
|
|
|
Say M or Y here to include this support.
|
|
|
|
config EC_QCOM_HAMOA
|
|
tristate "Embedded Controller driver for Qualcomm Hamoa/Glymur reference devices"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on I2C
|
|
depends on THERMAL || THERMAL=n
|
|
help
|
|
Say M or Y here to enable the Embedded Controller driver for Qualcomm
|
|
Snapdragon-based Hamoa/Glymur reference devices. The driver handles fan
|
|
control, temperature sensors, access to EC state changes and supports
|
|
reporting suspend entry/exit to the EC.
|
|
|
|
This driver currently supports Hamoa/Purwa/Glymur reference devices.
|
|
|
|
endif # ARM64_PLATFORM_DEVICES
|