thermal/drivers/mediatek: Add the Low Voltage Thermal Sensor driver

The Low Voltage Thermal Sensor (LVTS) is a multiple sensors, multi
controllers contained in a thermal domain.

A thermal domains can be the MCU or the AP.

Each thermal domains contain up to seven controllers, each thermal
controller handle up to four thermal sensors.

The LVTS has two Finite State Machines (FSM), one to handle the
functionin temperatures range like hot or cold temperature and another
one to handle monitoring trip point. The FSM notifies via interrupts
when a trip point is crossed.

The interrupt is managed at the thermal controller level, so when an
interrupt occurs, the driver has to find out which sensor triggered
such an interrupt.

The sampling of the thermal can be filtered or immediate. For the
former, the LVTS measures several points and applies a low pass
filter.

Signed-off-by: Balsam CHIHI <bchihi@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

On MT8195 Tomato Chromebook:

Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20230209105628.50294-5-bchihi@baylibre.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Balsam CHIHI 2023-02-09 11:56:26 +01:00 committed by Rafael J. Wysocki
parent 498e2f7a6e
commit f5f633b182
3 changed files with 1241 additions and 0 deletions

View file

@ -18,4 +18,20 @@ config MTK_SOC_THERMAL
This driver configures thermal controllers to collect
temperature via AUXADC interface.
config MTK_LVTS_THERMAL
tristate "LVTS Thermal Driver for MediaTek SoCs"
depends on HAS_IOMEM
help
Enable this option if you want to get SoC temperature
information for supported MediaTek platforms.
This driver configures LVTS (Low Voltage Thermal Sensor)
thermal controllers to collect temperatures via ASIF
(Analog Serial Interface).
config MTK_LVTS_THERMAL_DEBUGFS
bool "LVTS thermal debugfs"
depends on MTK_LVTS_THERMAL && DEBUG_FS
help
Enable this option to debug the internals of the device driver.
endif

View file

@ -1 +1,2 @@
obj-$(CONFIG_MTK_SOC_THERMAL) += auxadc_thermal.o
obj-$(CONFIG_MTK_LVTS_THERMAL) += lvts_thermal.o

File diff suppressed because it is too large Load diff