Commit d654362d authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge tag 'thermal-v6.8-rc1' of...

Merge tag 'thermal-v6.8-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux into thermal

Merge thermal control material for 6.8-rc1 from Daniel Lezcano:

"- Converted Mediatek Thermal to the json-schema (Rafał Miłecki)

 - Fixed DT bindings issue on Loongson (Binbin Zhou)

 - Fixed returning NULL instead of -ENODEV on Loogsoo (Binbin Zhou)

 - Added the DT binding for the tsens on SM8650 platform (Neil Armstrong)

 - Added a reboot on critical option feature (Fabio Estevam)

 - Made usage of DEFINE_SIMPLE_DEV_PM_OPS on AmLogic (Uwe Kleine-König)

 - Added the D1/T113s THS controller support on Sun8i (Maxim Kiselev)

 - Fixed example in the DT binding for QCom SPMI (Johan Hovold)

 - Fixed compilation warning for the tmon utility (Florian Eckert)

 - Added interrupt based configuration on Exynos along with a set of
   related cleanups (Mateusz Majewski)"

* tag 'thermal-v6.8-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (24 commits)
  thermal/drivers/exynos: Use set_trips ops
  thermal/drivers/exynos: Use BIT wherever possible
  thermal/drivers/exynos: Split initialization of TMU and the thermal zone
  thermal/drivers/exynos: Stop using the threshold mechanism on Exynos 4210
  thermal/drivers/exynos: Simplify regulator (de)initialization
  thermal/drivers/exynos: Handle devm_regulator_get_optional return value correctly
  thermal/drivers/exynos: Wwitch from workqueue-driven interrupt handling to threaded interrupts
  thermal/drivers/exynos: Drop id field
  thermal/drivers/exynos: Remove an unnecessary field description
  tools/thermal/tmon: Fix compilation warning for wrong format
  dt-bindings: thermal: qcom-spmi-adc-tm5/hc: Clean up examples
  dt-bindings: thermal: qcom-spmi-adc-tm5/hc: Fix example node names
  thermal/drivers/sun8i: Add D1/T113s THS controller support
  dt-bindings: thermal: sun8i: Add binding for D1/T113s THS controller
  thermal: amlogic: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions
  thermal: amlogic: Make amlogic_thermal_disable() return void
  thermal/thermal_of: Allow rebooting after critical temp
  reboot: Introduce thermal_zone_device_critical_reboot()
  thermal/core: Prepare for introduction of thermal reboot
  dt-bindings: thermal-zones: Document critical-action
  ...
parents a3cd6db4 5314b154
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ properties:
      - allwinner,sun8i-a83t-ths
      - allwinner,sun8i-h3-ths
      - allwinner,sun8i-r40-ths
      - allwinner,sun20i-d1-ths
      - allwinner,sun50i-a64-ths
      - allwinner,sun50i-a100-ths
      - allwinner,sun50i-h5-ths
@@ -61,6 +62,7 @@ allOf:
        compatible:
          contains:
            enum:
              - allwinner,sun20i-d1-ths
              - allwinner,sun50i-a100-ths
              - allwinner,sun50i-h6-ths

@@ -84,7 +86,9 @@ allOf:
      properties:
        compatible:
          contains:
            const: allwinner,sun8i-h3-ths
            enum:
              - allwinner,sun8i-h3-ths
              - allwinner,sun20i-d1-ths

    then:
      properties:
@@ -103,6 +107,7 @@ allOf:
            enum:
              - allwinner,sun8i-h3-ths
              - allwinner,sun8i-r40-ths
              - allwinner,sun20i-d1-ths
              - allwinner,sun50i-a64-ths
              - allwinner,sun50i-a100-ths
              - allwinner,sun50i-h5-ths
+9 −1
Original line number Diff line number Diff line
@@ -10,6 +10,9 @@ maintainers:
  - zhanghongchen <zhanghongchen@loongson.cn>
  - Yinbo Zhu <zhuyinbo@loongson.cn>

allOf:
  - $ref: /schemas/thermal/thermal-sensor.yaml#

properties:
  compatible:
    oneOf:
@@ -26,12 +29,16 @@ properties:
  interrupts:
    maxItems: 1

  '#thermal-sensor-cells':
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - '#thermal-sensor-cells'

additionalProperties: false
unevaluatedProperties: false

examples:
  - |
@@ -41,4 +48,5 @@ examples:
        reg = <0x1fe01500 0x30>;
        interrupt-parent = <&liointc0>;
        interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
        #thermal-sensor-cells = <1>;
    };
+99 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/thermal/mediatek,thermal.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Mediatek thermal controller for on-SoC temperatures

maintainers:
  - Sascha Hauer <s.hauer@pengutronix.de>

description:
  This device does not have its own ADC, instead it directly controls the AUXADC
  via AHB bus accesses. For this reason it needs phandles to the AUXADC. Also it
  controls a mux in the apmixedsys register space via AHB bus accesses, so a
  phandle to the APMIXEDSYS is also needed.

allOf:
  - $ref: thermal-sensor.yaml#

properties:
  compatible:
    enum:
      - mediatek,mt2701-thermal
      - mediatek,mt2712-thermal
      - mediatek,mt7622-thermal
      - mediatek,mt7981-thermal
      - mediatek,mt7986-thermal
      - mediatek,mt8173-thermal
      - mediatek,mt8183-thermal
      - mediatek,mt8365-thermal
      - mediatek,mt8516-thermal

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: Main clock needed for register access
      - description: The AUXADC clock

  clock-names:
    items:
      - const: therm
      - const: auxadc

  mediatek,auxadc:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: A phandle to the AUXADC which the thermal controller uses

  mediatek,apmixedsys:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: A phandle to the APMIXEDSYS controller

  resets:
    description: Reset controller controlling the thermal controller

  nvmem-cells:
    items:
      - description:
          NVMEM cell with EEPROMA phandle to the calibration data provided by an
          NVMEM device. If unspecified default values shall be used.

  nvmem-cell-names:
    items:
      - const: calibration-data

required:
  - reg
  - interrupts
  - clocks
  - clock-names
  - mediatek,auxadc
  - mediatek,apmixedsys

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/clock/mt8173-clk.h>
    #include <dt-bindings/reset/mt8173-resets.h>

    thermal@1100b000 {
        compatible = "mediatek,mt8173-thermal";
        reg = <0x1100b000 0x1000>;
        interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
        clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
        clock-names = "therm", "auxadc";
        resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
        mediatek,auxadc = <&auxadc>;
        mediatek,apmixedsys = <&apmixedsys>;
        nvmem-cells = <&thermal_calibration_data>;
        nvmem-cell-names = "calibration-data";
        #thermal-sensor-cells = <1>;
    };
+0 −52
Original line number Diff line number Diff line
* Mediatek Thermal

This describes the device tree binding for the Mediatek thermal controller
which measures the on-SoC temperatures. This device does not have its own ADC,
instead it directly controls the AUXADC via AHB bus accesses. For this reason
this device needs phandles to the AUXADC. Also it controls a mux in the
apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS
is also needed.

Required properties:
- compatible:
  - "mediatek,mt8173-thermal" : For MT8173 family of SoCs
  - "mediatek,mt2701-thermal" : For MT2701 family of SoCs
  - "mediatek,mt2712-thermal" : For MT2712 family of SoCs
  - "mediatek,mt7622-thermal" : For MT7622 SoC
  - "mediatek,mt7981-thermal", "mediatek,mt7986-thermal" : For MT7981 SoC
  - "mediatek,mt7986-thermal" : For MT7986 SoC
  - "mediatek,mt8183-thermal" : For MT8183 family of SoCs
  - "mediatek,mt8365-thermal" : For MT8365 family of SoCs
  - "mediatek,mt8516-thermal", "mediatek,mt2701-thermal : For MT8516 family of SoCs
- reg: Address range of the thermal controller
- interrupts: IRQ for the thermal controller
- clocks, clock-names: Clocks needed for the thermal controller. required
                       clocks are:
		       "therm":	 Main clock needed for register access
		       "auxadc": The AUXADC clock
- mediatek,auxadc: A phandle to the AUXADC which the thermal controller uses
- mediatek,apmixedsys: A phandle to the APMIXEDSYS controller.
- #thermal-sensor-cells : Should be 0. See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for a description.

Optional properties:
- resets: Reference to the reset controller controlling the thermal controller.
- nvmem-cells: A phandle to the calibration data provided by a nvmem device. If
               unspecified default values shall be used.
- nvmem-cell-names: Should be "calibration-data"

Example:

	thermal: thermal@1100b000 {
		#thermal-sensor-cells = <1>;
		compatible = "mediatek,mt8173-thermal";
		reg = <0 0x1100b000 0 0x1000>;
		interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
		clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
		clock-names = "therm", "auxadc";
		resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
		reset-names = "therm";
		mediatek,auxadc = <&auxadc>;
		mediatek,apmixedsys = <&apmixedsys>;
		nvmem-cells = <&thermal_calibration_data>;
		nvmem-cell-names = "calibration-data";
	};
+5 −3
Original line number Diff line number Diff line
@@ -114,12 +114,14 @@ examples:
  - |
    #include <dt-bindings/iio/qcom,spmi-vadc.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    spmi_bus {

    pmic {
        #address-cells = <1>;
        #size-cells = <0>;

        pm8998_adc: adc@3100 {
            reg = <0x3100>;
            compatible = "qcom,spmi-adc-rev2";
            reg = <0x3100>;
            #address-cells = <1>;
            #size-cells = <0>;
            #io-channel-cells = <1>;
@@ -130,7 +132,7 @@ examples:
            };
        };

        pm8998_adc_tm: adc-tm@3400 {
        adc-tm@3400 {
            compatible = "qcom,spmi-adc-tm-hc";
            reg = <0x3400>;
            interrupts = <0x2 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
Loading