On 2015-05-21, Fabio Estevam wrote: > From: Fabio Estevam <fabio.este...@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 <hak...@gmail.com>. > > Signed-off-by: Fabio Estevam <fabio.este...@freescale.com>
Tested on a Wandboard dual (rev c1) and wandboard quad (rev b1). Tested-By: Vagrant Cascadian <vagr...@aikidev.net> > --- > 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" \ > > -- > 1.9.1
signature.asc
Description: PGP signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot