Hello everyone,
I am trying to use the uart1 of the omap3530 chip but it doesn't seem
to work !
Here is what I have done :
I changed the mux.c adding this
MUX_CFG_34XX("AG22_3430_UART1_CTS_UP", 0x0DC,
OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLUP)
MUX_CFG_34XX("AH22_3430_UART1_RTS", 0x0DE,
OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_OUTPUT)
MUX_CFG_34XX("E26_3430_UART1_TX", 0x0E8,
OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_OUTPUT)
MUX_CFG_34XX("F28_3430_UART1_RX_DOWN", 0x0EA,
OMAP34XX_MUX_MODE2 | OMAP34XX_PIN_INPUT_PULLDOWN)
I call those functions at init
omap_cfg_reg(AG22_3430_UART1_CTS_UP);
omap_cfg_reg(AH22_3430_UART1_RTS);
omap_cfg_reg(E26_3430_UART1_TX);
omap_cfg_reg(F28_3430_UART1_RX_DOWN);
I modfied the kernel config to allow the CONFIG_OMAP_MUX
At boot I have those prints :
[ 0.000000] MUX: setup AG22_3430_UART1_CTS_UP (0xd80020dc): 0x0000 -
0x011a
[ 0.000000] MUX: setup AH22_3430_UART1_RTS (0xd80020de): 0x0000 ->
0x0002
[ 0.000000] MUX: setup E26_3430_UART1_TX (0xd80020e8): 0x0000 ->
0x0002
[ 0.000000] MUX: setup F28_3430_UART1_RX_DOWN (0xd80020ea): 0x0000 -
0x010a
(Here I don't realy get the "0x0000 -> 0x011a" part but I do think the
mux has been done)
My test is to plug the TX pin to the RX pin.
I do those commands :
root@igep:~# echo hello > /dev/ttyS0
root@igep:~# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:ST16654 mmio:0x4806A000 irq:72 tx:11 rx:0 DSR|CD|RI
1: uart:ST16654 mmio:0x4806C000 irq:73 tx:0 rx:0 CTS|DSR|CD|RI
2: uart:ST16654 mmio:0x49020000 irq:74 tx:1233 rx:129 RTS|CTS|DTR|DSR|
CD>RI
3: uart:unknown port:00000000 irq:0
As you can see the bits go through TX but are not received.
Do you see anything wrong I would have done or forgotten to do ?