Hi Andy On Thu, Oct 29, 2020 at 3:45 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > > On Wed, Oct 28, 2020 at 10:10:42PM +0100, Ricardo Ribalda wrote: > > Hi Andy > > > > Thanks for your patch and super fast response. > > > > I think there are two different concepts here: > > > > 1) when the pin has a low value, it is 0 or a 1? =>active_low > > I'm not sure I have got it. GpioIo() has no such property and > _DSD active_low is documented as being polarity setting: > > active_low == 1 => active low polarity. > > > 2) when do I get an irq, low->high or high->low => irq polarity > > IRQ polarity is clearly defined by GpioInt() resource in the ACPI > specification. > > > When I read the acpi spec for GpioInt() > > https://www.uefi.org/sites/default/files/resources/ACPI_6_2.pdf page > > 934, it has the same problem as for GpioIo(), it does not express the > > active_low and this is where the _DSD field comes handy. > > ActiveLevel field is described in 19.6.55 GpioInt (GPIO Interrupt Connection > Resource Descriptor Macro). > > > Without using the active_low, how can we describe a pin that is > > active low and has to trigger an irq on both edges? > > This is nonsense. > What does it mean? Let me try to explain myself again: I have a gpio pin that produces IRQs on both edges. so ActiveLevel is Both The problem is that the value of that pin is inverted: Low means 1 and high means 0. How can I describe that the pin "is inverted" without using the _DSD field? Best regards > > -- > With Best Regards, > Andy Shevchenko > > -- Ricardo Ribalda