detect and setup solidrun hummingboard2
authorDennis Gilmore <dennis@ausil.us>
Thu, 24 Aug 2017 15:49:43 +0000 (10:49 -0500)
committerStefano Babic <sbabic@denx.de>
Wed, 20 Sep 2017 13:34:59 +0000 (15:34 +0200)
The hummingboard2 is slightly different to the cubox i and to the
hummingboard. The GPIO pin info to probe came from solidruns
for of u-boot on github.
https://github.com/SolidRun/u-boot-imx6/blob/imx6/board/solidrun/mx6_cubox-i/mx6_cubox-i.c#L569-L589
I have tested on a hummingboard-edge witha  imx6 solo and 512mb of
ram.

Signed-off-by: Dennis Gilmore <dgilmore@redhat.com>
board/solidrun/mx6cuboxi/mx6cuboxi.c
include/configs/mx6cuboxi.h

index 986abc57720bc15327d0d5e6d2f64a1194618d71..1e4da4a6b1674c4b38fbc217977a919f3bb136ce 100644 (file)
@@ -349,6 +349,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 +363,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 +404,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");
index 4e12de1212249adfe24aa8cf73505925aaa2ae1b..7fefe8edcb81747e2f09a9fef622bc1afbbf1c5d 100644 (file)
                        "fi; "  \
                "fi\0" \
        "findfdt="\
+               "if test $board_name = HUMMINGBOARD2 && test $board_rev = MX6Q ; then " \
+                       "setenv fdtfile imx6q-hummingboard2.dtb; fi; " \
+               "if test $board_name = HUMMINGBOARD2 && test $board_rev = MX6DL ; then " \
+                       "setenv fdtfile imx6dl-hummingboard2.dtb; fi; " \
                "if test $board_name = HUMMINGBOARD && test $board_rev = MX6Q ; then " \
                        "setenv fdtfile imx6q-hummingboard.dtb; fi; " \
                "if test $board_name = HUMMINGBOARD && test $board_rev = MX6DL ; then " \