#!/bin/bash # # PSU hard reset (power cycle) script. # # Power cycle the entire tray by setting the PSU hotswap reset (GPIO218) to high # # Global variable: PSU_HARDRESET_DELAY specifies the number of seconds to wait # before pulling the trigger. If not specified or zero, the script power cycles # immediately. ################################################## # Stop the phosphor-hwmon daemon # Return: # 0 if success, non-zero if error ################################################## stop_phosphor_hwmon() { if (( $# != 0 )); then echo 'Usage: stop_phosphor_hwmon' >&2 return 1 fi echo "Stopping phosphor-hwmon" >&2 local srv='system-xyz.openbmc_project.Hwmon.slice' systemctl stop "${srv}" } main() { # Stop phosphor-hwmon so that ADM1272 powercycle doesn't happen # in the middle of an i2c transaction and stuck the bus low stop_phosphor_hwmon "$@" gpioset gpiochip6 26=1 } # Exit without running main() if sourced if ! (return 0 2>/dev/null) ; then main "$@" fi