diff options
author | Mathias Kresin <dev@kresin.me> | 2017-12-21 01:06:42 +0100 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2018-01-09 22:05:46 +0100 |
commit | e66c47fb14f56be48366d1206b54724ab6dc2502 (patch) | |
tree | 83feb838e8b73d0597e6d48ae1deee6ec9623b5d | |
parent | ff874b656beb87e3ad0f2cba3f325b1bf51a6b90 (diff) | |
download | upstream-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/Makefile | 2 | ||||
-rwxr-xr-x | package/base-files/files/etc/init.d/gpio_switch | 5 |
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() |