[openwrt/openwrt] base-files: gpio switch: set output value with direction

LEDE Commits lede-commits at lists.infradead.org
Tue Jan 9 13:10:02 PST 2018


mkresin pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/e66c47fb14f56be48366d1206b54724ab6dc2502

commit e66c47fb14f56be48366d1206b54724ab6dc2502
Author: Mathias Kresin <dev at kresin.me>
AuthorDate: Thu Dec 21 01:06:42 2017 +0100

    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 at 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 --git a/package/base-files/Makefile b/package/base-files/Makefile
index a7cc4ca..87e02ff 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 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()



More information about the lede-commits mailing list