MXSCM-291 mx6dqscm: set runtime fdt_file and other fixes
authorJuan Gutierrez <juan.gutierrez@nxp.com>
Wed, 19 Apr 2017 15:51:02 +0000 (10:51 -0500)
committerJuan Gutierrez <juan.gutierrez@nxp.com>
Fri, 28 Apr 2017 17:06:43 +0000 (12:06 -0500)
1. set fdt_file according to board_rev which is set at runtime
2. Add macros for proper delimitation for different board builds
3. Fix and add proper iomux configuration

Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
board/freescale/mx6dqscm/mx6dqscm.c
include/configs/mx6dqscm.h

index 98f91cc..ffae922 100644 (file)
@@ -169,12 +169,16 @@ static iomux_v3_cfg_t const usdhc3_pads[] = {
        MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
        MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 #ifndef CONFIG_QWKS_REV3
-       MX6_PAD_SD3_DAT4__GPIO7_IO01 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+       MX6_PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 #endif
        MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
        MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
        MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+#ifdef CONFIG_QWKS_REV3
+       MX6_PAD_SD3_DAT4__GPIO7_IO01 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+#else
        MX6_PAD_NANDF_D0__GPIO2_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */
+#endif
 };
 
 static iomux_v3_cfg_t const usdhc4_pads[] = {
@@ -632,6 +636,7 @@ static iomux_v3_cfg_t const usb_otg_pads[] = {
        MX6_PAD_KEY_COL4__USB_OTG_OC | MUX_PAD_CTRL(NO_PAD_CTRL),
 #else
        MX6_PAD_EIM_D22__USB_OTG_PWR | MUX_PAD_CTRL(NO_PAD_CTRL),
+       MX6_PAD_EIM_D21__USB_OTG_OC | MUX_PAD_CTRL(NO_PAD_CTRL),
 #endif
 #ifdef CONFIG_SCMEVB
        MX6_PAD_ENET_RX_ER__USB_OTG_ID | MUX_PAD_CTRL(OTG_ID_PAD_CTRL),
@@ -659,10 +664,12 @@ static void setup_usb(void)
        imx_iomux_set_gpr_register(1, 13, 1, 1);
 #endif
 
+#ifdef CONFIG_SCMEVB
        imx_iomux_v3_setup_multiple_pads(usb_hc1_pads,
                                         ARRAY_SIZE(usb_hc1_pads));
 
        gpio_request(IMX_GPIO_NR(1, 29), "USB HC1 Power Enable");
+#endif
 }
 
 int board_ehci_hcd_init(int port)
@@ -686,11 +693,13 @@ int board_ehci_power(int port, int on)
        case 0:
                break;
        case 1:
+#ifdef CONFIG_SCMEVB
                if (on)
                        gpio_direction_output(IMX_GPIO_NR(1, 29), 1);
                else
                        gpio_direction_output(IMX_GPIO_NR(1, 29), 0);
                break;
+#endif
        default:
                printf("MXC USB port %d not yet supported\n", port);
                return -EINVAL;
@@ -1066,6 +1075,25 @@ int board_late_init(void)
        add_board_boot_modes(board_boot_modes);
 #endif
 
+#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+#ifdef CONFIG_SCMHVB
+       setenv("board_name", "hvb");
+#elif CONFIG_SCMEVB
+       setenv("board_name", "evb");
+#elif CONFIG_QWKS_REV3
+       setenv("board_name", "qwks-rev3");
+#else
+       setenv("board_name", "qwks-rev2");
+#endif
+#ifdef CONFIG_SCM_LPDDR2_512MB
+       setenv("lpddr2_size", "512mb");
+#elif  CONFIG_SCM_LPDDR2_2GB
+       setenv("lpddr2_size", "2gb");
+#else
+       setenv("lpddr2_size", "1gb");
+#endif
+#endif /*CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG*/
+
 #ifdef CONFIG_ENV_IS_IN_MMC
        board_late_mmc_env_init();
 #endif
@@ -1081,7 +1109,7 @@ int checkboard(void)
 #elif CONFIG_QWKS_REV3
        puts("Board: MX6DQSCM-QWKS-REV3\n");
 #else
-       puts("Board: MX6DQSCM-QWKS\n");
+       puts("Board: MX6DQSCM-QWKS-REV2\n");
 #endif
        return 0;
 }
@@ -1129,10 +1157,12 @@ void board_fastboot_setup(void)
 
 #ifdef CONFIG_ANDROID_RECOVERY
 
+#ifdef CONFIG_SCM_EVB
 #define GPIO_VOL_DN_KEY IMX_GPIO_NR(1, 5)
 iomux_v3_cfg_t const recovery_key_pads[] = {
        (MX6_PAD_GPIO_5__GPIO1_IO05 | MUX_PAD_CTRL(NO_PAD_CTRL)),
 };
+#endif
 
 int check_recovery_cmd_file(void)
 {
@@ -1140,7 +1170,8 @@ int check_recovery_cmd_file(void)
        int recovery_mode = 0;
 
        recovery_mode = recovery_check_and_clean_flag();
-#ifdef CONFIG_EVB_SETTINGS
+
+#ifdef CONFIG_SCM_EVB
        /* Check Recovery Combo Button press or not. */
        imx_iomux_v3_setup_multiple_pads(recovery_key_pads,
                                         ARRAY_SIZE(recovery_key_pads));
index 6f92cab..ec215d7 100644 (file)
 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 /* Enabled USB controller number */
 #endif
 
+#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
+
 #if !defined(CONFIG_FASTBOOT)
 #undef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONFIG_MFG_ENV_SETTINGS \
        "script=boot.scr\0" \
        "image=zImage\0" \
-       "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
+       "fdt_file=undefined\0" \
        "fdt_addr=0x18000000\0" \
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
                        "fi; " \
                "else " \
                        "bootz; " \
+               "fi;\0" \
+       "findfdt="\
+               "if test $fdt_file = undefined; then " \
+                       "setenv fdt_file " \
+                       "imx6dqscm-${lpddr2_size}-${board_name}-fix-ldo.dtb;" \
                "fi;\0"
 
 #undef CONFIG_BOOTCOMMAND
 #define CONFIG_BOOTCOMMAND \
+       "run findfdt;" \
        "mmc dev ${mmcdev};" \
        "if mmc rescan; then " \
                "if run loadbootscript; then " \
        CONFIG_MFG_ENV_SETTINGS \
        "script=boot.scr\0" \
        "image=zImage\0" \
-       "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
+       "fdt_file=undefined\0" \
        "fdt_addr=0x18000000\0" \
        "boot_fdt=try\0" \
        "ip_dyn=yes\0" \
                "run spinorargs; sf probe; " \
                "sf read 0x12000000 0x90000 0x700000; " \
                "sf read 0x18000000 0x80000 0x10000; " \
-               "bootz 0x12000000 - 0x18000000"
+               "bootz 0x12000000 - 0x18000000\0" \
+       "findfdt="\
+               "if test $fdt_file = undefined; then " \
+                       "setenv fdt_file " \
+                       "imx6dqscm-${lpddr2_size}-${board_name}-fix-ldo.dtb;" \
+               "fi;\0"
 
 #undef CONFIG_BOOTCOMMAND
 #define CONFIG_BOOTCOMMAND \
+       "run findfdt;" \
        "run spinorboot; " \
        "mmc dev ${mmcdev};" \
        "if mmc rescan; then " \