Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:c2_gpio_key_wakeup [2017/07/24 18:01] joy.cho [Setting boot.ini] |
en:c2_gpio_key_wakeup [2017/07/24 18:07] (current) joy.cho [2. Available Keys] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Power Off and Wake Up using GPIO Key Button ====== | ====== 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.\\ | This section describes how to set up GPIO key button for power off and wake up purpose.\\ | ||
- | - [[odroid-c2:application_note:gpio:gpio_key_wakeup#hardware_set-up|Hardware Set-up]] | + | - [[en:c2_gpio_key_wakeup&#hardware_set-up|Hardware Set-up]] |
- | - [[odroid-c2:application_note:gpio:gpio_key_wakeup#available_keys|Available Keys]] | + | - [[en:c2_gpio_key_wakeup&#available_keys|Available Keys]] |
- | - [[odroid-c2:application_note:gpio:gpio_key_wakeup#sw_set-up_1_-_ubuntu|SW Set-up (1) Ubuntu]] | + | - [[en:c2_gpio_key_wakeup&#sw_set-up_1_-_ubuntu|SW Set-up (1) Ubuntu]] |
- | - [[odroid-c2:application_note:gpio:gpio_key_wakeup#sw_set-up_2_-_android|SW Set-up (2) Android]] | + | - [[en:c2_gpio_key_wakeup&#sw_set-up_2_-_android|SW Set-up (2) Android]] |
- | - [[odroid-c2:application_note:gpio:gpio_key_wakeup#troubleshooting|Troubleshooting]] | + | - [[en:c2_gpio_key_wakeup&#troubleshooting|Troubleshooting]] |
The brief set-up flow is as following.\\ | The brief set-up flow is as following.\\ | ||
Line 67: | Line 67: | ||
You can find the detailed information about 40-pin and 7-pin connectors in the following link.\\ | You can find the detailed information about 40-pin and 7-pin connectors in the following link.\\ | ||
- | [[odroid-c2:hardware:expansion_connectors|Expansion Connectors]]\\ | + | [[en:c2_hardware&#expansion_connectors|Expansion Connectors]]\\ |
- | ==== Setting Power Button Action for Power Off ==== | + | ==== 3. SW Set-up (1) - Ubuntu ==== |
+ | <WRAP center round important> | ||
+ | * Ubuntu : The release version should be 3.14.79-107 (Feb 26, 2017) or higher. | ||
+ | </WRAP> | ||
- | === Ubuntu === | + | === (1) Setting boot.ini === |
- | When you turn the board off using power button, you need to change power key action pattern.\\ | + | |
+ | You can assign GPIO number with env **gpiopower** in boot.ini. | ||
+ | |||
+ | <code ini target> | ||
+ | ## gpio power key : J2 (2x20) Pin#29 , GPIOX.BIT0 | ||
+ | setenv gpiopower "228" | ||
+ | ... | ||
+ | ... | ||
+ | |||
+ | ## Add gpiopower like "setenv bootargs ${bootargs} gpiopower=${gpiopower}" | ||
+ | setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend hdmimode=${m} ${cmode} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff} disableuhs=${disableuhs} mmc_removable=${mmc_removable} usbmulticam=${usbmulticam} ${hid_quirks} gpiopower=${gpiopower}" | ||
+ | |||
+ | </code> | ||
+ | |||
+ | === (2) Setting Power Button Action for Power Off === | ||
+ | |||
+ | When you turn the board off using power button, you need to change the power key action pattern.\\ | ||
- Open Power Management Preferences : [System] -> [Preferences] -> [Hardware] -> [Power Management] \\ | - Open Power Management Preferences : [System] -> [Preferences] -> [Hardware] -> [Power Management] \\ | ||
Line 79: | Line 98: | ||
{{:en:gpio_wakeup_1.png?400}} | {{:en:gpio_wakeup_1.png?400}} | ||
- | === Android === | + | === (3) Wake up Action === |
- | 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.\\ | + | To wake-up after power off, long-pressing over 2 seconds is needed. |
- | With Android Marshmallow v2.4 or higher version, it's available to enter power off sequence using **long-pressing (5 sec)**. | + | |
- | ==== Available Key Numbers ==== | + | ==== 4. SW Set-up (2) - Android ==== |
+ | <WRAP center round important> | ||
+ | * Android : You have to modify the dts file in Android Marshmallow (v2.4) and higher version to using this functionality. | ||
+ | </WRAP> | ||
+ | === (1) Modifying and Flashing Kernel dts === | ||
+ | In case of Android, you have to modify the dts file to activate gpio key functionality.\\ | ||
+ | |||
+ | [[https://github.com/hardkernel/linux/blob/odroidc2-3.14.y-android/arch/arm64/boot/dts/meson64_odroidc2.dts|C2 Android DTS]]\\ | ||
+ | |||
+ | <kernel_path>/arch/arm64/boot/dts/meson64_odroidc2.dts | ||
+ | <code> | ||
+ | ... | ||
+ | gpio_keypad{ | ||
+ | . | ||
+ | status = "okay"; | ||
+ | . | ||
+ | }; | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | After compiling the dts file, you can flash the dtb file to the board. | ||
+ | |||
+ | In kernel: | ||
+ | <code bash target> | ||
+ | $ make odroidc2_defconfig | ||
+ | $ make dtbs | ||
+ | $ fastboot flash dtb arch/arm64/boot/dts/meson64_odroidc2.dtb | ||
+ | $ fastboot reboot | ||
+ | </code> | ||
+ | |||
+ | You have to flash dtbs file when board it is in u-boot fastboot mode. | ||
+ | |||
+ | In board: | ||
+ | <code bash target> | ||
+ | $ reboot fastboot | ||
+ | </code> | ||
+ | |||
+ | === (2) Setting boot.ini === | ||
+ | In Android boot.ini, you can find a "gpiopower" example. | ||
+ | Uncomment "gpiopower" part and modify the number with the number you want to use. | ||
+ | <code ini target> | ||
+ | ## gpio power key : J2 (2x20) Pin#29 , GPIOX.BIT0 | ||
+ | setenv gpiopower "228" | ||
+ | </code> | ||
- | **1. J2 - 2x20 pins** | + | === (3) Setting Power Button Action for Power Off === |
- | ^ Pin Number ^ Net Name ^ GPIO Number ^ Active Level ^ Pin Number ^ Net Name ^ GPIO Number ^ Active Level ^ | + | In Android, you don't need to set any menu for power button actions but it's already defined as following.\\ |
- | | 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| | | + | |
+ | 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 using **long-pressing (5 sec)**. | ||
- | **2. J7 - 1x7 pins** | + | === (4) Wake up Action === |
- | ^ Pin Number ^ Net Name ^ GPIO Number ^ Active Level ^ | + | And to wake-up after power off, long-pressing over 2 seconds is needed. |
- | | 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** | + | ==== 5. Troubleshooting ==== |
+ | https://forum.odroid.com/viewtopic.php?f=137&t=27602#p195995 \\ | ||
- | {{:en:gpio_wakeup_3.png?400}} \\ | + | https://forum.odroid.com/viewtopic.php?f=136&t=27636 |
- | ^ Pin Number ^ Net Name ^ GPIO Number ^ Active Level ^ | + | |
- | | 1 |NC|N/A | | | + | |
- | | 2 |GPIOY.BIT5|GPIO#216|High -> Low| | + | |
- | | 3 |GND|Ground| | | + | |