Messages in this thread | | | From | Flavio Suligoi <> | Subject | How to use an ACPI declared GPIO in a userspace ... | Date | Tue, 29 Sep 2020 15:37:46 +0000 |
| |
Hi all,
I need to expose to the userspace a GPIO, physically connected to a board push-button. This GPIO must expose a pre-defined name, such as "user-push-button", so that the userspace applications can use it without know any physical GPIO details.
I can customize the board BIOS and so my goal is to add an ACPI table with a content like this:
... Scope (\_SB.GPO1) { Device (BTNS) { Name (_HID, "PRP0001") Name (_DDN, "GPIO buttons device")
Name (_CRS, ResourceTemplate () { GpioIo ( Exclusive, // Not shared PullNone, // No need for pulls 0, // Debounce timeout 0, // Drive strength IoRestrictionInputOnly, // Only used as input "\\_SB.GPO1", // GPIO controller 0, ResourceConsumer, , ) // Must be 0 { 25, // GPIO number } ...
I know that this GPIO can be used from other drivers. For example I successfully tested it using the "gpio-keys" device driver, giving to my GPIO a key-code and emulating in this way a keyboard key. This could be a possible solution.
But I prefer to expose my GPIO as a classic GPIO, not as a keyboard key.
I was wondering if there is a generic GPIO driver that I can use to expose this GPIO with its pre-defined name (caming from the ACPI table declaration), to the userspace...
Best regards,
Flavio
| |