Merge git://git.denx.de/u-boot-fsl-qoriq
[oweals/u-boot.git] / board / solidrun / mx6cuboxi / mx6cuboxi.c
index 986abc57720bc15327d0d5e6d2f64a1194618d71..ee9e4f7c01ebf0a1088c1bb0a32e109a84596fa9 100644 (file)
@@ -308,13 +308,8 @@ int board_ehci_hcd_init(int port)
 
 int board_early_init_f(void)
 {
-       int ret = 0;
        setup_iomux_uart();
 
-#ifdef CONFIG_VIDEO_IPUV3
-       ret = setup_display();
-#endif
-
 #ifdef CONFIG_CMD_SATA
        setup_sata();
 #endif
@@ -322,15 +317,21 @@ int board_early_init_f(void)
 #ifdef CONFIG_USB_EHCI_MX6
        setup_usb();
 #endif
-       return ret;
+       return 0;
 }
 
 int board_init(void)
 {
+       int ret = 0;
+
        /* address of boot parameters */
        gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
 
-       return 0;
+#ifdef CONFIG_VIDEO_IPUV3
+       ret = setup_display();
+#endif
+
+       return ret;
 }
 
 static bool is_hummingboard(void)
@@ -349,6 +350,7 @@ static bool is_hummingboard(void)
         * Machine selection -
         * Machine        val1, val2
         * -------------------------
+        * HB2            x     x
         * HB rev 3.x     x     0
         * CBi            0     1
         * HB             1     1
@@ -362,9 +364,37 @@ static bool is_hummingboard(void)
                return true;
 }
 
+static bool is_hummingboard2(void)
+{
+       int val1;
+
+       SETUP_IOMUX_PADS(hb_cbi_sense);
+
+       gpio_direction_input(IMX_GPIO_NR(2, 8));
+
+        val1 = gpio_get_value(IMX_GPIO_NR(2, 8));
+
+       /*
+        * Machine selection -
+        * Machine        val1
+        * -------------------
+        * HB2            0
+        * HB rev 3.x     x
+        * CBi            x
+        * HB             x
+        */
+
+       if (val1 == 0)
+               return true;
+       else
+               return false;
+}
+
 int checkboard(void)
 {
-       if (is_hummingboard())
+       if (is_hummingboard2())
+               puts("Board: MX6 Hummingboard2\n");
+       else if (is_hummingboard())
                puts("Board: MX6 Hummingboard\n");
        else
                puts("Board: MX6 Cubox-i\n");
@@ -375,7 +405,9 @@ int checkboard(void)
 int board_late_init(void)
 {
 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
-       if (is_hummingboard())
+       if (is_hummingboard2())
+               env_set("board_name", "HUMMINGBOARD2");
+       else if (is_hummingboard())
                env_set("board_name", "HUMMINGBOARD");
        else
                env_set("board_name", "CUBOXI");