ARM: beagle_x15: prevent DCAN1 _wait_target_disable failure in kernel
authorRoger Quadros <rogerq@ti.com>
Thu, 25 Jun 2015 07:25:50 +0000 (10:25 +0300)
committerTom Rini <trini@konsulko.com>
Thu, 9 Jul 2015 01:51:16 +0000 (21:51 -0400)
If board is booted with transitions happening on DCAN1 pins then
the following warning is seen in the kernel at boot when the
hwmod layer initializes.

"omap_hwmod: dcan1: _wait_target_disable failed"

This is because DCAN1 module's SWAKEUP mechanism is broken
and it fails to correctly turn OFF if it sees a transition on the
DCAN1 pins. Suggested workaround is to keep DCAN1 pins in safe mode
while enabling/disabling DCAN1 module.

The hwmod layer enables and disables all modules at boot
and we have no opportunity to put the DCAN1 pins in safe mode
at that point.

DCAN1 is not used by u-boot so it doesn't matter to it if these
pins are in safe mode. The kernel driver correctly configures
the right mode when DCAN1 is active.

Signed-off-by: Roger Quadros <rogerq@ti.com>
[trini: s/PULLUP/PULL_UP/ based on DRA7xx EVM version of this patch]
Signed-off-by: Tom Rini <trini@konsulko.com>
board/ti/beagle_x15/mux_data.h

index 09d36509839cad496d080cc204c3f399dd73b729..23f22a02bece2ce0de351bd15ef96c0095cc3dc4 100644 (file)
@@ -244,8 +244,8 @@ const struct pad_conf_entry core_padconf_array_essential[] = {
        {SPI2_D1, (M14 | PIN_INPUT_PULLDOWN)},  /* spi2_d1.gpio7_15 */
        {SPI2_D0, (M14 | PIN_INPUT_PULLUP)},    /* spi2_d0.gpio7_16 */
        {SPI2_CS0, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)},     /* spi2_cs0.gpio7_17 */
-       {DCAN1_TX, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)},      /* dcan1_tx.dcan1_tx */
-       {DCAN1_RX, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)},      /* dcan1_rx.dcan1_rx */
+       {DCAN1_TX, (M15 | PULL_UP)},    /* dcan1_tx.safe for dcan1_tx */
+       {DCAN1_RX, (M15 | PULL_UP)},    /* dcan1_rx.safe for dcan1_rx */
        {UART1_RXD, (M0 | PIN_INPUT_SLEW)},     /* uart1_rxd.uart1_rxd */
        {UART1_TXD, (M0 | PIN_INPUT_SLEW)},     /* uart1_txd.uart1_txd */
        {UART1_CTSN, (M15 | PIN_INPUT_PULLDOWN)},       /* uart1_ctsn.Driveroff */