diff options
| author | Benoît Thébaudeau <benoit.thebaudeau@advansee.com> | 2012-08-13 07:28:16 +0000 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-09-01 14:58:30 +0200 | 
| commit | 16e43f354dfbec24e6151338fa199cf5bb551648 (patch) | |
| tree | f9a567c5c82ee4f09d605df8fe290662728274c1 | |
| parent | 8e99ecd74bf3f36d0b60219f68b96e7ead285416 (diff) | |
| download | olio-uboot-2014.01-16e43f354dfbec24e6151338fa199cf5bb551648.tar.xz olio-uboot-2014.01-16e43f354dfbec24e6151338fa199cf5bb551648.zip | |
fsl_esdhc: Remove cache snooping for i.MX
The cache snooping feature of Freescale's eSDHC IP is not available on i.MX, so
disable it globally for this architecture. This avoids setting no_snoop for all
i.MX boards, and it prevents setting a reserved bit of a reserved register if
fsl_esdhc_mmc_init() is used on i.MX, like in
arch/arm/cpu/armv7/imx-common/cpu.c/cpu_mmc_init().
Since no_snoop was only used on i.MX, get rid of it BTW.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Andy Fleming <afleming@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Kim Phillips <kim.phillips@freescale.com>
| -rw-r--r-- | board/esg/ima3-mx53/ima3-mx53.c | 2 | ||||
| -rw-r--r-- | board/freescale/mx51evk/mx51evk.c | 4 | ||||
| -rw-r--r-- | board/freescale/mx53ard/mx53ard.c | 4 | ||||
| -rw-r--r-- | board/freescale/mx53evk/mx53evk.c | 4 | ||||
| -rw-r--r-- | board/freescale/mx53loco/mx53loco.c | 4 | ||||
| -rw-r--r-- | board/freescale/mx53smd/mx53smd.c | 2 | ||||
| -rw-r--r-- | board/freescale/mx6qarm2/mx6qarm2.c | 4 | ||||
| -rw-r--r-- | board/freescale/mx6qsabrelite/mx6qsabrelite.c | 4 | ||||
| -rw-r--r-- | board/genesi/mx51_efikamx/efikamx.c | 4 | ||||
| -rw-r--r-- | board/ttcontrol/vision2/vision2.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/fsl_esdhc.c | 5 | ||||
| -rw-r--r-- | include/fsl_esdhc.h | 1 | 
12 files changed, 20 insertions, 20 deletions
| diff --git a/board/esg/ima3-mx53/ima3-mx53.c b/board/esg/ima3-mx53/ima3-mx53.c index 9ecf31d7c..e947330a1 100644 --- a/board/esg/ima3-mx53/ima3-mx53.c +++ b/board/esg/ima3-mx53/ima3-mx53.c @@ -172,7 +172,7 @@ static void setup_iomux_fec(void)  }  #ifdef CONFIG_FSL_ESDHC -struct fsl_esdhc_cfg esdhc_cfg = { MMC_SDHC1_BASE_ADDR, 1 }; +struct fsl_esdhc_cfg esdhc_cfg = { MMC_SDHC1_BASE_ADDR };  int board_mmc_getcd(struct mmc *mmc)  { diff --git a/board/freescale/mx51evk/mx51evk.c b/board/freescale/mx51evk/mx51evk.c index b37dff728..7a0682a7e 100644 --- a/board/freescale/mx51evk/mx51evk.c +++ b/board/freescale/mx51evk/mx51evk.c @@ -47,8 +47,8 @@ DECLARE_GLOBAL_DATA_PTR;  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg esdhc_cfg[2] = { -	{MMC_SDHC1_BASE_ADDR, 1}, -	{MMC_SDHC2_BASE_ADDR, 1}, +	{MMC_SDHC1_BASE_ADDR}, +	{MMC_SDHC2_BASE_ADDR},  };  #endif diff --git a/board/freescale/mx53ard/mx53ard.c b/board/freescale/mx53ard/mx53ard.c index f4affbeef..08c779559 100644 --- a/board/freescale/mx53ard/mx53ard.c +++ b/board/freescale/mx53ard/mx53ard.c @@ -79,8 +79,8 @@ static void setup_iomux_uart(void)  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg esdhc_cfg[2] = { -	{MMC_SDHC1_BASE_ADDR, 1 }, -	{MMC_SDHC2_BASE_ADDR, 1 }, +	{MMC_SDHC1_BASE_ADDR}, +	{MMC_SDHC2_BASE_ADDR},  };  int board_mmc_getcd(struct mmc *mmc) diff --git a/board/freescale/mx53evk/mx53evk.c b/board/freescale/mx53evk/mx53evk.c index c482a8d4c..b11a94c65 100644 --- a/board/freescale/mx53evk/mx53evk.c +++ b/board/freescale/mx53evk/mx53evk.c @@ -205,8 +205,8 @@ static void setup_iomux_fec(void)  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg esdhc_cfg[2] = { -	{MMC_SDHC1_BASE_ADDR, 1}, -	{MMC_SDHC3_BASE_ADDR, 1}, +	{MMC_SDHC1_BASE_ADDR}, +	{MMC_SDHC3_BASE_ADDR},  };  int board_mmc_getcd(struct mmc *mmc) diff --git a/board/freescale/mx53loco/mx53loco.c b/board/freescale/mx53loco/mx53loco.c index 1dc2e0c3f..8f8212559 100644 --- a/board/freescale/mx53loco/mx53loco.c +++ b/board/freescale/mx53loco/mx53loco.c @@ -165,8 +165,8 @@ static void setup_iomux_fec(void)  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg esdhc_cfg[2] = { -	{MMC_SDHC1_BASE_ADDR, 1}, -	{MMC_SDHC3_BASE_ADDR, 1}, +	{MMC_SDHC1_BASE_ADDR}, +	{MMC_SDHC3_BASE_ADDR},  };  int board_mmc_getcd(struct mmc *mmc) diff --git a/board/freescale/mx53smd/mx53smd.c b/board/freescale/mx53smd/mx53smd.c index 42f777b96..7f35dddb8 100644 --- a/board/freescale/mx53smd/mx53smd.c +++ b/board/freescale/mx53smd/mx53smd.c @@ -129,7 +129,7 @@ static void setup_iomux_fec(void)  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg esdhc_cfg[1] = { -	{MMC_SDHC1_BASE_ADDR, 1}, +	{MMC_SDHC1_BASE_ADDR},  };  int board_mmc_getcd(struct mmc *mmc) diff --git a/board/freescale/mx6qarm2/mx6qarm2.c b/board/freescale/mx6qarm2/mx6qarm2.c index e987ab0f2..d43b3271b 100644 --- a/board/freescale/mx6qarm2/mx6qarm2.c +++ b/board/freescale/mx6qarm2/mx6qarm2.c @@ -116,8 +116,8 @@ static void setup_iomux_enet(void)  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg usdhc_cfg[2] = { -	{USDHC3_BASE_ADDR, 1}, -	{USDHC4_BASE_ADDR, 1}, +	{USDHC3_BASE_ADDR}, +	{USDHC4_BASE_ADDR},  };  int board_mmc_getcd(struct mmc *mmc) diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c b/board/freescale/mx6qsabrelite/mx6qsabrelite.c index db0de6376..909ccca11 100644 --- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c +++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c @@ -239,8 +239,8 @@ int board_ehci_hcd_init(int port)  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg usdhc_cfg[2] = { -       {USDHC3_BASE_ADDR, 1}, -       {USDHC4_BASE_ADDR, 1}, +       {USDHC3_BASE_ADDR}, +       {USDHC4_BASE_ADDR},  };  int board_mmc_getcd(struct mmc *mmc) diff --git a/board/genesi/mx51_efikamx/efikamx.c b/board/genesi/mx51_efikamx/efikamx.c index 396804064..6d98c94db 100644 --- a/board/genesi/mx51_efikamx/efikamx.c +++ b/board/genesi/mx51_efikamx/efikamx.c @@ -268,8 +268,8 @@ static inline void power_init(void) { }  #ifdef CONFIG_FSL_ESDHC  struct fsl_esdhc_cfg esdhc_cfg[2] = { -	{MMC_SDHC1_BASE_ADDR, 1}, -	{MMC_SDHC2_BASE_ADDR, 1}, +	{MMC_SDHC1_BASE_ADDR}, +	{MMC_SDHC2_BASE_ADDR},  };  static iomux_v3_cfg_t efikamx_sdhc1_pads[] = { diff --git a/board/ttcontrol/vision2/vision2.c b/board/ttcontrol/vision2/vision2.c index d2875444b..f28eab070 100644 --- a/board/ttcontrol/vision2/vision2.c +++ b/board/ttcontrol/vision2/vision2.c @@ -521,7 +521,7 @@ static void setup_fec(void)  }  struct fsl_esdhc_cfg esdhc_cfg[1] = { -	{MMC_SDHC1_BASE_ADDR, 1}, +	{MMC_SDHC1_BASE_ADDR},  };  int get_mmc_getcd(u8 *cd, struct mmc *mmc) diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index b6c969d2c..3f8d30db4 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -479,9 +479,10 @@ static int esdhc_init(struct mmc *mmc)  	while ((esdhc_read32(®s->sysctl) & SYSCTL_RSTA) && --timeout)  		udelay(1000); +#ifndef ARCH_MXC  	/* Enable cache snooping */ -	if (cfg && !cfg->no_snoop) -		esdhc_write32(®s->scr, 0x00000040); +	esdhc_write32(®s->scr, 0x00000040); +#endif  	esdhc_write32(®s->sysctl, SYSCTL_HCKEN | SYSCTL_IPGEN); diff --git a/include/fsl_esdhc.h b/include/fsl_esdhc.h index 0e265584b..4e321e762 100644 --- a/include/fsl_esdhc.h +++ b/include/fsl_esdhc.h @@ -167,7 +167,6 @@  struct fsl_esdhc_cfg {  	u32	esdhc_base; -	u32	no_snoop;  };  /* Select the correct accessors depending on endianess */ |