From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Thu, 23 Apr 2015 08:16:37 +0200 Subject: [U-Boot] [PATCH 4/5] mx6cuboxi: Differentiate Cubox-i and Hummingboard In-Reply-To: <1429761426-26748-4-git-send-email-festevam@gmail.com> References: <1429761426-26748-1-git-send-email-festevam@gmail.com> <1429761426-26748-4-git-send-email-festevam@gmail.com> Message-ID: <55388E45.6050907@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Fabio, On 23/04/2015 05:57, Fabio Estevam wrote: > From: Fabio Estevam > > Introduce is_hummingboard() function that reads GPIOs that can distinguish > between Cubox-i and Hummingboard. > > Print the board name accordingly. > > Signed-off-by: Fabio Estevam > --- > board/solidrun/mx6cuboxi/mx6cuboxi.c | 41 +++++++++++++++++++++++++++++++++++- > 1 file changed, 40 insertions(+), 1 deletion(-) > > diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c > index 1f240ae..83410b2 100644 > --- a/board/solidrun/mx6cuboxi/mx6cuboxi.c > +++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c > @@ -71,6 +71,12 @@ static iomux_v3_cfg_t const usdhc2_pads[] = { > IOMUX_PADS(PAD_SD2_DAT3__SD2_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), > }; > > +static iomux_v3_cfg_t const hb_cbi_sense[] = { > + /* These pins are for sensing if it is a CuBox-i or a HummingBoard */ > + IOMUX_PADS(PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL(UART_PAD_CTRL)), > + IOMUX_PADS(PAD_EIM_DA4__GPIO3_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)), > +}; > + > static void setup_iomux_uart(void) > { > SETUP_IOMUX_PADS(uart1_pads); > @@ -167,9 +173,42 @@ int board_init(void) > return 0; > } > > +static bool is_hummingboard(void) > +{ > + int val1, val2; > + > + SETUP_IOMUX_PADS(hb_cbi_sense); > + > + gpio_direction_input(IMX_GPIO_NR(4, 9)); > + gpio_direction_input(IMX_GPIO_NR(3, 4)); > + > + val1 = gpio_get_value(IMX_GPIO_NR(4, 9)); > + val2 = gpio_get_value(IMX_GPIO_NR(3, 4)); > + > + /* > + * Machine selection - > + * Machine val1, val2 > + * ------------------------- > + * HB rev 3.x x 0 > + * CBi 0 1 > + * HB 1 1 > + */ > + > + if (val2 == 0) > + return true; > + else if (val1 == 0) > + return false; > + else > + return true; > +} > + > int checkboard(void) > { > - puts("Board: MX6 Hummingboard\n"); > + if (is_hummingboard()) > + puts("Board: MX6 Hummingboard\n"); > + else > + puts("Board: MX6 Cubox-i\n"); > + > return 0; > } > > Reviewed-by: Stefano Babic 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 =====================================================================