My current setup is WEC2013, bootloader 1.1b2, OS 1.1b2 and running on an iMX6 DL IT.
I am attempting to configure colibri pin 23 as a GPIO at startup via the multiplexing functionality that is available during boot. (Pin multiplexing for drivers | Toradex Developer Center )
To configure the registry I am importing the following information in a .reg file using RegEdit.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn]
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIOMux]
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIOMux]
“colibripin_23”=“altfn=-1 dir=in pull=none”
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM1]
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COM1]
“DoMultiplexing”=dword:0
When I import this file and power cycle the device, the new config is visible in RegEdit. I.e. the pullup state is displayed as ‘none’. However, when I read the GPIO config for pin 23 using the Toradex CE library I get the following:
dir=in,lvl=0,altfn=7,pull=up,strength=6,outmode=std,inmode=schmitt,slew=slow,speed=rsvd,irqtrig=none,sion=normal
Now when I set the pullup state using the Toradex CE library instead, I get the following when I read back the configuration:
dir=in,lvl=1,altfn=5,pull=none,strength=6,outmode=std,inmode=schmitt,slew=slow,speed=rsvd,irqtrig=low,sion=normal
The code I am using to set the pin and read back the state is the following:
HANDLE hGpio = NULL;
hGpio = Gpio_Init(NULL);
Gpio_Open(hGpio);
uIo io = COLIBRI_PIN(23);
Gpio_ConfigureAsGpio(hGpio, io);
Gpio_SetDir(hGpio, io, ioInput);
io = Gpio_NormalizeIo(hGpio, io);
Gpio_SetConfigString(hGpio, io, NULL, L"pull=none", StoreVolatile);
TCHAR buffer[1024];
Gpio_GetConfigString(hGpio, io, NULL, buffer, 1024 * sizeof(TCHAR));
wprintf(buffer);
My goal is to disable the internal pullup using the multiplexing at boot functionality, not having to do it in code. Am I missing something in my configuration?