I had enabled AUART support in kernel. I was suspecting MUX issue but not sure how I can resolve it.
But eventually I found the issue in original mx28evk_pins.c. I have highlighted.
{
.name = "usb0",
.id = PINID_AUART2_TX,
.fun = PIN_GPIO,
}
{
.name = "usb1",
.id = PINID_AUART2_RX,
.fun = PIN_GPIO,
}
I replaced with below mentioned changes and it worked.
#ifdef CONFIG_MXS_AUART2_DEVICE_ENABLE
{
.name = "AUART2.TX",
.id = PINID_AUART2_TX,
.fun = PIN_FUN1,
}
{
.name = "AUART2.RX",
.id = PINID_AUART2_RX,
.fun = PIN_FUN1,
}
#endif
Also I found that AUART2 configuration code is not under CONFIG_MXC_AUART_DEVICE_ENABLE compilation flag.
Simarly AUART1 will not work as RX/TX pins are shared with LED PWM0/1 and proper compilation flags are not used.
I have shared reference if anyone wants to use AUART1 instead of LED PWM0/1. One can make it better by adding "#error" messages if both features enabled.
#ifndef CONFIG_MXS_AUART1_DEVICE_ENABLE // LED PWM0 & 1 are muxed with AUART1
#if defined(CONFIG_LEDS_MXS) || defined(CONFIG_LEDS_MXS_MODULE)
{
.name = "LEDS_PWM0",
.id = PINID_AUART1_RX,
.fun = PIN_FUN3,
.strength = PAD_8MA,
.voltage = PAD_3_3V,
.pullup = 1,
.drive = 1,
.pull = 1,
},
{
.name = "LEDS_PWM1",
.id = PINID_AUART1_TX,
.fun = PIN_FUN3,
.strength = PAD_8MA,
.voltage = PAD_3_3V,
.pullup = 1,
.drive = 1,
.pull = 1,
},
#endif
#else // if AUART1 is defined then enable UART
{
.name = "AUART1.TX",
.id = PINID_AUART1_RX, /* Power enable pin*/
.fun = PIN_FUN1,
},
{
.name = "AUART1.RX",
.id = PINID_AUART1_TX,
.fun = PIN_FUN1,
},
#endif
Thanks.
Kiran Nevaskar