1#!/bin/bash 2# 3# PSU hard reset (power cycle) script. 4# 5# Power cycle the entire tray by setting the PSU hotswap reset (GPIO218) to high 6# 7# Global variable: PSU_HARDRESET_DELAY specifies the number of seconds to wait 8# before pulling the trigger. If not specified or zero, the script power cycles 9# immediately. 10 11################################################## 12# Stop the phosphor-hwmon daemon 13# Return: 14# 0 if success, non-zero if error 15################################################## 16stop_phosphor_hwmon() { 17 if (( $# != 0 )); then 18 echo 'Usage: stop_phosphor_hwmon' >&2 19 return 1 20 fi 21 22 echo "Stopping phosphor-hwmon" >&2 23 local srv='system-xyz.openbmc_project.Hwmon.slice' 24 systemctl stop "${srv}" 25} 26 27main() { 28 # Stop phosphor-hwmon so that ADM1272 powercycle doesn't happen 29 # in the middle of an i2c transaction and stuck the bus low 30 stop_phosphor_hwmon "$@" 31 32 gpioset gpiochip6 26=1 33} 34 35# Exit without running main() if sourced 36if ! (return 0 2>/dev/null) ; then 37 main "$@" 38fi 39