From 4eac8ba5ad5d5f8efd55236bf8a9edf8ea48d627 Mon Sep 17 00:00:00 2001 From: Jostar Yang Date: Thu, 29 Jul 2021 16:44:36 +0800 Subject: [PATCH] update fan.py and thermal.py to can show psu.temp --- .../sonic_platform/psu.py | 4 ++- .../sonic_platform/thermal.py | 28 ++++++++----------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/psu.py b/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/psu.py index 330d188abffb..c2baa2ebf26a 100644 --- a/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/psu.py +++ b/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/psu.py @@ -10,7 +10,7 @@ try: from sonic_platform_base.psu_base import PsuBase - #from sonic_platform.fan import Fan + from sonic_platform.thermal import Thermal from .helper import APIHelper except ImportError as e: raise ImportError(str(e) + "- required module not found") @@ -64,6 +64,8 @@ def __initialize_fan(self): for fan_index in range(0, PSU_NUM_FAN[self.index]): fan = Fan(fan_index, 0, is_psu_fan=True, psu_index=self.index) self._fan_list.append(fan) + + self._thermal_list.append(Thermal(is_psu=True, psu_index=self.index)) def get_voltage(self): """ diff --git a/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/thermal.py b/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/thermal.py index 4638d803ea63..09470def2246 100644 --- a/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/thermal.py +++ b/device/accton/x86_64-accton_as5835_54x-r0/sonic_platform/thermal.py @@ -38,14 +38,16 @@ }, } +THERMAL_NAME_LIST = ["Temp sensor 1", "Temp sensor 2", + "Temp sensor 3", "Temp sensor 4"] + +PSU_THERMAL_NAME_LIST = ["PSU-1 temp sensor 1", "PSU-2 temp sensor 2"] + +SYSFS_PATH = "/sys/bus/i2c/devices" class Thermal(ThermalBase): """Platform-specific Thermal class""" - THERMAL_NAME_LIST = [] - PSU_THERMAL_NAME_LIST = [] - SYSFS_PATH = "/sys/bus/i2c/devices" - def __init__(self, thermal_index=0, is_psu=False, psu_index=0): self.index = thermal_index self.is_psu = is_psu @@ -59,13 +61,7 @@ def __init__(self, thermal_index=0, is_psu=False, psu_index=0): psu_i2c_bus = PSU_CPLD_I2C_MAPPING[psu_index]["num"] psu_i2c_addr = PSU_CPLD_I2C_MAPPING[psu_index]["addr"] self.cpld_path = PSU_I2C_PATH.format(psu_i2c_bus, psu_i2c_addr) - # Add thermal name - self.THERMAL_NAME_LIST.append("Temp sensor 1") - self.THERMAL_NAME_LIST.append("Temp sensor 2") - self.THERMAL_NAME_LIST.append("Temp sensor 3") - self.PSU_THERMAL_NAME_LIST.append("PSU-1 temp sensor 1") - self.PSU_THERMAL_NAME_LIST.append("PSU-2 temp sensor 1") - + # Set hwmon path i2c_path = { 0: "18-004b/hwmon/hwmon*/", @@ -74,8 +70,8 @@ def __init__(self, thermal_index=0, is_psu=False, psu_index=0): 3: "21-004a/hwmon/hwmon*/" }.get(self.index, None) - self.hwmon_path = "{}/{}".format(self.SYSFS_PATH, i2c_path) - self.ss_key = self.THERMAL_NAME_LIST[self.index] + self.hwmon_path = "{}/{}".format(SYSFS_PATH, i2c_path) + self.ss_key = THERMAL_NAME_LIST[self.index] self.ss_index = 1 def __read_txt_file(self, file_path): @@ -137,7 +133,7 @@ def get_high_threshold(self): up to nearest thousandth of one degree Celsius, e.g. 30.125 """ if self.is_psu: - return 0 + return 80 temp_file = "temp{}_max".format(self.ss_index) return self.__get_temp(temp_file) @@ -164,9 +160,9 @@ def get_name(self): string: The name of the thermal device """ if self.is_psu: - return self.PSU_THERMAL_NAME_LIST[self.psu_index] + return PSU_THERMAL_NAME_LIST[self.psu_index] else: - return self.THERMAL_NAME_LIST[self.index] + return THERMAL_NAME_LIST[self.index] def get_presence(self): """