Internal GPIO pins are used for PoE passthrough setups in multi-port routers. This patch implemnets control over this hardware feature for Ubiquiti Nanostations and TP-Link CPE510. Signed-off-by: Lars Kruse <lists@sumpfralle.de> SVN-Revision: 46271master
parent
227aafc4db
commit
d65916047b
@ -0,0 +1,42 @@ |
|||||||
|
#!/bin/sh /etc/rc.common |
||||||
|
# Copyright (C) 2015 OpenWrt.org |
||||||
|
|
||||||
|
START=98 |
||||||
|
STOP=10 |
||||||
|
USE_PROCD=1 |
||||||
|
|
||||||
|
|
||||||
|
load_gpio_switch() |
||||||
|
{ |
||||||
|
local name |
||||||
|
local gpio_pin |
||||||
|
local value |
||||||
|
|
||||||
|
config_get gpio_pin "$1" gpio_pin |
||||||
|
config_get name "$1" name |
||||||
|
config_get value "$1" value 0 |
||||||
|
|
||||||
|
local gpio_path="/sys/class/gpio/gpio${gpio_pin}" |
||||||
|
# export GPIO pin for access |
||||||
|
[ -d "$gpio_path" ] || { |
||||||
|
echo "$gpio_pin" >/sys/class/gpio/export |
||||||
|
# we need to wait a bit until the GPIO appears |
||||||
|
[ -d "$gpio_path" ] || sleep 1 |
||||||
|
echo out >"$gpio_path/direction" |
||||||
|
} |
||||||
|
# write 0 or 1 to the "value" field |
||||||
|
{ [ "$value" = "0" ] && echo "0" || echo "1"; } >"$gpio_path/value" |
||||||
|
} |
||||||
|
|
||||||
|
service_triggers() |
||||||
|
{ |
||||||
|
procd_add_reload_trigger "system" |
||||||
|
} |
||||||
|
|
||||||
|
start_service() |
||||||
|
{ |
||||||
|
[ -e /sys/class/gpio/ ] && { |
||||||
|
config_load system |
||||||
|
config_foreach load_gpio_switch gpio_switch |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
#!/bin/sh |
||||||
|
# |
||||||
|
# Copyright (C) 2015 OpenWrt.org |
||||||
|
# |
||||||
|
|
||||||
|
. /lib/functions/uci-defaults.sh |
||||||
|
. /lib/ar71xx.sh |
||||||
|
|
||||||
|
board=$(ar71xx_board_name) |
||||||
|
|
||||||
|
case "$board" in |
||||||
|
nanostation-m) |
||||||
|
ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "2" |
||||||
|
;; |
||||||
|
nanostation-m-xw) |
||||||
|
ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "8" |
||||||
|
;; |
||||||
|
cpe510) |
||||||
|
ucidef_set_gpio_switch "poe_passthrough" "PoE Passthrough" "20" |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
||||||
|
ucidef_commit_gpio_switches |
||||||
|
|
||||||
|
exit 0 |
Loading…
Reference in new issue