opnsense-src/sys/dev/gpio
Colin Percival c2cd78d944 GPIO: Add ACPI _AEI support
Changes to acpi_gpiobus.c handle discovering and parsing the _AEI
objects and storing necessary data in device ivars.  A new gpioaei.c
file implements the device, which simply requests an interrupt when
the pin is triggered and invokes the appropriate _Exx or _Lxx ACPI
method.

This makes the GPIO "power button" work on arm64 Graviton systems,
allowing EC2 "Stop"/"Reboot" instance calls to be handled cleanly.
(Prior to this change, those requests would time out after 4 minutes
and the instance would be forcibly killed.)

Reviwed by:	imp, andrew, Ahmad Khalifa
MFC after:	3 days
Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D47253
Co-authored-by:	Andrew Turner <andrew@FreeBSD.org>

(cherry picked from commit 9709bda03cd0f20eba0ba4276fc3c2e06354a54f)
2024-11-03 08:01:28 -08:00
..
dwgpio sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
acpi_gpiobus.c GPIO: Add ACPI _AEI support 2024-11-03 08:01:28 -08:00
acpi_gpiobusvar.h GPIO: Add ACPI _AEI support 2024-11-03 08:01:28 -08:00
bytgpio.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
chvgpio.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
chvgpio_reg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
gpio_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
gpioaei.c GPIO: Add ACPI _AEI support 2024-11-03 08:01:28 -08:00
gpiobacklight.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpiobus.c gpiobus: Make gpiobus_read_ivar extern 2024-11-03 08:01:27 -08:00
gpiobus_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
gpiobusvar.h gpiobus: Make gpiobus_read_ivar extern 2024-11-03 08:01:27 -08:00
gpioc.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpioiic.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpiokeys.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpiokeys.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
gpiokeys_codes.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpioled.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpioled_fdt.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpiomdio.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpiopower.c gpiopower: trigger low, high and both edges 2024-02-17 16:15:10 +02:00
gpiopps.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpioregulator.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpiospi.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
gpioths.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
ofw_gpiobus.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
pl061.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
pl061.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pl061_acpi.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
pl061_fdt.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
qoriq_gpio.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
qoriq_gpio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00