@ -1,6 +1,6 @@
/*
/*
* board / renesas / salvator - x / salvator - x . c
* board / renesas / salvator - x / salvator - x . c
* This file is Salvator - X board support .
* This file is Salvator - X / Salvator - XS board support .
*
*
* Copyright ( C ) 2015 - 2017 Renesas Electronics Corporation
* Copyright ( C ) 2015 - 2017 Renesas Electronics Corporation
* Copyright ( C ) 2015 Nobuhiro Iwamatsu < iwamatsu @ nigauri . org >
* Copyright ( C ) 2015 Nobuhiro Iwamatsu < iwamatsu @ nigauri . org >
@ -98,14 +98,20 @@ int board_init(void)
gd - > bd - > bi_boot_params = CONFIG_SYS_TEXT_BASE + 0x50000 ;
gd - > bd - > bi_boot_params = CONFIG_SYS_TEXT_BASE + 0x50000 ;
/* Init PFC controller */
/* Init PFC controller */
# if defined(CONFIG_R8A7795)
r8a7795_pinmux_init ( ) ;
r8a7795_pinmux_init ( ) ;
# elif defined(CONFIG_R8A7796)
r8a7796_pinmux_init ( ) ;
# endif
# if defined(CONFIG_R8A7795)
/* GSX: force power and clock supply */
/* GSX: force power and clock supply */
writel ( 0x0000001F , SYSC_PWRONCR2 ) ;
writel ( 0x0000001F , SYSC_PWRONCR2 ) ;
while ( readl ( SYSC_PWRSR2 ) ! = 0x000003E0 )
while ( readl ( SYSC_PWRSR2 ) ! = 0x000003E0 )
mdelay ( 20 ) ;
mdelay ( 20 ) ;
mstp_clrbits_le32 ( MSTPSR1 , SMSTPCR1 , GSX_MSTP112 ) ;
mstp_clrbits_le32 ( MSTPSR1 , SMSTPCR1 , GSX_MSTP112 ) ;
# endif
/* USB1 pull-up */
/* USB1 pull-up */
setbits_le32 ( PFC_PUEN6 , PUEN_USB1_OVC | PUEN_USB1_PWEN ) ;
setbits_le32 ( PFC_PUEN6 , PUEN_USB1_OVC | PUEN_USB1_PWEN ) ;
@ -134,6 +140,7 @@ int board_init(void)
/* IPSR3 */
/* IPSR3 */
gpio_request ( GPIO_FN_AVB_AVTP_CAPTURE_B , NULL ) ;
gpio_request ( GPIO_FN_AVB_AVTP_CAPTURE_B , NULL ) ;
# if defined(CONFIG_R8A7795)
/* USB2_OVC */
/* USB2_OVC */
gpio_request ( GPIO_GP_6_15 , NULL ) ;
gpio_request ( GPIO_GP_6_15 , NULL ) ;
gpio_direction_input ( GPIO_GP_6_15 ) ;
gpio_direction_input ( GPIO_GP_6_15 ) ;
@ -142,7 +149,7 @@ int board_init(void)
gpio_request ( GPIO_GP_6_14 , NULL ) ;
gpio_request ( GPIO_GP_6_14 , NULL ) ;
gpio_direction_output ( GPIO_GP_6_14 , 1 ) ;
gpio_direction_output ( GPIO_GP_6_14 , 1 ) ;
gpio_set_value ( GPIO_GP_6_14 , 1 ) ;
gpio_set_value ( GPIO_GP_6_14 , 1 ) ;
# endif
/* AVB_PHY_RST */
/* AVB_PHY_RST */
gpio_request ( GPIO_GP_2_10 , NULL ) ;
gpio_request ( GPIO_GP_2_10 , NULL ) ;
gpio_direction_output ( GPIO_GP_2_10 , 0 ) ;
gpio_direction_output ( GPIO_GP_2_10 , 0 ) ;
@ -200,7 +207,13 @@ int board_mmc_init(bd_t *bis)
gpio_request ( GPIO_GFN_SD2_DAT2 , NULL ) ;
gpio_request ( GPIO_GFN_SD2_DAT2 , NULL ) ;
gpio_request ( GPIO_GFN_SD2_DAT3 , NULL ) ;
gpio_request ( GPIO_GFN_SD2_DAT3 , NULL ) ;
gpio_request ( GPIO_GFN_SD2_CLK , NULL ) ;
gpio_request ( GPIO_GFN_SD2_CLK , NULL ) ;
# if defined(CONFIG_R8A7795)
gpio_request ( GPIO_GFN_SD2_CMD , NULL ) ;
gpio_request ( GPIO_GFN_SD2_CMD , NULL ) ;
# elif defined(CONFIG_R8A7796)
gpio_request ( GPIO_FN_SD2_CMD , NULL ) ;
# else
# error Only R8A7795 and R87796 is supported
# endif
gpio_request ( GPIO_GP_5_3 , NULL ) ;
gpio_request ( GPIO_GP_5_3 , NULL ) ;
gpio_request ( GPIO_GP_5_9 , NULL ) ;
gpio_request ( GPIO_GP_5_9 , NULL ) ;
gpio_direction_output ( GPIO_GP_5_3 , 0 ) ; /* 1: 3.3V, 0: 1.8V */
gpio_direction_output ( GPIO_GP_5_3 , 0 ) ; /* 1: 3.3V, 0: 1.8V */
@ -211,6 +224,7 @@ int board_mmc_init(bd_t *bis)
if ( ret )
if ( ret )
return ret ;
return ret ;
# if defined(CONFIG_R8A7795)
/* SDHI3 */
/* SDHI3 */
gpio_request ( GPIO_GFN_SD3_DAT0 , NULL ) ; /* GP_4_9 */
gpio_request ( GPIO_GFN_SD3_DAT0 , NULL ) ; /* GP_4_9 */
gpio_request ( GPIO_GFN_SD3_DAT1 , NULL ) ; /* GP_4_10 */
gpio_request ( GPIO_GFN_SD3_DAT1 , NULL ) ; /* GP_4_10 */
@ -218,6 +232,16 @@ int board_mmc_init(bd_t *bis)
gpio_request ( GPIO_GFN_SD3_DAT3 , NULL ) ; /* GP_4_12 */
gpio_request ( GPIO_GFN_SD3_DAT3 , NULL ) ; /* GP_4_12 */
gpio_request ( GPIO_GFN_SD3_CLK , NULL ) ; /* GP_4_7 */
gpio_request ( GPIO_GFN_SD3_CLK , NULL ) ; /* GP_4_7 */
gpio_request ( GPIO_GFN_SD3_CMD , NULL ) ; /* GP_4_8 */
gpio_request ( GPIO_GFN_SD3_CMD , NULL ) ; /* GP_4_8 */
# elif defined(CONFIG_R8A7796)
gpio_request ( GPIO_FN_SD3_DAT0 , NULL ) ; /* GP_4_9 */
gpio_request ( GPIO_FN_SD3_DAT1 , NULL ) ; /* GP_4_10 */
gpio_request ( GPIO_FN_SD3_DAT2 , NULL ) ; /* GP_4_11 */
gpio_request ( GPIO_FN_SD3_DAT3 , NULL ) ; /* GP_4_12 */
gpio_request ( GPIO_FN_SD3_CLK , NULL ) ; /* GP_4_7 */
gpio_request ( GPIO_FN_SD3_CMD , NULL ) ; /* GP_4_8 */
# else
# error Only R8A7795 and R87796 is supported
# endif
/* IPSR10 */
/* IPSR10 */
gpio_request ( GPIO_FN_SD3_CD , NULL ) ;
gpio_request ( GPIO_FN_SD3_CD , NULL ) ;
gpio_request ( GPIO_FN_SD3_WP , NULL ) ;
gpio_request ( GPIO_FN_SD3_WP , NULL ) ;