mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 13:14:19 +08:00
ARM: imx: dh-imx6: Convert SD/MMC support to DM
Enable DM block and DM MMC support on DHCOM iMX6 PDK2. Convert board code to match the DM support. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Ludwig Zenz <lzenz@dh-electronics.com> Cc: Stefano Babic <sbabic@denx.de>
This commit is contained in:
parent
3a05eb8fee
commit
198fee844b
@ -6,6 +6,8 @@
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <dm/device-internal.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
@ -189,63 +191,6 @@ int board_eth_init(bd_t *bis)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
|
||||
#define USDHC2_CD_GPIO IMX_GPIO_NR(6, 16)
|
||||
#define USDHC3_CD_GPIO IMX_GPIO_NR(7, 8)
|
||||
|
||||
static struct fsl_esdhc_cfg usdhc_cfg[3] = {
|
||||
{ USDHC2_BASE_ADDR },
|
||||
{ USDHC3_BASE_ADDR },
|
||||
{ USDHC4_BASE_ADDR },
|
||||
};
|
||||
|
||||
int board_mmc_getcd(struct mmc *mmc)
|
||||
{
|
||||
struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
|
||||
|
||||
switch (cfg->esdhc_base) {
|
||||
case USDHC2_BASE_ADDR:
|
||||
return gpio_get_value(USDHC2_CD_GPIO);
|
||||
case USDHC3_BASE_ADDR:
|
||||
return !gpio_get_value(USDHC3_CD_GPIO);
|
||||
case USDHC4_BASE_ADDR:
|
||||
return 1; /* eMMC/uSDHC4 is always present */
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
int i, ret;
|
||||
|
||||
/*
|
||||
* According to the board_mmc_init() the following map is done:
|
||||
* (U-Boot device node) (Physical Port)
|
||||
* mmc0 SD interface
|
||||
* mmc1 micro SD
|
||||
* mmc2 eMMC
|
||||
*/
|
||||
gpio_request(USDHC2_CD_GPIO, "SD2-CD");
|
||||
gpio_request(USDHC3_CD_GPIO, "SD3-CD");
|
||||
gpio_direction_input(USDHC2_CD_GPIO);
|
||||
gpio_direction_input(USDHC3_CD_GPIO);
|
||||
|
||||
usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
|
||||
usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
|
||||
usdhc_cfg[2].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
|
||||
|
||||
for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
|
||||
ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_MX6
|
||||
static void setup_usb(void)
|
||||
{
|
||||
|
@ -11,6 +11,7 @@ CONFIG_NR_DRAM_BANKS=1
|
||||
CONFIG_SPL=y
|
||||
CONFIG_SYS_BOOTCOUNT_ADDR=0x00900000
|
||||
CONFIG_DM_GPIO=y
|
||||
CONFIG_DM_MMC=y
|
||||
CONFIG_SPL_SPI_FLASH_SUPPORT=y
|
||||
CONFIG_SPL_SPI_SUPPORT=y
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
|
Loading…
Reference in New Issue
Block a user