summaryrefslogtreecommitdiff
path: root/meta-quanta/meta-gbs/recipes-gbs/hotswap-power-cycle/files/tray_powercycle.sh
blob: e22dd20438d4ffb5bdaec4814a1b4e2a1006ff67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/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
return 0 2>/dev/null

main "$@"