void board_init_f(ulong dummy) { struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR; /* * We don't use DMA in SPL, but we do need it in U-Boot. U-Boot * initializes DMA very early (before all board code), so the only * opportunity we have to initialize APBHDMA clocks is in SPL. */ setbits_le32(&mxc_ccm->CCGR0, MXC_CCM_CCGR0_APBHDMA_MASK); enable_usdhc_clk(1, 2); arch_cpu_init(); timer_init(); cm_fx6_setup_ecspi(); cm_fx6_setup_uart(); get_clocks(); preloader_console_init(); gpio_direction_output(CM_FX6_GREEN_LED, 1); if (cm_fx6_spl_dram_init()) { puts("!!!ERROR!!! DRAM detection failed!!!\n"); hang(); } memset(__bss_start, 0, __bss_end - __bss_start); board_init_r(NULL, 0); }
int board_mmc_init(bd_t *bis) { int i; cm_fx6_set_usdhc_iomux(); for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) { usdhc_cfg[i].sdhc_clk = mxc_get_clock(usdhc_clk[i]); usdhc_cfg[i].max_bus_width = 4; fsl_esdhc_initialize(bis, &usdhc_cfg[i]); enable_usdhc_clk(1, i); } return 0; }
int board_init(void) { int ret; gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; cm_fx6_setup_gpmi_nand(); ret = cm_fx6_setup_ecspi(); if (ret) printf("Warning: ECSPI setup failed: %d\n", ret); ret = cm_fx6_setup_usb_otg(); if (ret) printf("Warning: USB OTG setup failed: %d\n", ret); ret = cm_fx6_setup_usb_host(); if (ret) printf("Warning: USB host setup failed: %d\n", ret); /* * cm-fx6 may have iSSD not assembled and in this case it has * bypasses for a (m)SATA socket on the baseboard. The socketed * device is not controlled by those GPIOs. So just print a warning * if the setup fails. */ ret = cm_fx6_setup_issd(); if (ret) printf("Warning: iSSD setup failed: %d\n", ret); /* Warn on failure but do not abort boot */ ret = cm_fx6_setup_i2c(); if (ret) printf("Warning: I2C setup failed: %d\n", ret); cm_fx6_setup_display(); /* This should be done in the MMC driver when MX6 has a clock driver */ #ifdef CONFIG_FSL_ESDHC if (IS_ENABLED(CONFIG_BLK)) { int i; cm_fx6_set_usdhc_iomux(); for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) enable_usdhc_clk(1, i); } #endif return 0; }