Trigger Functions

Describes the trigger functions involved in implementing the GPIO interface class.

A trigger is the electrical waveform which signals an interrupt and sometimes a wakeup. Triggers are detected either by their level (high or low) or by their edge (rising, falling or both). When you associate an interrupt with a trigger you must specify the type (level or edge) and then the subtype. Some configurations of type and subtype are incompatible, for instance level trigger with rising edge. The GPIO interface class specifies the possible combinations in the enumeration TGpioDetectionTrigger. It is for the implementation to check that a given pin supports a consistent configuration.

Implement the trigger functions

  • Implement SetInterruptTrigger() with return value KErrNone.

    Verify that the pin is being used as an interrupt source and that there is an ISR bound to it. Set the interrupt trigger on the specified pin.

  • Implement SetInterruptTrigger() with return value KErrNotSupported.

    Return KErrNotSupported if the pin does not support interrupts.

  • Implement SetWakeupTrigger() with return value KErrNone.

    Verify that the pin is being used as an interrupt source and that there is an ISR bound to it. Set the interrupt trigger on the specified pin. The trigger should probably be edge detected.

  • Implement SetWakeupTrigger() with return value KErrNotSupported.

    Return KErrNotSupported if the pin does not support wakeups.