|
@@ -23,8 +23,15 @@ load_gpio_switch()
|
|
|
# we need to wait a bit until the GPIO appears
|
|
|
[ -d "$gpio_path" ] || sleep 1
|
|
|
}
|
|
|
- # set the pin to output with high or low pin value
|
|
|
- { [ "$value" = "0" ] && echo "low" || echo "high"; } >"$gpio_path/direction"
|
|
|
+
|
|
|
+ # direction attribute only exists if the kernel supports changing the
|
|
|
+ # direction of a GPIO
|
|
|
+ if [ -e "${gpio_path}/direction" ]; then
|
|
|
+ # set the pin to output with high or low pin value
|
|
|
+ { [ "$value" = "0" ] && echo "low" || echo "high"; } >"$gpio_path/direction"
|
|
|
+ else
|
|
|
+ { [ "$value" = "0" ] && echo "0" || echo "1"; } >"$gpio_path/value"
|
|
|
+ fi
|
|
|
}
|
|
|
|
|
|
service_triggers()
|