diff mbox series

[LEDE-DEV,2/2] base-files: gpio switch: set output value with direction

Message ID 1514372421-12338-2-git-send-email-dev@kresin.me
State Accepted
Delegated to: Mathias Kresin
Headers show
Series [LEDE-DEV,1/2] base-files: gpio_switch: start before boot state done is set | expand

Commit Message

Mathias Kresin Dec. 27, 2017, 11 a.m. UTC
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.

Cc: Lars Kruse <lists@sumpfralle.de>
Signed-off-by: Mathias Kresin <dev@kresin.me>
---
 package/base-files/Makefile                     | 2 +-
 package/base-files/files/etc/init.d/gpio_switch | 5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 728d787..d0c9d6b 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:=179
+PKG_RELEASE:=180
 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 5a62be9..b67950a 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()