mmc: fsl_esdhc: Add support for DDR mode
Add support of the DDR mode for eSDHC driver. Enable it for i.MX6 SoC family only. Signed-off-by: Volodymyr Riazantsev <volodymyr.riazantsev@globallogic.com> Reviewed-by: York Sun <yorksun@freescale.com>
This commit is contained in:
		
							parent
							
								
									8133574ea4
								
							
						
					
					
						commit
						0e1bf614d5
					
				|  | @ -319,7 +319,8 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) | |||
| 	esdhc_write32(®s->cmdarg, cmd->cmdarg); | ||||
| #if defined(CONFIG_FSL_USDHC) | ||||
| 	esdhc_write32(®s->mixctrl, | ||||
| 	(esdhc_read32(®s->mixctrl) & 0xFFFFFF80) | (xfertyp & 0x7F)); | ||||
| 	(esdhc_read32(®s->mixctrl) & 0xFFFFFF80) | (xfertyp & 0x7F) | ||||
| 			| (mmc->ddr_mode ? XFERTYP_DDREN : 0)); | ||||
| 	esdhc_write32(®s->xfertyp, xfertyp & 0xFFFF0000); | ||||
| #else | ||||
| 	esdhc_write32(®s->xfertyp, xfertyp); | ||||
|  | @ -442,7 +443,7 @@ static void set_sysctl(struct mmc *mmc, uint clock) | |||
| 		if ((sdhc_clk / (div * pre_div)) <= clock) | ||||
| 			break; | ||||
| 
 | ||||
| 	pre_div >>= 1; | ||||
| 	pre_div >>= mmc->ddr_mode ? 2 : 1; | ||||
| 	div -= 1; | ||||
| 
 | ||||
| 	clk = (pre_div << 8) | (div << 4); | ||||
|  | @ -601,6 +602,9 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg) | |||
| 	} | ||||
| 
 | ||||
| 	cfg->cfg.host_caps = MMC_MODE_4BIT | MMC_MODE_8BIT | MMC_MODE_HC; | ||||
| #ifdef CONFIG_SYS_FSL_ESDHC_HAS_DDR_MODE | ||||
| 	cfg->cfg.host_caps |= MMC_MODE_DDR_52MHz; | ||||
| #endif | ||||
| 
 | ||||
| 	if (cfg->max_bus_width > 0) { | ||||
| 		if (cfg->max_bus_width < 8) | ||||
|  |  | |||
|  | @ -28,6 +28,8 @@ | |||
| #define CONFIG_SYS_PL310_BASE	L2_PL310_BASE | ||||
| #endif | ||||
| 
 | ||||
| #define CONFIG_SYS_FSL_ESDHC_HAS_DDR_MODE | ||||
| 
 | ||||
| #define CONFIG_MP | ||||
| #define CONFIG_MXC_GPT_HCLK | ||||
| 
 | ||||
|  |  | |||
|  | @ -108,6 +108,7 @@ | |||
| #define XFERTYP_RSPTYP_48_BUSY	0x00030000 | ||||
| #define XFERTYP_MSBSEL		0x00000020 | ||||
| #define XFERTYP_DTDSEL		0x00000010 | ||||
| #define XFERTYP_DDREN		0x00000008 | ||||
| #define XFERTYP_AC12EN		0x00000004 | ||||
| #define XFERTYP_BCEN		0x00000002 | ||||
| #define XFERTYP_DMAEN		0x00000001 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue