[U-Boot] [PATCH v2] wandboard: Add board revision detection support

Stefano Babic sbabic at denx.de
Fri May 22 09:49:53 CEST 2015


Hi Fabio,

On 22/05/2015 00:24, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam at freescale.com>
> 
> There are two revisions of wandboard: version B1 and C1.
> 
> Add the revision detection support, so that the correct dtb file can
> be automatically loaded.
> 
> Based on the patch from Richard Hu <hakahu at gmail.com>.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
> Changes since v1:
> 
> - Fixed commit log to 'automatically loaded'.
> 
>  board/wandboard/wandboard.c | 26 +++++++++++++++++++++++++-
>  include/configs/wandboard.h |  8 ++++++--
>  2 files changed, 31 insertions(+), 3 deletions(-)
> 
> diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c
> index 90625ab..0af63d2 100644
> --- a/board/wandboard/wandboard.c
> +++ b/board/wandboard/wandboard.c
> @@ -50,6 +50,7 @@ DECLARE_GLOBAL_DATA_PTR;
>  #define USDHC1_CD_GPIO		IMX_GPIO_NR(1, 2)
>  #define USDHC3_CD_GPIO		IMX_GPIO_NR(3, 9)
>  #define ETH_PHY_RESET		IMX_GPIO_NR(3, 29)
> +#define REV_DETECTION		IMX_GPIO_NR(2, 28)
>  
>  int dram_init(void)
>  {
> @@ -105,6 +106,10 @@ static iomux_v3_cfg_t const enet_pads[] = {
>  	IOMUX_PADS(PAD_EIM_D29__GPIO3_IO29    | MUX_PAD_CTRL(NO_PAD_CTRL)),
>  };
>  
> +static iomux_v3_cfg_t const rev_detection_pad[] = {
> +	IOMUX_PADS(PAD_EIM_EB0__GPIO2_IO28  | MUX_PAD_CTRL(NO_PAD_CTRL)),
> +};
> +
>  static void setup_iomux_uart(void)
>  {
>  	SETUP_IOMUX_PADS(uart1_pads);
> @@ -393,6 +398,17 @@ static const struct boot_mode board_boot_modes[] = {
>  };
>  #endif
>  
> +static bool is_revc1(void)
> +{
> +	SETUP_IOMUX_PADS(rev_detection_pad);
> +	gpio_direction_input(REV_DETECTION);
> +
> +	if (gpio_get_value(REV_DETECTION))
> +		return true;
> +	else
> +		return false;
> +}
> +
>  int board_late_init(void)
>  {
>  #ifdef CONFIG_CMD_BMODE
> @@ -404,6 +420,11 @@ int board_late_init(void)
>  		setenv("board_rev", "MX6Q");
>  	else
>  		setenv("board_rev", "MX6DL");
> +
> +	if (is_revc1())
> +		setenv("board_name", "C1");
> +	else
> +		setenv("board_name", "B1");
>  #endif
>  	return 0;
>  }
> @@ -424,7 +445,10 @@ int board_init(void)
>  
>  int checkboard(void)
>  {
> -	puts("Board: Wandboard\n");
> +	if (is_revc1())
> +		puts("Board: Wandboard rev C1\n");
> +	else
> +		puts("Board: Wandboard rev B1\n");
>  
>  	return 0;
>  }
> diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
> index 7ce861e..e87ab90 100644
> --- a/include/configs/wandboard.h
> +++ b/include/configs/wandboard.h
> @@ -232,10 +232,14 @@
>  			"bootz; " \
>  		"fi;\0" \
>  	"findfdt="\
> -		"if test $board_rev = MX6Q ; then " \
> +		"if test $board_name = C1 && test $board_rev = MX6Q ; then " \
>  			"setenv fdtfile imx6q-wandboard.dtb; fi; " \
> -		"if test $board_rev = MX6DL ; then " \
> +		"if test $board_name = C1 && test $board_rev = MX6DL ; then " \
>  			"setenv fdtfile imx6dl-wandboard.dtb; fi; " \
> +		"if test $board_name = B1 && test $board_rev = MX6Q ; then " \
> +			"setenv fdtfile imx6q-wandboard-revb1.dtb; fi; " \
> +		"if test $board_name = B1 && test $board_rev = MX6DL ; then " \
> +			"setenv fdtfile imx6dl-wandboard-revb1.dtb; fi; " \
>  		"if test $fdtfile = undefined; then " \
>  			"echo WARNING: Could not determine dtb to use; fi; \0" \
>  
> 

Reviewed-by: Stefano Babic <sbabic at denx.de>

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list