blob: be8091631e562c51dba8faeac32a80bea0813ca6 [file] [log] [blame]
README for Brillo GPIO sample
This GPIO sample demonstrates how to set up GPIO and write/read to GPIO pins.
Specifically this app does the following.
- Export an input and output GPIO pins
- Set output e.g. pin 24 direction to "out" and value to 1
- Set input e.g. pin 28 direction to "in" and edge to "both"
- Read input pin by polling
- Once input pin is triggered to input value 1, set output value to 0
Once built, you can find the binary inside your tree at:
out/target/product/dragonboard/symbols/system/bin/gpio_playground
Do the following to deploy the sample:
- adb root
- adb remount
- adb sync
Hardware setup:
- You need to connect a GPIO pin as output to an LED
- You need to connect a GPIO pin as input to a push button switch
Do the following to run the sample on Dragonboard and check logs for info:
- Open a shell window and run: adb logcat
- Open another shell window and run:
- Default input pin 28 and output pin 24
- adb shell '/system/bin/gpio_playground &'
- Choose your own output and input pins
- adb shell '/system/bin/gpio_playground --gin=<input> --gout=<output> &'
- For example, adb shell '/system/bin/gpio_playground --gin=28 --gout=24 &'
- Observe the logging info from the first window
- Observe that the LED of pin 24 is turned on
- Now push the switch of pin 28 and see that the LED gets turned off
Notes:
- There is a GPIO port offset defined by const kDefaultGpioOffset that depends
on what kind of boards you use. For Dragonboard it is 902. This offset can
also be configured by a commandline parameter.
- There is an output pin and input pin defined by const kDefaultGpioOut and
kDefaultGpioIn respectively. They can both be configured by commandline
parameters.