diff options
author | Tom Rini <trini@konsulko.com> | 2019-07-08 22:49:50 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-07-08 22:59:41 +0300 |
commit | f5e73a34eddea4fb7c5e3d984b86f395996a64cd (patch) | |
tree | 1854f2e0d2dae343f85870f2a62ae35bdd335a85 /board/menlo/m53menlo/m53menlo.c | |
parent | e5aee22e4be75e75a854ab64503fc80598bc2004 (diff) | |
parent | 5053da2e4aa297d888cdfc7d216d935504a9472a (diff) | |
download | u-boot-f5e73a34eddea4fb7c5e3d984b86f395996a64cd.tar.xz |
Merge tag 'mmc-6-23' of https://github.com/MrVan/u-boot
- Pull in the series to split fsl_esdhc for i.MX/non-i.MX cleanly
Diffstat (limited to 'board/menlo/m53menlo/m53menlo.c')
-rw-r--r-- | board/menlo/m53menlo/m53menlo.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/board/menlo/m53menlo/m53menlo.c b/board/menlo/m53menlo/m53menlo.c index 31ba44e452..f2227f6992 100644 --- a/board/menlo/m53menlo/m53menlo.c +++ b/board/menlo/m53menlo/m53menlo.c @@ -19,7 +19,7 @@ #include <asm/gpio.h> #include <asm/spl.h> #include <fdt_support.h> -#include <fsl_esdhc.h> +#include <fsl_esdhc_imx.h> #include <i2c.h> #include <ipu_pixfmt.h> #include <linux/errno.h> @@ -125,6 +125,43 @@ static void setup_iomux_fec(void) imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads)); } +#ifdef CONFIG_FSL_ESDHC_IMX +struct fsl_esdhc_cfg esdhc_cfg = { + MMC_SDHC1_BASE_ADDR, +}; + +int board_mmc_getcd(struct mmc *mmc) +{ + imx_iomux_v3_setup_pad(MX53_PAD_GPIO_1__GPIO1_1); + gpio_direction_input(IMX_GPIO_NR(1, 1)); + + return !gpio_get_value(IMX_GPIO_NR(1, 1)); +} + +#define SD_CMD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \ + PAD_CTL_PUS_100K_UP) +#define SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \ + PAD_CTL_DSE_HIGH) + +int board_mmc_init(bd_t *bis) +{ + static const iomux_v3_cfg_t sd1_pads[] = { + NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL), + NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_PAD_CTRL), + NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL), + NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL), + NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL), + NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL), + }; + + esdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); + + imx_iomux_v3_setup_multiple_pads(sd1_pads, ARRAY_SIZE(sd1_pads)); + + return fsl_esdhc_initialize(bis, &esdhc_cfg); +} +#endif + static void enable_lvds_clock(struct display_info_t const *dev, const u8 hclk) { static struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)MXC_CCM_BASE; |