WP7603 GPIO Missing Binding

I’m having an issue getting GPIO23 (WP_GPIO_2) to bind properly to my application. When I run at+wiocfg? I get the following:

+WIOCFG: 2,0,0,0,1,0,0
+WIOCFG: 7,0,0,0,1,0,0
+WIOCFG: 8,0,0,0,1,0,0
+WIOCFG: 13,0,0,0,1,0,0
+WIOCFG: 21,0,0,0,1,0,0
+WIOCFG: 22,0,0,0,1,0,0
+WIOCFG: 23,16,1,0,0,0,0
+WIOCFG: 24,0,0,0,1,0,0
+WIOCFG: 25,0,0,0,1,0,0
+WIOCFG: 32,0,0,0,1,0,0
+WIOCFG: 33,0,0,0,1,0,0
+WIOCFG: 35,0,0,0,1,0,0
+WIOCFG: 42,0,0,0,1,0,0

.adef:

bindings:
{
uartCAN.uartCAN.le_avdata → avcService.le_avdata
uartCAN.uartCAN.le_gpio23 → gpioService.le_gpio23
}

.cdef

requires:
{
device:
{
[rw] /dev/ttyHS0 /dev/uart
}
api:
{
le_avdata.api
le_gpio23 = le_gpio.api
}
}

When I run the application I get the following error:

Missing binding: uartCAN.uartCAN.le_gpio23 → .le_gpio23

That’s the IOT0 reset GPIO. The iot_slot kernel module takes that GPIO. You can safely comment out the line in the SDEF file that references that kernel module if you want to manage the IoT card yourself.

I could be wrong here but the signal I’m trying to control is WP_GPIO_2 (WP_GPIO_2_lvl actually via the Raspberry Pi header). It looks like it is connected via the MangOH Red schematic to GPIO23. I don’t see anywhere on the schematic where WP_GPIO_2 goes to the IOT0 reset line.

Sorry about the confusion. Disregard my previous message. Does changing the adef line to uartCAN.uartCAN.le_gpio23 -> <root>.le_gpio23 make any difference?

I get a compile error if I put <> anywhere in the cdef.

error: Invalid character ‘<’ in file path.

A good way to replicate this problem is to run the gpioCf3Demo samples app. This application also fails to run / bind properly on a WP7603. My gut feeling is that the GPIO is not configured properly for the 7603 at an AT or /sys level.

I get a compile error if I put <> anywhere in the cdef.

Did you mean adef? I suggested changing the adef.

What if you change this to
uartCAN.uartCAN.le_gpio23 → gpioService.le_gpioPin23?

1 Like

Sorry for the late reply on this.

Adding Pin did the trick.

I also found that I must have changed that pin earlier via the AT+WIOCFG command. Once I changed the pin assignment back to 16 (application) things started working.