add hummingboard 2 patch
This commit is contained in:
parent
e37941d681
commit
fde8e09f7f
240
mx6-Initial-Hummingboard-2-support.patch
Normal file
240
mx6-Initial-Hummingboard-2-support.patch
Normal file
@ -0,0 +1,240 @@
|
||||
From f349c5dc5ca2af90e026135b807668444ff23d84 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Mon, 6 Mar 2017 09:28:37 +0000
|
||||
Subject: [PATCH 1/2] Initial Hummingboard 2 support
|
||||
|
||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
||||
---
|
||||
board/solidrun/mx6cuboxi/mx6cuboxi.c | 118 +++++++++++++++++++++++++++--------
|
||||
1 file changed, 92 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
index 285588d..5b187ff 100644
|
||||
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
@@ -37,6 +37,15 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
+enum {
|
||||
+ CUBOX,
|
||||
+ HB1,
|
||||
+ HB2,
|
||||
+ HB2r15,
|
||||
+};
|
||||
+
|
||||
+static int board_type;
|
||||
+
|
||||
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
@@ -48,6 +57,9 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
+#define ENET_PAD_CTRL_OD (PAD_CTL_PUS_100K_UP | \
|
||||
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS | PAD_CTL_ODE)
|
||||
+
|
||||
#define ENET_PAD_CTRL_PD (PAD_CTL_PUS_100K_DOWN | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
@@ -79,8 +91,11 @@ static iomux_v3_cfg_t const usdhc2_pads[] = {
|
||||
|
||||
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)),
|
||||
+ 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)),
|
||||
+ IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | MUX_PAD_CTRL(UART_PAD_CTRL)),
|
||||
+ IOMUX_PADS(PAD_CSI0_DAT14__GPIO6_IO00 | MUX_PAD_CTRL(UART_PAD_CTRL)),
|
||||
+ IOMUX_PADS(PAD_CSI0_DAT18__GPIO6_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)),
|
||||
};
|
||||
|
||||
static iomux_v3_cfg_t const usb_pads[] = {
|
||||
@@ -92,8 +107,9 @@ static void setup_iomux_uart(void)
|
||||
SETUP_IOMUX_PADS(uart1_pads);
|
||||
}
|
||||
|
||||
-static struct fsl_esdhc_cfg usdhc_cfg[1] = {
|
||||
+static struct fsl_esdhc_cfg usdhc_cfg[2] = {
|
||||
{USDHC2_BASE_ADDR},
|
||||
+ {USDHC3_BASE_ADDR},
|
||||
};
|
||||
|
||||
int board_mmc_getcd(struct mmc *mmc)
|
||||
@@ -103,16 +119,40 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
- SETUP_IOMUX_PADS(usdhc2_pads);
|
||||
- usdhc_cfg[0].esdhc_base = USDHC2_BASE_ADDR;
|
||||
- usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
|
||||
- gd->arch.sdhc_clk = usdhc_cfg[0].sdhc_clk;
|
||||
+ int ret;
|
||||
+ u32 index = 0;
|
||||
+
|
||||
+ for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
|
||||
+ switch (index) {
|
||||
+ case 0:
|
||||
+ SETUP_IOMUX_PADS(usdhc2_pads);
|
||||
+ usdhc_cfg[0].esdhc_base = USDHC2_BASE_ADDR;
|
||||
+ usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
|
||||
+ gd->arch.sdhc_clk = usdhc_cfg[0].sdhc_clk;
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ SETUP_IOMUX_PADS(usdhc3_pads);
|
||||
+ usdhc_cfg[1].esdhc_base = USDHC3_BASE_ADDR;
|
||||
+ usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
|
||||
+ gd->arch.sdhc_clk = usdhc_cfg[1].sdhc_clk;
|
||||
+ break;
|
||||
+ default:
|
||||
+ printf("Warning: you configured more USDHC controllers"
|
||||
+ "(%d) then supported by the board (%d)\n",
|
||||
+ index + 1, CONFIG_SYS_FSL_USDHC_NUM);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
|
||||
- return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
|
||||
+ ret = fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static iomux_v3_cfg_t const enet_pads[] = {
|
||||
- IOMUX_PADS(PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
||||
+ IOMUX_PADS(PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL_OD)),
|
||||
IOMUX_PADS(PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL)),
|
||||
/* AR8035 reset */
|
||||
IOMUX_PADS(PAD_KEY_ROW4__GPIO4_IO15 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)),
|
||||
@@ -328,41 +368,62 @@ int board_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static bool is_hummingboard(void)
|
||||
+static int is_hummingboard(void)
|
||||
{
|
||||
- int val1, val2;
|
||||
+ int val1, val2, val3, val4, val5;
|
||||
|
||||
SETUP_IOMUX_PADS(hb_cbi_sense);
|
||||
|
||||
gpio_direction_input(IMX_GPIO_NR(4, 9));
|
||||
gpio_direction_input(IMX_GPIO_NR(3, 4));
|
||||
+ gpio_direction_input(IMX_GPIO_NR(2, 8));
|
||||
+ gpio_direction_input(IMX_GPIO_NR(6, 0));
|
||||
+ gpio_direction_input(IMX_GPIO_NR(6, 4));
|
||||
|
||||
val1 = gpio_get_value(IMX_GPIO_NR(4, 9));
|
||||
val2 = gpio_get_value(IMX_GPIO_NR(3, 4));
|
||||
+ val3 = gpio_get_value(IMX_GPIO_NR(2, 8));
|
||||
+ val4 = gpio_get_value(IMX_GPIO_NR(6, 0));
|
||||
+ val5 = gpio_get_value(IMX_GPIO_NR(6, 4));
|
||||
|
||||
/*
|
||||
* Machine selection -
|
||||
- * Machine val1, val2
|
||||
- * -------------------------
|
||||
- * HB rev 3.x x 0
|
||||
- * CBi 0 1
|
||||
- * HB 1 1
|
||||
+ * Machine val1, val2, val3
|
||||
+ * -------------------------------
|
||||
+ * HB2 x x 0
|
||||
+ * HB rev 3.x x 0 x
|
||||
+ * CBi 0 1 x
|
||||
+ * HB 1 1 x
|
||||
*/
|
||||
|
||||
- if (val2 == 0)
|
||||
- return true;
|
||||
- else if (val1 == 0)
|
||||
- return false;
|
||||
- else
|
||||
- return true;
|
||||
+ if (val3 == 0) {
|
||||
+ board_type = HB2;
|
||||
+ } else if (val2 == 0) {
|
||||
+ board_type = HB1;
|
||||
+ } else if (val1 == 0) {
|
||||
+ board_type = CUBOX;
|
||||
+ } else {
|
||||
+ board_type = HB1;
|
||||
+ }
|
||||
+
|
||||
+ if (val4 == 1 && val5 == 0)
|
||||
+ board_type = HB2r15;
|
||||
+
|
||||
+ return board_type;
|
||||
+
|
||||
}
|
||||
|
||||
int checkboard(void)
|
||||
{
|
||||
- if (is_hummingboard())
|
||||
+ switch (board_type) {
|
||||
+ case HB2:
|
||||
+ case HB2r15:
|
||||
+ puts("Board: MX6 Hummingboard 2\n");
|
||||
+ case HB1:
|
||||
puts("Board: MX6 Hummingboard\n");
|
||||
- else
|
||||
+ case CUBOX:
|
||||
puts("Board: MX6 Cubox-i\n");
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -370,10 +431,15 @@ int checkboard(void)
|
||||
int board_late_init(void)
|
||||
{
|
||||
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
|
||||
- if (is_hummingboard())
|
||||
+ switch (board_type) {
|
||||
+ case HB2:
|
||||
+ case HB2r15:
|
||||
+ setenv("board_name", "HUMMINGBOARD2");
|
||||
+ case HB1:
|
||||
setenv("board_name", "HUMMINGBOARD");
|
||||
- else
|
||||
+ case CUBOX:
|
||||
setenv("board_name", "CUBOXI");
|
||||
+ }
|
||||
|
||||
if (is_mx6dq())
|
||||
setenv("board_rev", "MX6Q");
|
||||
--
|
||||
2.9.3
|
||||
|
||||
From 039d4ce71df224d36f857519cc7a7f56568a75c3 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Mon, 6 Mar 2017 11:26:21 +0000
|
||||
Subject: [PATCH 2/2] drop mmc init for the moment
|
||||
|
||||
---
|
||||
board/solidrun/mx6cuboxi/mx6cuboxi.c | 6 ------
|
||||
1 file changed, 6 deletions(-)
|
||||
|
||||
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
index 5b187ff..50dcc09 100644
|
||||
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
|
||||
@@ -130,12 +130,6 @@ int board_mmc_init(bd_t *bis)
|
||||
usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
|
||||
gd->arch.sdhc_clk = usdhc_cfg[0].sdhc_clk;
|
||||
break;
|
||||
- case 1:
|
||||
- SETUP_IOMUX_PADS(usdhc3_pads);
|
||||
- usdhc_cfg[1].esdhc_base = USDHC3_BASE_ADDR;
|
||||
- usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
|
||||
- gd->arch.sdhc_clk = usdhc_cfg[1].sdhc_clk;
|
||||
- break;
|
||||
default:
|
||||
printf("Warning: you configured more USDHC controllers"
|
||||
"(%d) then supported by the board (%d)\n",
|
||||
--
|
||||
2.9.3
|
||||
|
Loading…
Reference in New Issue
Block a user