@MikeS, yes you appear to be correct.
So in Linux pin functions are defined by a pinfunc file in the linux kernel (i.e. arch/arm/boot/dts/imx7d-pinfunc.h).
If you take a look here from line 791 to 795 you’ll see all the possible functions for SODIMM 190. This takes the form of the pin’s ball name followed by the function (i.e.
MX7D_PAD_SD1_CMD__SD1_CMD ball name = MX7D_PAD_SD1_CMD, function = SD1_CMD).
These pin functions are then referenced in other device tree files, for imx7 it is this one. If you look at like 606 you’ll see that SODIMM 190 with function
SD1_CMD is part of group
usdhc1-grp, which matches what you observe.
So in short you’ll need to remove that line thereby removing SODIMM 190 from the group then you’ll need to add SODIMM 190 with the appropriate function suffix (
MX7D_PAD_SD1_CMD__GPIO5_IO4) into one of the gpio groups in that same file.
Then you’ll need to compile the device tree with your changes, reference here.
At which point you can then replace the device tree running on your device with the new one. For Torizon, device trees are located at the following location on the file system (base system not in the container):
By default on boot Torizon loads and uses
devicetree-imx7d-colibri-emmc-eval-v3.dtb so you’ll want to replace this device tree binary with your new one with the same name.
I hope this helps outline the process you’ll need to perform on your end. Feel free to ask me for further clarifications, I covered quite a bit of topics quickly.