On Tue, Sep 29, 2020 at 5:43 PM Flavio Suligoi <f.suligoi@xxxxxxx> wrote: > > 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 Adding Andy who knows ACPI GPIO well. In general, the "gpio-line-names" property is used for that and it's supported both for device tree as well as ACPI, although I have only ever used the former. Bartosz