diff options
Diffstat (limited to 'package/base-files/files')
-rwxr-xr-x | package/base-files/files/etc/init.d/gpio_switch | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/package/base-files/files/etc/init.d/gpio_switch b/package/base-files/files/etc/init.d/gpio_switch index 32c142f110..6b2dcdce41 100755 --- a/package/base-files/files/etc/init.d/gpio_switch +++ b/package/base-files/files/etc/init.d/gpio_switch @@ -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() |