From: Eugen Hristev Date: Fri, 3 May 2019 13:24:21 +0000 (+0300) Subject: board: atmel: sama5d2_icp: standby disable on CAN transceivers in SPL X-Git-Tag: v2019.07-rc4~3^2~5 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2950c514e8fc2c9d6a48cd7187521bc648dc679e;p=oweals%2Fu-boot.git board: atmel: sama5d2_icp: standby disable on CAN transceivers in SPL The 2 CAN transceivers have a STBDY pin which must be low in order to operate. This pin is tied to PB25. Set it to 0 in bootstrap. At a later time, this needs to be controlled by Linux power management system, or requested by some driver as a gpio and tied to 0 during CAN link up. Signed-off-by: Eugen Hristev --- diff --git a/board/atmel/sama5d2_icp/sama5d2_icp.c b/board/atmel/sama5d2_icp/sama5d2_icp.c index 1c28aaba85..f55ea2c6f8 100644 --- a/board/atmel/sama5d2_icp/sama5d2_icp.c +++ b/board/atmel/sama5d2_icp/sama5d2_icp.c @@ -73,6 +73,12 @@ int misc_init_r(void) /* SPL */ #ifdef CONFIG_SPL_BUILD +/* must set PB25 low to enable the CAN transceivers */ +static void board_can_stdby_dis(void) +{ + atmel_pio4_set_pio_output(AT91_PIO_PORTB, 25, 0); +} + /* deassert reset lines for external periph in case of warm reboot */ static void board_reset_additional_periph(void) { @@ -111,6 +117,7 @@ void spl_board_init(void) spl_mmc_init(); #endif board_reset_additional_periph(); + board_can_stdby_dis(); } void spl_display_print(void)