Tool/software: Linux
Hi,
Thus far I haven't had luck outputting known GPIO and UART signals out the 572x EVM's expansion header pins. We've removed the LCD/touchscreen and are just using the processor module. We made a small, single layer, PCBA breakout board with a (mating hirose connector attached ) which breaks out 30/60 signals on the TI 572X EVM's expansion headers. When I use sysfs commands, for instance, to vary a given GPIO (e.g. GPIO5_8 or pin 55 on the P17 header), I don't see any change in voltage level for echo 1 > gpio136/value vs echo 0 > gpio136/value. But on our custom board with the 5728, I've confirmed that this GPIO is toggling with the same sysfs commands. I've confirmed in /sys/kernel/debug/pinctrl, that the pad configuration for the given pin matches the corresponding entry in mux_data.h, but I'm not sure if that pad configuration is correct for the EVM's expansion header (please see questions below).
Additionally, I've tried various ways to enable the GPIO in the device tree, each case with no luck on the 572xEVM, only our custom hardware board.
Also, this issue has come up in previous posts, https://e2e.ti.com/support/embedded/linux/f/354/p/595855/2206686#pi317016=1, and the resolutions put forth in the last couple of posts in this thread don't seem to solve this issue on our setup.
I'm using the latest TI processor SDK for Linux (version 4.1).
Also, per, http://www.ti.com/lit/ug/spruig1/spruig1.pdf, some of the pins in the expansion header pinouts are labeled as "not attached," so I'm not sure if that means the ball is disconnected from the pin on the expansion header or something else??
My approach as been to measure which pins have video signals (e.g. vout1_d6) coming out on them (e.g. they're definitely connected to pads on the 5728), and then re-configure the mux mode for GPIO.
Some questions:
1) What are the most common causes of failing to get gpios, UARTs, and other peripherals to come out on the P16-P18 expansion header pins?
2) I'm unsure if my problem is partly or entirely related to an incorrect pullup/pulldown state of the pad configuration register - given expansion header pins. What does the pullup/pulldown state of the expansion header pins depend on? The peripheral the ball is MUXED to? The MUX Mode 0 configuration for that pad? Something else?
3) If one wants to change the MUX mode for a given pad, do you really need to start with the pinmux tool and re-generate the array, or is it ok, to merely hack the array entry in mux_data.h which gets #included in board.c?
4) If for instance, you change a pad from voutn_dn to gpion_n by changing the mux mode, can you given an example of how to hack mux_data.h (how to change the pad configuration and IO delay which I believe is a don't care for GPIO)?
Thanks a lot for your help!!
Jeff Andich