All,
We're trying to get a TL16C752B working under Linux on our an AM3517-based SOM/COM module. We have both ports detecting reliably in Linux, but when we try to use the ports we see significant data loss. I expect the problem is that the GPMC timing settings under u-boot are not tuned to our configuration. Can someone please double-check these for us?
First a bit of a wiring description. Our 752B is attached to the AM3517 like so:
AM3517 <=> 752B
- A4 => A2
- A3 => A1
- A2 => A0
- D[7-0] => D[7-0]
- OE* => IOR*
- WE* => IOW*
- CS4* => CSA*
- CS5* => CSB*
- We're using 2x available GPIOs as interrupts A & B.
- For a clock, we're using the AM3517's sys_clkout1, which is fixed at 26MHz.
- Our reset comes off either system reset or a separate GPIO that lets us bounce it if necessary.
NOTE: Several pins are obviously left off this list. If you need to know what they are, please ask.
NOTE: We really only care about 3-wire communications for now. So the flow control lines are not really important to us.
The timing settings we've seen others use/try to use for similar, but not identical, parts are:
#define SER_TL16C752B_GPMC_CONFIG1 0x00000000
#define SER_TL16C752B_GPMC_CONFIG2 0x001e1e01
#define SER_TL16C752B_GPMC_CONFIG3 0x00080300
#define SER_TL16C752B_GPMC_CONFIG4 0x1c091c09
#define SER_TL16C752B_GPMC_CONFIG5 0x04181f1f
#define SER_TL16C752B_GPMC_CONFIG6 0x00000fcf
and
#define SER_TL16C752B_GPMC_CONFIG1 0x00011000
#define SER_TL16C752B_GPMC_CONFIG2 0x001F1F01
#define SER_TL16C752B_GPMC_CONFIG3 0x00080803
#define SER_TL16C752B_GPMC_CONFIG4 0x1D091D09
#define SER_TL16C752B_GPMC_CONFIG5 0x041D1F1F
#define SER_TL16C752B_GPMC_CONFIG6 0x1D0904C4
That second set comes from source code provided by the folks at LogicPD for their Zoom2 console which apparently uses a TL16C[P]752C quad UART chip, which is in the same family. However, from what I can gather in the source, I believe their clock is 48MHz. Since the TI datasheets for the 752B and 752C parts don't even share common naming conventions for timing events, sorting out how close these are is really tough.
Given that both these parts are TI parts, could someone please help us sort these out?
Thanks!