Pinmux did not update

I need to set GPIO1 to GPIO10 and GPIO12 to be input ports, and GPIO11 and GPIO13 to be output ports. I have followed the link below, but these gpio ports did not change.

  1. Change Pinmux and generate DT files.
  2. Copied the dtsi file to source and build it.
  3. Copied the dtb file to the releases and full flash to Nano board.

The Nano board boot up fine. When I checked the GPIO pins using the following, for example:
echo 63 > /sys/class/gpio/export //since gpio5 is PH.07, from (7x8) +7 = 63
After read the “direction” file, it said output; the pinmux was set to input. Also, gpio 4, 6 and 8 port are not exportable, it said “busy…” Do I need to disable some nodes for all 13 ports to set correctly? Why are gpio3, 5 said output and gpio11 and gpio13 said input when I set them differently?

Some debug tips

  1. Make sure the dtb flashed to the board is really the one that includes your update. The node /proc/device-tree on the board shall be different before and after you applied the pinmux DT.

  2. Some pins are “busy” have nothing to do with pinmux setting. It probably means some other drivers are already using that GPIO, thus, sysfs cannot use it. We don’t know whether those functionality could be removed or not. You can search the GPIO name inside DT sources and see which driver is using it.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.