From 24db10ece3e28dfcb1c45b3951e418303f841a19 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 18 Jun 2018 14:47:17 +0200 Subject: tdx-cfg-block: simplify i.MX 6 module detection Use CONFIG_TARGET_... at compile time to differentiate between Apalis iMX6, Colibri iMX6 and Colibri iMX6ULL. Avoid code duplication by moving question about Wi-Fi / Bluetooth before IT/non-IT decision. Signed-off-by: Stefan Agner Acked-by: Marcel Ziswiler --- board/toradex/common/tdx-cfg-block.c | 60 ++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/board/toradex/common/tdx-cfg-block.c b/board/toradex/common/tdx-cfg-block.c index 38b7f12851..68ec51f3ec 100644 --- a/board/toradex/common/tdx-cfg-block.c +++ b/board/toradex/common/tdx-cfg-block.c @@ -280,6 +280,9 @@ static int get_cfgblock_interactive(void) char it = 'n'; int len; + /* Unkown module by default */ + tdx_hw_tag.prodid = 0; + if (cpu_is_pxa27x()) sprintf(message, "Is the module the 312 MHz version? [y/N] "); else @@ -290,48 +293,49 @@ static int get_cfgblock_interactive(void) soc = getenv("soc"); if (!strcmp("mx6", soc)) { -#ifdef CONFIG_MACH_TYPE - if (it == 'y' || it == 'Y') +#ifdef CONFIG_TARGET_APALIS_IMX6 + if (it == 'y' || it == 'Y') { if (is_cpu_type(MXC_CPU_MX6Q)) tdx_hw_tag.prodid = APALIS_IMX6Q_IT; else tdx_hw_tag.prodid = APALIS_IMX6D_IT; - else + } else { if (is_cpu_type(MXC_CPU_MX6Q)) tdx_hw_tag.prodid = APALIS_IMX6Q; else tdx_hw_tag.prodid = APALIS_IMX6D; -#else - char wb = 'n'; - if (it == 'y' || it == 'Y') + } +#elif CONFIG_TARGET_COLIBRI_IMX6 + if (it == 'y' || it == 'Y') { if (is_cpu_type(MXC_CPU_MX6DL)) tdx_hw_tag.prodid = COLIBRI_IMX6DL_IT; else if (is_cpu_type(MXC_CPU_MX6SOLO)) tdx_hw_tag.prodid = COLIBRI_IMX6S_IT; - else { - sprintf(message, "Does the module have WiFi / Bluetooth? [y/N] "); - len = cli_readline(message); - wb = console_buffer[0]; - if (wb == 'y' || wb =='Y') - tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT_IT; - else - tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT; - } - else + } else { if (is_cpu_type(MXC_CPU_MX6DL)) tdx_hw_tag.prodid = COLIBRI_IMX6DL; else if (is_cpu_type(MXC_CPU_MX6SOLO)) tdx_hw_tag.prodid = COLIBRI_IMX6S; - else { - sprintf(message, "Does the module have WiFi / Bluetooth? [y/N] "); - len = cli_readline(message); - wb = console_buffer[0]; - if (wb == 'y' || wb =='Y') - tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT; - else - tdx_hw_tag.prodid = COLIBRI_IMX6ULL; - } -#endif /* CONFIG_MACH_TYPE */ + } +#elif CONFIG_TARGET_COLIBRI_IMX6ULL + char wb = 'n'; + sprintf(message, "Does the module have Wi-Fi / Bluetooth? [y/N] "); + len = cli_readline(message); + wb = console_buffer[0]; + if (it == 'y' || it == 'Y') { + if (wb == 'y' || wb =='Y') + tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT_IT; + else + tdx_hw_tag.prodid = COLIBRI_IMX6ULL_IT; + } else { + if (wb == 'y' || wb =='Y') + tdx_hw_tag.prodid = COLIBRI_IMX6ULL_WIFI_BT; + else + tdx_hw_tag.prodid = COLIBRI_IMX6ULL; + } +#else + tdx_hw_tag.prodid = 0; +#endif } else if (!strcmp("imx7d", soc)) { #ifdef CONFIG_TARGET_COLIBRI_IMX7_EMMC tdx_hw_tag.prodid = COLIBRI_IMX7D_EMMC; @@ -385,7 +389,9 @@ static int get_cfgblock_interactive(void) tdx_hw_tag.prodid = COLIBRI_VF61_IT; else tdx_hw_tag.prodid = COLIBRI_VF61; - } else { + } + + if (!tdx_hw_tag.prodid) { printf("Module type not detectable due to unknown SoC\n"); return -1; } -- cgit v1.2.3