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>
v19.07.3_mercusys_ac12_duma
Mathias Kresin 6 years ago
parent ff874b656b
commit e66c47fb14

@ -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/

@ -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()

Loading…
Cancel
Save