op-packages/powersupply/files/powersupply.init
github-actions[bot] b86d032e91 🤞 Sync 2026-04-23 06:19:46
2026-04-23 06:19:46 +08:00

63 lines
2.1 KiB
Bash
Executable File

#!/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
}