#!/bin/sh /etc/rc.common START=11 STOP=10 USE_PROCD=1 start_service() { poe_out_power_enabled="$(uci -q get powersupply.system.poe_out_power)" poe_out_power_gpio="$(uci -q get powersupply.system.poe_out_power_gpio)" voltage_threshold="$(cat /sys/class/i2c-dev/i2c-0/device/0-0011/voltage_threshold)" input_voltage="$(cat /sys/class/i2c-dev/i2c-0/device/0-0011/input_voltage)" if [[ "$input_voltage" -lt "$voltage_threshold" ]]; then echo 0 > /sys/class/gpio/gpio$poe_out_power_gpio/value else echo $poe_out_power_enabled > /sys/class/gpio/gpio$poe_out_power_gpio/value fi poe_out_power_control="$(uci -q get powersupply.system.poe_out_control)" echo $poe_out_power_control > /sys/class/i2c-dev/i2c-0/device/0-0011/poeout_control ext_power_enabled="$(uci -q get powersupply.system.ext_power)" ext_power_gpio="$(uci -q get powersupply.system.ext_power_gpio)" echo $ext_power_enabled > /sys/class/gpio/gpio$ext_power_gpio/value usb_power_enabled="$(uci -q get powersupply.system.usb_power)" usb_power_gpio="$(uci -q get powersupply.system.usb_power_gpio)" echo $usb_power_enabled > /sys/class/gpio/gpio$usb_power_gpio/value usb_power_control="$(uci -q get powersupply.system.usb_control)" echo $usb_power_control > /sys/class/i2c-dev/i2c-0/device/0-0011/usb_control } stop_service() { poe_out_power_gpio="$(uci -q get powersupply.system.poe_out_power_gpio)" echo 0 > /sys/class/gpio/gpio$poe_out_power_gpio/value ext_power_gpio="$(uci -q get powersupply.system.ext_power_gpio)" echo 0 > /sys/class/gpio/gpio$ext_power_gpio/value usb_power_gpio="$(uci -q get powersupply.system.usb_power_gpio)" echo 0 > /sys/class/gpio/gpio$usb_power_gpio/value } boot() { poe_gpio="$(uci -q get powersupply.system.poe_out_power_gpio)" echo $poe_gpio > /sys/class/gpio/export usb_gpio="$(uci -q get powersupply.system.usb_power_gpio)" echo $usb_gpio > /sys/class/gpio/export ext_gpio="$(uci -q get powersupply.system.ext_power_gpio)" echo $ext_gpio > /sys/class/gpio/export start } shutdown() { stop_service } service_triggers() { procd_add_reload_trigger "powersupply" } reload_service() { restart }