wandboard: Add board revision detection support
PATCH 1/1 wandboard: Add board revision detection support
From: Fabio Estevam <[email protected]>
There are two revisions of wandboard: version B1 and C1.
Add the revision detection support, so that the correct dtb file can be correctly loaded.
Based on the patch from Richard Hu <[email protected]>.
Signed-off-by Fabio Estevam <[email protected]>
--- board/wandboard/wandboard.c | 26 +++++++++++++++++++++++++- include/configs/wandboard.h | 8 ++++++-- 2 files changed, 31 insertions(+), 3 deletions(-)
board/wandboard/wandboard.c +25 -1
@@ -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 ; }
include/configs/wandboard.h +6 -2
@@ -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" \
Signature · 1 line
1.9.1