[U-Boot] [u-boot][PATCH] ARM: DRA7-evm: prevent DCAN1 _wait_target_disable failure in kernel
Nishanth Menon
nm at ti.com
Wed Jun 24 19:40:53 CEST 2015
On 06/24/2015 09:00 AM, Roger Quadros wrote:
> 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 at ti.com>
> ---
> board/ti/dra7xx/mux_data.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/board/ti/dra7xx/mux_data.h b/board/ti/dra7xx/mux_data.h
> index c9301a5..91e00b9 100644
> --- a/board/ti/dra7xx/mux_data.h
> +++ b/board/ti/dra7xx/mux_data.h
> @@ -358,7 +358,7 @@ const struct pad_conf_entry dra74x_core_padconf_array[] = {
> {SPI2_D1, (M1 | PIN_INPUT_SLEW)}, /* spi2_d1.uart3_txd */
> {SPI2_D0, (M1 | PIN_INPUT_SLEW)}, /* spi2_d0.uart3_ctsn */
> {SPI2_CS0, (M1 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* spi2_cs0.uart3_rtsn */
> - {DCAN1_TX, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* dcan1_tx.dcan1_tx */
> + {DCAN1_TX, (M15 | PULL_UP)}, /* dcan1_tx.safe for dcan1_tx */
> {DCAN1_RX, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* dcan1_rx.gpio1_15 */
> {UART1_RXD, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* uart1_rxd.uart1_rxd */
> {UART1_TXD, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* uart1_txd.uart1_txd */
> @@ -370,7 +370,7 @@ const struct pad_conf_entry dra74x_core_padconf_array[] = {
> {UART2_RTSN, (M3 | PIN_INPUT_PULLUP)}, /* uart2_rtsn.mmc4_dat3 */
> {I2C2_SDA, (M0 | PIN_INPUT_PULLUP)}, /* i2c2_sda.i2c2_sda */
> {I2C2_SCL, (M0 | PIN_INPUT_PULLUP)}, /* i2c2_scl.i2c2_scl */
> - {WAKEUP0, (M1 | PIN_OUTPUT)}, /* Wakeup0.dcan1_rx */
> + {WAKEUP0, (M15 | PULL_UP)}, /* Wakeup0.safe for dcan1_rx */
> {WAKEUP2, (M14 | PIN_OUTPUT)}, /* Wakeup2.gpio1_2 */
> };
>
>
LGTM, could you also look at x15 platform?
--
Regards,
Nishanth Menon
More information about the U-Boot
mailing list