From: Tommaso Merciai <tomm.merciai@gmail.com>
Cc: tomm.merciai@gmail.com, linuxfancy@googlegroups.com,
Breno Lima <breno.lima@nxp.com>,
Francesco Montefoschi <francesco.montefoschi@udoo.org>,
Fabio Estevam <festevam@gmail.com>,
u-boot@lists.denx.de
Subject: [PATCH] udoo_neo: fix udoo neo UNDEFINED
Date: Sun, 2 Jan 2022 19:27:17 +0100 [thread overview]
Message-ID: <20220102182717.36734-1-tomm.merciai@gmail.com> (raw)
get_board_value function fails to get the right board configuration on
second time that is call. This patch move get_board_value function at
spl level, once is call, store the right configuration into gd static
variable gd->board_type and fix the previous error.
get_board_value is now call only one time.
Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com>
---
board/udoo/neo/neo.c | 77 +++++++++++++++++++-------------------
configs/udoo_neo_defconfig | 1 +
2 files changed, 40 insertions(+), 38 deletions(-)
diff --git a/board/udoo/neo/neo.c b/board/udoo/neo/neo.c
index 62f81fff68..0ca5fbda60 100644
--- a/board/udoo/neo/neo.c
+++ b/board/udoo/neo/neo.c
@@ -235,13 +235,6 @@ static iomux_v3_cfg_t const phy_control_pads[] = {
MUX_PAD_CTRL(ENET_CLK_PAD_CTRL),
};
-static iomux_v3_cfg_t const board_recognition_pads[] = {
- /*Connected to R184*/
- MX6_PAD_NAND_READY_B__GPIO4_IO_13 | BOARD_DETECT_PAD_CFG,
- /*Connected to R185*/
- MX6_PAD_NAND_ALE__GPIO4_IO_0 | BOARD_DETECT_PAD_CFG,
-};
-
static iomux_v3_cfg_t const wdog_b_pad = {
MX6_PAD_GPIO1_IO13__GPIO1_IO_13 | MUX_PAD_CTRL(WDOG_PAD_CTRL),
};
@@ -308,34 +301,6 @@ int board_init(void)
return 0;
}
-static int get_board_value(void)
-{
- int r184, r185;
-
- imx_iomux_v3_setup_multiple_pads(board_recognition_pads,
- ARRAY_SIZE(board_recognition_pads));
-
- gpio_request(IMX_GPIO_NR(4, 13), "r184");
- gpio_request(IMX_GPIO_NR(4, 0), "r185");
- gpio_direction_input(IMX_GPIO_NR(4, 13));
- gpio_direction_input(IMX_GPIO_NR(4, 0));
-
- r184 = gpio_get_value(IMX_GPIO_NR(4, 13));
- r185 = gpio_get_value(IMX_GPIO_NR(4, 0));
-
- /*
- * Machine selection -
- * Machine r184, r185
- * ---------------------------------
- * Basic 0 0
- * Basic Ks 0 1
- * Full 1 0
- * Extended 1 1
- */
-
- return (r184 << 1) + r185;
-}
-
int board_early_init_f(void)
{
setup_iomux_uart();
@@ -370,7 +335,7 @@ int board_mmc_init(struct bd_info *bis)
static char *board_string(void)
{
- switch (get_board_value()) {
+ switch (gd->board_type) {
case UDOO_NEO_TYPE_BASIC:
return "BASIC";
case UDOO_NEO_TYPE_BASIC_KS:
@@ -403,6 +368,13 @@ int board_late_init(void)
#include <linux/libfdt.h>
#include <asm/arch/mx6-ddr.h>
+static iomux_v3_cfg_t const board_recognition_pads[] = {
+ /*Connected to R184*/
+ MX6_PAD_NAND_READY_B__GPIO4_IO_13 | BOARD_DETECT_PAD_CFG,
+ /*Connected to R185*/
+ MX6_PAD_NAND_ALE__GPIO4_IO_0 | BOARD_DETECT_PAD_CFG,
+};
+
static const struct mx6sx_iomux_ddr_regs mx6_ddr_ioregs = {
.dram_dqm0 = 0x00000028,
.dram_dqm1 = 0x00000028,
@@ -482,6 +454,34 @@ static struct mx6_ddr3_cfg neo_basic_mem_ddr = {
.trasmin = 3500,
};
+static int get_board_value(void)
+{
+ int r184, r185;
+
+ imx_iomux_v3_setup_multiple_pads(board_recognition_pads,
+ ARRAY_SIZE(board_recognition_pads));
+
+ gpio_request(IMX_GPIO_NR(4, 13), "r184");
+ gpio_request(IMX_GPIO_NR(4, 0), "r185");
+ gpio_direction_input(IMX_GPIO_NR(4, 13));
+ gpio_direction_input(IMX_GPIO_NR(4, 0));
+
+ r184 = gpio_get_value(IMX_GPIO_NR(4, 13));
+ r185 = gpio_get_value(IMX_GPIO_NR(4, 0));
+
+ /*
+ * Machine selection -
+ * Machine r184, r185
+ * ---------------------------------
+ * Basic 0 0
+ * Basic Ks 0 1
+ * Full 1 0
+ * Extended 1 1
+ */
+
+ return (r184 << 1) + r185;
+}
+
static void ccgr_init(void)
{
struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
@@ -498,7 +498,7 @@ static void ccgr_init(void)
static void spl_dram_init(void)
{
- int board = get_board_value();
+ gd->board_type = get_board_value();
struct mx6_ddr_sysinfo sysinfo = {
.dsize = 1, /* width of data bus: 1 = 32 bits */
@@ -516,7 +516,8 @@ static void spl_dram_init(void)
};
mx6sx_dram_iocfg(32, &mx6_ddr_ioregs, &mx6_grp_ioregs);
- if (board == UDOO_NEO_TYPE_BASIC || board == UDOO_NEO_TYPE_BASIC_KS)
+ if (gd->board_type == UDOO_NEO_TYPE_BASIC ||
+ gd->board_type == UDOO_NEO_TYPE_BASIC_KS)
mx6_dram_cfg(&sysinfo, &neo_basic_mmcd_calib,
&neo_basic_mem_ddr);
else
diff --git a/configs/udoo_neo_defconfig b/configs/udoo_neo_defconfig
index ca08de1bd4..eff33909d7 100644
--- a/configs/udoo_neo_defconfig
+++ b/configs/udoo_neo_defconfig
@@ -62,3 +62,4 @@ CONFIG_DM_USB=y
CONFIG_USB_STORAGE=y
CONFIG_MXC_UART=y
CONFIG_IMX_THERMAL=y
+CONFIG_BOARD_TYPES=y
\ No newline at end of file
--
2.25.1
next reply other threads:[~2022-01-02 18:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-02 18:27 Tommaso Merciai [this message]
2022-01-02 19:28 ` [PATCH] udoo_neo: fix udoo neo UNDEFINED Fabio Estevam
2022-01-02 22:28 ` Tommaso Merciai
2022-01-02 23:59 ` Tommaso Merciai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220102182717.36734-1-tomm.merciai@gmail.com \
--to=tomm.merciai@gmail.com \
--cc=breno.lima@nxp.com \
--cc=festevam@gmail.com \
--cc=francesco.montefoschi@udoo.org \
--cc=linuxfancy@googlegroups.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.