WP8548 GPIO40 as ChangeEvent in Legato

I ned to use GPIO40 of my custom electronic board as ChangeEvent to detect a change edge in this pin.
In Legato:
le_i_o_2_int_AddChangeEventHandler(LE_I_O_1_INT_EDGE_FALLING, le_i_o_2_intChangeCallback, NULL, 0);

But when te program runs, the logs indicate an error:

Feb 11 11:57:53 | gpioService[820]/sysfsGpio T=main | gpioSysfsUtils.c WriteSysGpioSignalAttr() 180 | GPIO /sys/class/gpio/gpio40/edge does not exist (probably not exported)

Feb 11 11:57:53 | gpioService[820]/sysfsGpio T=main | gpioSysfsUtils.c gpioSysfs_SetChangeCallback() 606 | Path doesn’t exist to set edge detection

Are there any restriction on this GPIO? is it not possible events in this GPIO? Is there documentation about this GPIO restrictions?
Thank you

Can you control this gpio in console command?
What is the return of at+wiocfg? ?

The answer for at+wiocfg is this:
+WIOCFG: 2,16,0,0,1,0,0
+WIOCFG: 6,16,0,0,1,0,0
+WIOCFG: 7,16,0,0,1,0,0
+WIOCFG: 8,16,0,0,1,0,0
+WIOCFG: 13,16,0,0,1,0,0
+WIOCFG: 21,16,0,0,1,0,0
+WIOCFG: 22,16,0,0,1,0,0
+WIOCFG: 23,16,0,0,1,0,0
+WIOCFG: 24,16,0,0,1,0,0
+WIOCFG: 25,16,0,0,1,0,0
+WIOCFG: 28,16,0,0,1,0,0
+WIOCFG: 29,16,0,0,1,0,0
+WIOCFG: 30,16,0,0,1,0,0
+WIOCFG: 31,16,0,0,1,0,0
+WIOCFG: 32,16,0,0,1,0,0
+WIOCFG: 33,16,0,0,1,0,0
+WIOCFG: 34,16,0,0,1,0,0
+WIOCFG: 35,16,0,0,1,0,0
+WIOCFG: 36,16,0,0,1,0,0
+WIOCFG: 37,16,0,0,1,0,0
+WIOCFG: 42,16,0,0,1,0,0

it isn’t the GPIO40 and GPIO41… Why?
I see in datasheet that GPIO40-41 are “Accessible via sysfs/Legato only”. Perhaps it don’t show this due to this motive. But I’m tried to use in legato. I don’t know if there are more restrictions for this GPIOs or is necessary do anything to use this GPIO as event signal. I can read the GPIO on Legato used le_i_o_2_int_Read(); funcion but I can’t do events.
Thank you

in PTS, it says “GPIO40 and GPIO41 may be unavailable in future WP products.”…

Yes, but in WP85 is available. I don’t see where talk about restrictions in this GPIOs.
In legato function says this:

  • Add handler function for EVENT ‘le_i_o_2_int_ChangeEvent’
  • Register a callback function to be called when an input pin changes state.
  • If the pin is not capable of interrupt-driven operation, then it will be sampled every
  • sampleMs milliseconds. Otherwise, sampleMs will be ignored.
  • If this fails, either because the handler cannot be registered, or setting the
  • edge detection fails, then it will return a NULL reference.
    le_i_o_2_int_ChangeEventHandlerRef_t le_i_o_2_int_AddChangeEventHandler
    le_i_o_2_int_Edge_t trigger,
    ///< [IN] Change(s) that should trigger the callback to be called.
    le_i_o_2_int_ChangeCallbackFunc_t handlerPtr,
    ///< [IN] The callback function.
    ///< [IN]
    int32_t sampleMs
    ///< [IN] If not interrupt capable, sample the input this often (ms).

It semms that if the gpio don’t have event feature, then it is sampled every the time indicate in t_sampleMs. But I put 100ms and doesn’t work…
Help please!

Can you make it work on linux console sysfs first?
If it does not work, no need to talk about gpio api.

I tried on FX30 which is using WP8548 inside, it is OK on old FW.

root@fx30s:~# echo 40 > /sys/class/gpio/export
root@fx30s:~# microcom /dev/ttyAT

Manufacturer: Sierra Wireless, Incorporated
Model: FX30S
Revision: SWI9X15Y_07.12.09.00 r34123 CARMD-EV-FRMWR1 2017/04/26 23:34:19
MEID: 35398408006813
ESN: 12801312992, 801408E0
IMEI: 353984080068131
FSN: LL709600140810