This is an old revision of the document!
Table of Contents
Power Off and Wake Up using GPIO Key Button
This section describes how to set up GPIO key button for power off and wake up purpose.
The brief set-up flow is as following.
- Connect a tab button to the pin port you want to use
- Set GPIO number using boot.ini
- Compiling and flash the modified kernel dts : This part is only needed on ANDROID.
1. Hardware Set-Up
First, You need to prepare a tab switch that are connected to two lines.
Red line is for Power Button and another Gray line is for the active level line (Ground or 3.3V Power).
For example, we will use Pin#29 of 40pin expansion connector.
The pin is assigned to GPIOX.BIT0 and its GPIO number is #228.
Connect the red line to Pin#29.
Its default pin pulled status is high and switch active will be Low, so you should connect the gray line of tab switch to Ground (GND), Pin#30.
Pin Number (Red Line) | GPIO Number | Active Level (Gray Line) |
---|---|---|
29 | GPIO#228 | Active Low (Pin 30) |
2. Available Keys
Here are the available key examples using 40-pin connector and 7-pin connector.
You can find the pin assign examples for Red Line and Gray Line.
(1) J2 - 2×20 pins
Active Level (Gray Line) | GPIO Number | Pin Number (Red Line) | Pin Number (Red Line) | GPIO Number | Active Level (Gray Line) |
---|---|---|---|---|---|
- | 3.3V Power | 1 | 2 | - | - |
- | - | 3 | 4 | - | - |
- | - | 5 | 6 | Ground | - |
Active Low (Pin 9) | GPIO#249 | 7 | 8 | - | - |
- | Ground | 9 | 10 | - | - |
Active Low (Pin 14) | GPIO#247 | 11 | 12 | GPIO#238 | Active Low (Pin 14) |
Active Low (Pin 14) | GPIO#239 | 13 | 14 | Ground | - |
Active Low (Pin 14) | GPIO#237 | 15 | 16 | GPIO#236 | Active Low (Pin 14) |
- | 3.3V Power | 17 | 18 | GPIO#233 | Active Low (Pin 20) |
Active Low (Pin 20) | GPIO#235 | 19 | 20 | Ground | - |
Active Low (Pin 20) | GPIO#232 | 21 | 22 | GPIO#231 | Active Low (Pin 20) |
Active Low (Pin 25) | GPIO#230 | 23 | 24 | GPIO#229 | Active Low (Pin 25) |
- | Ground | 25 | 26 | GPIO#225 | Active High (Pin 17) |
- | - | 27 | 28 | - | - |
Active Low (Pin 30) | GPIO#228 | 29 | 30 | Ground | - |
Active Low (Pin 30) | GPIO#219 | 31 | 32 | GPIO#224 | Active Low (Pin 34) |
Active High (Pin 17) | GPIO#234 | 33 | 34 | Ground | |
Active Low (Pin 34) | GPIO#214 | 35 | 36 | GPIO#218 | Active Low (Pin 34) |
- | - | 37 | 38 | - | - |
- | Ground | 39 | 40 | - | - |
(2) J7 - 1×7 pins
Pin Number (Red Line) | GPIO Number | Active Level (Gray Line) |
---|---|---|
1 | Ground | - |
2 | GPIO#128 | Active Low (Pin 1) |
3 | 5.0V Power | - |
4 | GPIO#130 | Active Low (Pin 1) |
5 | GPIO#132 | Active Low (Pin 1) |
6 | GPIO#131 | Active Low (Pin 1) |
7 | GPIO#133 | Active Low (Pin 1) |
You can find the detailed information about 40-pin and 7-pin connectors in the following link.
Expansion Connectors
Setting Power Button Action for Power Off
Ubuntu
When you turn the board off using power button, you need to change power key action pattern.
- Open Power Management Preferences : [System] → [Preferences] → [Hardware] → [Power Management]
- and then Select [General] tab
Android
In case of Android, one short power key event is used for sleep and with long key event, you can handle options of power off/reboot.
With Android Marshmallow v2.4 or higher version, it's available to enter power off sequence using long-pressing (5 sec).
Available Key Numbers
1. J2 - 2×20 pins
Pin Number | Net Name | GPIO Number | Active Level | Pin Number | Net Name | GPIO Number | Active Level |
---|---|---|---|---|---|---|---|
1 | 3.3V Power | 2 | 5.0V Power | ||||
3 | I2CA_SDA | N/A | 4 | 5.0V Power | |||
5 | I2CA_SCL | N/A | 6 | Ground | |||
7 | GPIOX.BIT21 | GPIO#249 | High → Low | 8 | TXD1 | N/A | |
9 | Ground | 10 | RXD1 | N/A | |||
11 | GPIOX.BIT19 | GPIO#247 | High → Low | 12 | GPIOX.BIT10 | GPIO#238 | High → Low |
13 | GPIOX.BIT11 | GPIO#239 | High → Low | 14 | Ground | ||
15 | GPIOX.BIT9 | GPIO#237 | High → Low | 16 | GPIOX.BIT8 | GPIO#236 | High → Low |
17 | 3.3V Power | 18 | GPIOX.BIT5 | GPIO#233 | High → Low | ||
19 | GPIOX.BIT7 | GPIO#235 | High → Low | 20 | Ground | ||
21 | GPIOX.BIT4 | GPIO#232 | High → Low | 22 | GPIOX.BIT3 | GPIO#231 | High → Low |
23 | GPIOX.BIT2 | GPIO#230 | High → Low | 24 | GPIOX.BIT1 | GPIO#229 | High → Low |
25 | Ground | 26 | GPIOY.BIT14 | GPIO#225 | Low → High | ||
27 | I2CB_SDA | N/A | 28 | I2CB_SCL | N/A | ||
29 | GPIOX.BIT0 | GPIO#228 | High → Low | 30 | Ground | ||
31 | GPIOY.BIT8 | GPIO#219 | High → Low | 32 | GPIOY.BIT13 | GPIO#224 | High → Low |
33 | GPIOX.BIT6 | GPIO#234 | Low → High | 34 | Ground | ||
35 | GPIOY.BIT3 | GPIO#214 | High → Low | 36 | GPIOY.BIT7 | GPIO#218 | High → Low |
37 | ADC.AIN1 | N/A | 38 | 1.8V Power | N/A | ||
39 | Ground | 40 | ADC.AIN0 | N/A |
2. J7 - 1×7 pins
Pin Number | Net Name | GPIO Number | Active Level |
---|---|---|---|
1 | Ground | ||
2 | GPIOAO.BIT6 | GPIO#128 | High → Low |
3 | P5V0 | 5.0V Power | |
4 | GPIOAO.BIT8 | GPIO#130 | High → Low |
5 | GPIOAO.BIT10 | GPIO#132 | High → Low |
6 | GPIOAO.BIT9 | GPIO#131 | High → Low |
7 | GPIOAO.BIT11 | GPIO#133 | High → Low |
3. SW1
Pin Number | Net Name | GPIO Number | Active Level |
---|---|---|---|
1 | NC | N/A | |
2 | GPIOY.BIT5 | GPIO#216 | High → Low |
3 | GND | Ground |