Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[dell]: add psuutil support for s6000 #1342

Merged
merged 1 commit into from
Jan 29, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions device/dell/x86_64-dell_s6000_s1220-r0/plugins/psuutil.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#
# psuutil.py
# Platform-specific PSU status interface for SONiC
#


import os.path

try:
from sonic_psu.psu_base import PsuBase
except ImportError as e:
raise ImportError(str(e) + "- required module not found")


class PsuUtil(PsuBase):
"""Platform-specific PSUutil class"""

def __init__(self):
PsuBase.__init__(self)

def get_cpld_register(self, reg_name):
cpld_dir = "/sys/devices/platform/dell-s6000-cpld.0"
retval = 'ERR'
reg_file = cpld_dir +'/' + reg_name
if (not os.path.isfile(reg_file)):
return retval

try:
with open(reg_file, 'r') as fd:
retval = fd.read()
except Exception as error:
logging.error("Unable to open ", reg_file, "file !")

retval = retval.rstrip('\r\n')
return retval

def get_num_psus(self):
"""
Retrieves the number of PSUs available on the device
:return: An integer, the number of PSUs available on the device
"""
S6000_MAX_PSUS = 2
return S6000_MAX_PSUS

def get_psu_status(self, index):
"""
Retrieves the oprational status of power supply unit (PSU) defined
by index <index>
:param index: An integer, index of the PSU of which to query status
:return: Boolean, True if PSU is operating properly, False if PSU is\
faulty
"""
status = 0
psu_status = self.get_cpld_register('psu'+str(index - 1)+'_status')
if (psu_status != 'ERR'):
status = int(psu_status, 10)

presence = self.get_psu_presence(index)

return (status & presence)

def get_psu_presence(self, index):
"""
Retrieves the presence status of power supply unit (PSU) defined
by index <index>
:param index: An integer, index of the PSU of which to query status
:return: Boolean, True if PSU is plugged, False if not
"""
status = 0
psu_presence = self.get_cpld_register('psu'+str(index - 1)+'_prs')
if (psu_presence != 'ERR'):
status = int(psu_presence, 10)

return status
21 changes: 0 additions & 21 deletions device/dell/x86_64-dell_s6000_s1220-r0/sensors.conf
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,6 @@ chip "max6620-i2c-*-2a"
ignore fan3
ignore fan4

chip "w83627dhg-*"
label in0 "VCore 1"
label in1 "VCore 2"
set in0_min 0
set in0_max 1.74
set in1_min 0
set in1_max 1.74
ignore fan1
ignore fan2
ignore fan3
ignore fan4
ignore fan5
ignore in4
ignore in5
ignore in6
ignore temp1
ignore temp2
ignore temp3
ignore cpu0_vid
ignore intrusion0

chip "jc42-*"
set temp1_max 50
set temp1_crit 85
Expand Down