aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Kresin <dev@kresin.me>2017-12-21 01:06:42 +0100
committerMathias Kresin <dev@kresin.me>2018-01-09 22:05:46 +0100
commite66c47fb14f56be48366d1206b54724ab6dc2502 (patch)
tree83feb838e8b73d0597e6d48ae1deee6ec9623b5d
parentff874b656beb87e3ad0f2cba3f325b1bf51a6b90 (diff)
downloadupstream-e66c47fb14f56be48366d1206b54724ab6dc2502.tar.gz
upstream-e66c47fb14f56be48366d1206b54724ab6dc2502.tar.bz2
upstream-e66c47fb14f56be48366d1206b54724ab6dc2502.zip
base-files: gpio switch: set output value with direction
Use the "low" and "high" values to configure the GPIO as an output with that initial value. It ensures that the gpio doesn't have a unwanted value during the time the direction is set to ouput and the actual value is applied. We don't need to take care of the GPIO polarity for now, since our exported GPIOs are always active low. Signed-off-by: Mathias Kresin <dev@kresin.me>
-rw-r--r--package/base-files/Makefile2
-rwxr-xr-xpackage/base-files/files/etc/init.d/gpio_switch5
2 files changed, 3 insertions, 4 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index a7cc4ca48b..87e02ff7d2 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:=181
+PKG_RELEASE:=182
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 5a62be94cc..b67950a992 100755
--- a/package/base-files/files/etc/init.d/gpio_switch
+++ b/package/base-files/files/etc/init.d/gpio_switch
@@ -22,10 +22,9 @@ load_gpio_switch()
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"
+ # set the pin to output with high or low pin value
+ { [ "$value" = "0" ] && echo "high" || echo "low"; } >"$gpio_path/direction"
}
service_triggers()