diff options
-rw-r--r-- | package/base-files/Makefile | 2 | ||||
-rwxr-xr-x | package/base-files/files/etc/init.d/gpio_switch | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 0055474166..ed34480948 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/feeds.mk PKG_NAME:=base-files -PKG_RELEASE:=183 +PKG_RELEASE:=184 PKG_FLAGS:=nonshared PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ 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() |