Re: [PATCH 1/5] arm64: dts: mediatek: cherry: Add platform thermal configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 21/04/23 22:53, Nícolas F. R. A. Prado ha scritto:
On Fri, Apr 21, 2023 at 03:37:52PM +0800, Chen-Yu Tsai wrote:
On Thu, Apr 20, 2023 at 5:45 PM AngeloGioacchino Del Regno
<angelogioacchino.delregno@xxxxxxxxxxxxx> wrote:

This platform has three auxiliary NTC thermistors, connected to the
SoC's ADC pins. Enable the auxadc in order to be able to read the
ADC values, add a generic-adc-thermal LUT for each and finally assign
them to the SoC's thermal zones.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
---
  .../boot/dts/mediatek/mt8195-cherry.dtsi      | 105 ++++++++++++++++++
  1 file changed, 105 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
index 8ac80a136c37..0820e9ba3829 100644
--- a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
@@ -114,6 +114,77 @@ ppvar_sys: regulator-ppvar-sys {
                 regulator-boot-on;
         };

+       /* Murata NCP03WF104F05RL */
+       tboard_thermistor1: thermal-sensor-t1 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&auxadc 0>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <    (-10000) 1553
+                                               (-5000) 1485
+                                               0 1406
+                                               5000 1317
+                                               10000 1219
+                                               15000 1115
+                                               20000 1007
+                                               25000 900
+                                               30000 796
+                                               35000 697
+                                               40000 605
+                                               45000 523
+                                               50000 449
+                                               55000 384
+                                               60000 327
+                                               65000 279
+                                               70000 237
+                                               75000 202
+                                               80000 172
+                                               85000 147
+                                               90000 125
+                                               95000 107
+                                               100000 92
+                                               105000 79
+                                               110000 68
+                                               115000 59
+                                               120000 51
+                                               125000 44>;
+       };
+
+       tboard_thermistor2: thermal-sensor-t2 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&auxadc 1>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <    (-10000) 1553
+                                               (-5000) 1485
+                                               0 1406
+                                               5000 1317
+                                               10000 1219
+                                               15000 1115
+                                               20000 1007
+                                               25000 900
+                                               30000 796
+                                               35000 697
+                                               40000 605
+                                               45000 523
+                                               50000 449
+                                               55000 384
+                                               60000 327
+                                               65000 279
+                                               70000 237
+                                               75000 202
+                                               80000 172
+                                               85000 147
+                                               90000 125
+                                               95000 107
+                                               100000 92
+                                               105000 79
+                                               110000 68
+                                               115000 59
+                                               120000 51
+                                               125000 44>;
+       };
+
         usb_vbus: regulator-5v0-usb-vbus {
                 compatible = "regulator-fixed";
                 regulator-name = "usb-vbus";
@@ -260,6 +331,10 @@ &gpu {
         mali-supply = <&mt6315_7_vbuck1>;
  };

+&auxadc {
+       status = "okay";
+};
+
  &i2c0 {
         status = "okay";

@@ -1098,6 +1173,36 @@ mt6315_7_vbuck1: vbuck1 {
         };
  };

+&thermal_zones {
+       soc_area_ntc {

Not sure if that's what's causing the issue, but the thermal zone name should
end with -thermal as per the binding. Also note that it needs to be under 20
characters otherwise it will fail to be registered with -22 like below.
(Also, node names shouldn't contain underscore)

Thanks,
Nícolas

+               polling-delay = <1000>;
+               polling-delay-passive = <250>;
+               thermal-sensors = <&tboard_thermistor1>;
+
+               trips {
+                       trip-crit {
+                               temperature = <95000>;
+                               hysteresis = <2000>;
+                               type = "critical";
+                       };
+               };
+       };
+
+       pmic_area_ntc {
+               polling-delay = <1000>;
+               polling-delay-passive = <0>;
+               thermal-sensors = <&tboard_thermistor2>;
+
+               trips {
+                       trip-crit {
+                               temperature = <95000>;
+                               hysteresis = <2000>;
+                               type = "critical";
+                       };
+               };
+       };

I'm still getting:

thermal_sys: Failed to find 'trips' node
thermal_sys: Failed to find trip points for thermal-sensor-t1 id=0
generic-adc-thermal thermal-sensor-t1: Thermal zone sensor register failed: -22
generic-adc-thermal: probe of thermal-sensor-t1 failed with error -22
thermal_sys: Failed to find 'trips' node
thermal_sys: Failed to find trip points for thermal-sensor-t2 id=0
generic-adc-thermal thermal-sensor-t2: Thermal zone sensor register failed: -22
generic-adc-thermal: probe of thermal-sensor-t2 failed with error -22
thermal_sys: Failed to find 'trips' node
thermal_sys: Failed to find trip points for thermal-sensor-t3 id=0
generic-adc-thermal thermal-sensor-t3: Thermal zone sensor register failed: -22
generic-adc-thermal: probe of thermal-sensor-t3 failed with error -22


I think you have something wrong locally - there's no thermal-sensor-t3 in this
devicetree...

Cheers,
Angelo




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux