recipes-bsp: Add support for gpio-shutdown

- Feature is enabled with ENABLE_GPIO_SHUTDOWN variable
- Include the gpio-shutdown overlay
- If using SysV init include the additional keymap and inittab entries
  to bind the KEY_POWER event
- Systemd init does not require any additional bindings

Signed-off-by: Otto Esko <otto.esko@gmail.com>
This commit is contained in:
Otto Esko
2021-12-04 18:51:54 +02:00
committed by Andrei Gherzan
parent 58cc662539
commit bf2d2eae4e
5 changed files with 66 additions and 0 deletions
+18
View File
@@ -34,6 +34,8 @@ ENABLE_UART ??= ""
WM8960="${@bb.utils.contains("MACHINE_FEATURES", "wm8960", "1", "0", d)}"
GPIO_SHUTDOWN_PIN ??= ""
inherit deploy nopackages
do_deploy() {
@@ -253,6 +255,22 @@ do_deploy() {
echo "dtoverlay=mcp2515-can0,oscillator=${CAN_OSCILLATOR},interrupt=25" >>$CONFIG
fi
if [ "${ENABLE_GPIO_SHUTDOWN}" = "1" ]; then
if ([ "${ENABLE_I2C}" = "1" ] || [ "${PITFT}" = "1" ]) && [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
# By default GPIO shutdown uses the same pin as the (master) I2C SCL.
# If I2C is configured and an alternative pin is not configured for
# gpio-shutdown, there is a configuration conflict.
bbfatal "I2C and gpio-shutdown are both enabled and using the same pins!"
fi
echo "# Enable gpio-shutdown" >> $CONFIG
if [ -z "${GPIO_SHUTDOWN_PIN}" ]; then
echo "dtoverlay=gpio-shutdown" >> $CONFIG
else
echo "dtoverlay=gpio-shutdown,gpio_pin=${GPIO_SHUTDOWN_PIN}" >> $CONFIG
fi
fi
# Append extra config if the user has provided any
printf "${RPI_EXTRA_CONFIG}\n" >> $CONFIG