From 3c0da6a3592c715fa901e100a6d5ad256f19f67f Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Sat, 12 Nov 2016 00:09:20 +0300
Subject: [PATCH] examples/hwapi: button_led: Add GPIO pin read example.

Requires BUTTON defined in hwconfig, so far tested on DragonBoard 410c.
---
 examples/hwapi/button_led.py               | 9 +++++++++
 examples/hwapi/hwconfig_dragonboard410c.py | 7 +++++++
 2 files changed, 16 insertions(+)
 create mode 100644 examples/hwapi/button_led.py

diff --git a/examples/hwapi/button_led.py b/examples/hwapi/button_led.py
new file mode 100644
index 000000000..bd6fe0172
--- /dev/null
+++ b/examples/hwapi/button_led.py
@@ -0,0 +1,9 @@
+import utime
+from hwconfig import LED, BUTTON
+
+# Light LED when (and while) a BUTTON is pressed
+
+while 1:
+    LED.value(BUTTON.value())
+    # Don't burn CPU
+    utime.sleep_ms(10)
diff --git a/examples/hwapi/hwconfig_dragonboard410c.py b/examples/hwapi/hwconfig_dragonboard410c.py
index 00f21a658..32fdb9dd6 100644
--- a/examples/hwapi/hwconfig_dragonboard410c.py
+++ b/examples/hwapi/hwconfig_dragonboard410c.py
@@ -1,12 +1,19 @@
 from machine import Pin
 
 # 96Boards/Qualcomm DragonBoard 410c
+#
 # By default, on-board LEDs are controlled by kernel LED driver.
 # To make corresponding pins be available as normal GPIO,
 # corresponding driver needs to be unbound first (as root):
 # echo -n "soc:leds" >/sys/class/leds/apq8016-sbc:green:user1/device/driver/unbind
 # Note that application also either should be run as root, or
 # /sys/class/gpio ownership needs to be changed.
+# Likewise, onboard buttons are controlled by gpio_keys driver.
+# To release corresponding GPIOs:
+# echo -n "gpio_keys" >/sys/class/input/input1/device/driver/unbind
 
 # User LED 1 on gpio21
 LED = Pin(21, Pin.OUT)
+
+# Button S3 on gpio107
+BUTTON = Pin(107, Pin.IN)
-- 
GitLab