#!/bin/sh
set -e
# Enables LED netdev triggers for Ten64 boards

grep -q "traverse,ten64" "/proc/device-tree/compatible" || exit 0

enable_netdev_for_led() {
  netdev="${1}"
  led="${2}"

  echo "netdev" > "/sys/class/leds/${led}/trigger"
  echo "${netdev}" > "/sys/class/leds/${led}/device_name"
}

enable_link_trigger() {
  led="${1}"

  echo "1" > "/sys/class/leds/${led}/link"
}

enable_traffic_trigger() {
  led="${1}"
  echo "1" > "/sys/class/leds/${led}/tx"
  echo "1" > "/sys/class/leds/${led}/rx"
}

# RevA boards have SFP+ cages with two lightpipes per SFP,
# RevB boards only populate one lightpipe
grep -q "traverse,ten64-a" "/proc/device-tree/compatible" && is_reva=1

if [ "${is_reva}" = "1" ]; then
  enable_netdev_for_led "eth8" "ten64:red:sfp1:down"
  enable_link_trigger "ten64:red:sfp1:down"
  enable_netdev_for_led "eth8" "ten64:red:sfp1:up"
  enable_traffic_trigger "ten64:red:sfp1:up"

  enable_netdev_for_led "eth9" "ten64:green:sfp2:up"
  enable_link_trigger "ten64:green:sfp2:up"
  enable_netdev_for_led "eth9" "ten64:green:sfp2:down"
  enable_traffic_trigger "ten64:green:sfp2:down"
fi
