diff options
author | Dong Aisheng <b29396@freescale.com> | 2013-08-07 20:20:27 +0800 |
---|---|---|
committer | Dong Aisheng <b29396@freescale.com> | 2013-08-08 10:58:42 +0800 |
commit | 4e0ce32b6c319c35d3d739e2ef87b55643841a64 (patch) | |
tree | 42ad1354b2f7b648d78d94c4325439b5220dcb76 | |
parent | d3ac8ad54cdba6f85a47602f4735156db4375fd7 (diff) |
ENGR00274382 imx6q: fix can transceiver unwork on AI RevE baseboard
The transceiver TJA1041A on sabreauto RevE baseboard will
fail to transit to Normal state if EN/STBY is high by default
after board power up. So we set the EN/STBY initial state to low
first then to high to guarantee the state transition successfully.
Signed-off-by: Dong Aisheng <b29396@freescale.com>
Acked-by: Jason Liu <r64343@freescale.com>
-rw-r--r-- | arch/arm/mach-mx6/board-mx6q_sabreauto.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabreauto.c b/arch/arm/mach-mx6/board-mx6q_sabreauto.c index e1df8723146c..7c1fadaf1d47 100644 --- a/arch/arm/mach-mx6/board-mx6q_sabreauto.c +++ b/arch/arm/mach-mx6/board-mx6q_sabreauto.c @@ -1116,6 +1116,15 @@ static int flexcan1_en; static void mx6q_flexcan_switch(void) { if (flexcan0_en || flexcan1_en) { + /* + * The transceiver TJA1041A on sabreauto RevE baseboard will + * fail to transit to Normal state if EN/STBY is high by default + * after board power up. So we set the EN/STBY initial state to low + * first then to high to guarantee the state transition successfully. + */ + gpio_set_value_cansleep(SABREAUTO_CAN_EN, 0); + gpio_set_value_cansleep(SABREAUTO_CAN_STBY, 0); + gpio_set_value_cansleep(SABREAUTO_CAN_EN, 1); gpio_set_value_cansleep(SABREAUTO_CAN_STBY, 1); /* Enable STEER pin if CAN1 interface is required. |