This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352: Weird GPIO behaviour on AM335x.

Part Number: AM3352
Other Parts Discussed in Thread: AM3358

Hello,
I have a problem with AM3352 and GPIO. I have to use:
 - UART0_CTSn (gpio1_8 - 0x968h),
 - UART1_TXD (gpio0_15 - 0x984h),
 - UART1_RXD  (gpio0_14 - 0x980h),
as a GPIO, but they do not work. On one board (each pin is directly connected to 4 MUXes - select inputs), at normal state they are 3.3/0.8/0.8 V, at reset 0.8/0.8/0.8 V. Every attempt to drive those pins (linux/u-boot/app) gives nothing. 

At the same time, with the same config (DTB, etc.) on another board:
 - UART1_TXD (gpio0_15 - 0x984h),
 - UART1_RXD  (gpio0_14 - 0x980h),
pins are connected to pads only and their state is 0.0/0.0 V always. I have been trying to configure them in every possible way, but it does not change anything.

What is more interesting, UART0_RTSn (GPIO1_9) does not work on the first board, while it does on the second and in terms of this pin, these boards are completely identical (both HW and SW).

What all these pins have in common is the fact that they are from the "UART group".

"MCASP0 group" pins GPIO3 14-21 work perfectly fine.

Considering that the DTB should be the same for all of those pins, I do not understand why does it work like this. There are no complicated connections there - just pin to pin, so the board shouldn't be the culprit.

I will also note that these pins are not used by any other part of the system, to my knowledge of course.

On the other hand, on the beagleboard green there is no such problem (AM3358) and all GPIOs work.

--------------------------------------------------

GLIB_C=gcc-7.2.1-2017.11

Arago Linux 4.14.40 2018.04  -  arm-linux-gnueabihf-gcc (Linaro GCC 7.2-2017.11) 7.2.1 20171011

U-boot 2017.01  -  arm-linux-gnueabihf-gcc (Linaro GCC 6.2-2016.11) 6.2.1 20161016

  • Hi Dawid,

    First of all, since the pins are working on beaglebone green, I would assume you have the pinmux setting correctly.

    You mentioned the GPIO pins behave differently on two boards. Are both boards two different instances of the same board design? or completely different board design?

    I think you can first set both UART1_TXD/RXD pins to their native mode - UART pins in device tree pinmux, and enable UART1 port in DTS, then test if UART1 port can send/receive data. If so, it confirms the board hardware is correct. If not, it seems the board doesn't route the pins correctly.