# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/thermal/mediatek,lvts-thermal.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: MediaTek SoC Low Voltage Thermal Sensor (LVTS) maintainers: - Balsam CHIHI <bchihi@baylibre.com> description: | LVTS is a thermal management architecture composed of three subsystems, a Sensing device - Thermal Sensing Micro Circuit Unit (TSMCU), a Converter - Low Voltage Thermal Sensor converter (LVTS), and a Digital controller (LVTS_CTRL). properties: compatible: enum: - mediatek,mt8192-lvts-ap - mediatek,mt8192-lvts-mcu - mediatek,mt8195-lvts-ap - mediatek,mt8195-lvts-mcu reg: maxItems: 1 interrupts: maxItems: 1 clocks: maxItems: 1 resets: maxItems: 1 description: LVTS reset for clearing temporary data on AP/MCU. nvmem-cells: minItems: 1 items: - description: Calibration eFuse data 1 for LVTS - description: Calibration eFuse data 2 for LVTS nvmem-cell-names: minItems: 1 items: - const: lvts-calib-data-1 - const: lvts-calib-data-2 "#thermal-sensor-cells": const: 1 allOf: - $ref: thermal-sensor.yaml# - if: properties: compatible: contains: enum: - mediatek,mt8192-lvts-ap - mediatek,mt8192-lvts-mcu then: properties: nvmem-cells: maxItems: 1 nvmem-cell-names: maxItems: 1 - if: properties: compatible: contains: enum: - mediatek,mt8195-lvts-ap - mediatek,mt8195-lvts-mcu then: properties: nvmem-cells: minItems: 2 nvmem-cell-names: minItems: 2 required: - compatible - reg - interrupts - clocks - resets - nvmem-cells - nvmem-cell-names - "#thermal-sensor-cells" additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/mt8195-clk.h> #include <dt-bindings/reset/mt8195-resets.h> #include <dt-bindings/thermal/mediatek,lvts-thermal.h> soc { #address-cells = <2>; #size-cells = <2>; lvts_mcu: thermal-sensor@11278000 { compatible = "mediatek,mt8195-lvts-mcu"; reg = <0 0x11278000 0 0x1000>; interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&infracfg_ao CLK_INFRA_AO_THERM>; resets = <&infracfg_ao MT8195_INFRA_RST4_THERM_CTRL_MCU_SWRST>; nvmem-cells = <&lvts_efuse_data1 &lvts_efuse_data2>; nvmem-cell-names = "lvts-calib-data-1", "lvts-calib-data-2"; #thermal-sensor-cells = <1>; }; }; thermal_zones: thermal-zones { cpu0-thermal { polling-delay = <1000>; polling-delay-passive = <250>; thermal-sensors = <&lvts_mcu MT8195_MCU_LITTLE_CPU0>; trips { cpu0_alert: trip-alert { temperature = <85000>; hysteresis = <2000>; type = "passive"; }; cpu0_crit: trip-crit { temperature = <100000>; hysteresis = <2000>; type = "critical"; }; }; }; };