[U-Boot] [PATCH 0/9] Use generic MMC driver on remaining OMAP platforms

Hi all,
The following series changes the remaining users of drivers/mmc/omap3_mmc.c to using the newer omap_hsmmc.c driver and then removes the legacy driver. This series depends on the patches that Vaibhav Hiremath has posted to convert am3517evm and omap3 evm over.
Thanks!
-- Tom

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/cm_t35/cm_t35.c | 8 ++++++++ include/configs/cm_t35.h | 3 ++- 2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/board/cm_t35/cm_t35.c b/board/cm_t35/cm_t35.c index f82111b..420cd70 100644 --- a/board/cm_t35/cm_t35.c +++ b/board/cm_t35/cm_t35.c @@ -313,6 +313,14 @@ void set_muxconf_regs(void) cm_t3730_set_muxconf(); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif + /* * Routine: setup_net_chip_gmpc * Description: Setting up the configuration GPMC registers specific to the diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h index 16a5f5b..496a904 100644 --- a/include/configs/cm_t35.h +++ b/include/configs/cm_t35.h @@ -108,8 +108,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} +#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1
/* DDR - I use Micron DDR */

On 08/23/11 01:13, Tom Rini wrote:
Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com
It is a good practice to CC the board maintainer. Thanks.
Tested-by: Igor Grinberg grinberg@compulab.co.il
board/cm_t35/cm_t35.c | 8 ++++++++ include/configs/cm_t35.h | 3 ++- 2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/board/cm_t35/cm_t35.c b/board/cm_t35/cm_t35.c index f82111b..420cd70 100644 --- a/board/cm_t35/cm_t35.c +++ b/board/cm_t35/cm_t35.c @@ -313,6 +313,14 @@ void set_muxconf_regs(void) cm_t3730_set_muxconf(); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{
- omap_mmc_init(0);
- return 0;
+} +#endif
/*
- Routine: setup_net_chip_gmpc
- Description: Setting up the configuration GPMC registers specific to the
diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h index 16a5f5b..496a904 100644 --- a/include/configs/cm_t35.h +++ b/include/configs/cm_t35.h @@ -108,8 +108,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} +#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1
/* DDR - I use Micron DDR */

On Wed, Aug 24, 2011 at 5:31 AM, Igor Grinberg grinberg@compulab.co.il wrote:
On 08/23/11 01:13, Tom Rini wrote:
Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com
It is a good practice to CC the board maintainer. Thanks.
Tested-by: Igor Grinberg grinberg@compulab.co.il
Apologies, thanks!

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/comelit/dig297/dig297.c | 9 +++++++++ include/configs/dig297.h | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/board/comelit/dig297/dig297.c b/board/comelit/dig297/dig297.c index 0062f12..a7071cd 100644 --- a/board/comelit/dig297/dig297.c +++ b/board/comelit/dig297/dig297.c @@ -37,6 +37,7 @@ #include <netdev.h> #include <twl4030.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/omap3-regs.h> #include <asm/arch/mux.h> #include <asm/arch/mem.h> @@ -145,6 +146,14 @@ void set_muxconf_regs(void) MUX_DIG297(); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif + #ifdef CONFIG_CMD_NET /* * Routine: setup_net_chip diff --git a/include/configs/dig297.h b/include/configs/dig297.h index b68f073..0e05df3 100644 --- a/include/configs/dig297.h +++ b/include/configs/dig297.h @@ -97,8 +97,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} -#define CONFIG_MMC -#define CONFIG_OMAP3_MMC +#define CONFIG_GENERIC_MMC 1 +#define CONFIG_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION
/* DDR - I use Micron DDR */

Tom Rini wrote:
Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rinitrini@ti.com
Again, please Cc: the board maintainers in the future, thanks.
board/comelit/dig297/dig297.c | 9 +++++++++ include/configs/dig297.h | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/board/comelit/dig297/dig297.c b/board/comelit/dig297/dig297.c index 0062f12..a7071cd 100644 --- a/board/comelit/dig297/dig297.c +++ b/board/comelit/dig297/dig297.c @@ -37,6 +37,7 @@ #include<netdev.h> #include<twl4030.h> #include<asm/io.h> +#include<asm/arch/mmc_host_def.h> #include<asm/arch/omap3-regs.h> #include<asm/arch/mux.h> #include<asm/arch/mem.h> @@ -145,6 +146,14 @@ void set_muxconf_regs(void) MUX_DIG297(); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{
- omap_mmc_init(0);
- return 0;
+} +#endif
- #ifdef CONFIG_CMD_NET /*
- Routine: setup_net_chip
diff --git a/include/configs/dig297.h b/include/configs/dig297.h index b68f073..0e05df3 100644 --- a/include/configs/dig297.h +++ b/include/configs/dig297.h @@ -97,8 +97,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} -#define CONFIG_MMC -#define CONFIG_OMAP3_MMC +#define CONFIG_GENERIC_MMC 1 +#define CONFIG_MMC 1 +#define CONFIG_OMAP_HSMMC 1
IIRC the coding style says you should define the y/n constants without a value, e.g.: #define CONFIG_GENERIC_MMC not: #define CONFIG_GENERIC_MMC 1
Apart for this: Tested-by: Luca Ceresoli luca.ceresoli@comelit.it
Luca

On Wed, Aug 24, 2011 at 6:43 AM, Luca Ceresoli luca.ceresoli@comelit.it wrote:
Tom Rini wrote:
Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rinitrini@ti.com
Again, please Cc: the board maintainers in the future, thanks.
Oh, sorry, used to other lists where people complain about too many CCs.
[snip]
diff --git a/include/configs/dig297.h b/include/configs/dig297.h index b68f073..0e05df3 100644 --- a/include/configs/dig297.h +++ b/include/configs/dig297.h @@ -97,8 +97,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} -#define CONFIG_MMC -#define CONFIG_OMAP3_MMC +#define CONFIG_GENERIC_MMC 1 +#define CONFIG_MMC 1 +#define CONFIG_OMAP_HSMMC 1
IIRC the coding style says you should define the y/n constants without a value, e.g.: #define CONFIG_GENERIC_MMC not: #define CONFIG_GENERIC_MMC 1
Apart for this: Tested-by: Luca Ceresoli luca.ceresoli@comelit.it
OK, thanks, I'll respin this patch (all of the other boards were doing the define CONFIG_FOO 1 everywhere) shortly.

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Tested-by: Luca Ceresoli luca.ceresoli@comelit.it Signed-off-by: Tom Rini trini@ti.com
---
V2 changes: Follow board config format, just use #define CONFIG_GENERIC_MMC, etc) --- board/comelit/dig297/dig297.c | 9 +++++++++ include/configs/dig297.h | 3 ++- 2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/board/comelit/dig297/dig297.c b/board/comelit/dig297/dig297.c index 0062f12..a7071cd 100644 --- a/board/comelit/dig297/dig297.c +++ b/board/comelit/dig297/dig297.c @@ -37,6 +37,7 @@ #include <netdev.h> #include <twl4030.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/omap3-regs.h> #include <asm/arch/mux.h> #include <asm/arch/mem.h> @@ -145,6 +146,14 @@ void set_muxconf_regs(void) MUX_DIG297(); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif + #ifdef CONFIG_CMD_NET /* * Routine: setup_net_chip diff --git a/include/configs/dig297.h b/include/configs/dig297.h index b68f073..4186ab6 100644 --- a/include/configs/dig297.h +++ b/include/configs/dig297.h @@ -97,8 +97,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} +#define CONFIG_GENERIC_MMC #define CONFIG_MMC -#define CONFIG_OMAP3_MMC +#define CONFIG_OMAP_HSMMC #define CONFIG_DOS_PARTITION
/* DDR - I use Micron DDR */

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/logicpd/zoom1/zoom1.c | 9 +++++++++ include/configs/omap3_zoom1.h | 10 ++++++---- 2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/board/logicpd/zoom1/zoom1.c b/board/logicpd/zoom1/zoom1.c index 7ef13cc..dec0b26 100644 --- a/board/logicpd/zoom1/zoom1.c +++ b/board/logicpd/zoom1/zoom1.c @@ -34,6 +34,7 @@ #include <netdev.h> #include <twl4030.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/mux.h> #include <asm/arch/sys_proto.h> #include <asm/mach-types.h> @@ -88,6 +89,14 @@ void set_muxconf_regs(void) MUX_ZOOM1_MDK(); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif + #ifdef CONFIG_CMD_NET int board_eth_init(bd_t *bis) { diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h index aeac7c7..4b095a1 100644 --- a/include/configs/omap3_zoom1.h +++ b/include/configs/omap3_zoom1.h @@ -95,8 +95,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} +#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1
/* DDR - I use Micron DDR */ @@ -178,6 +179,7 @@ "loadaddr=0x82000000\0" \ "usbtty=cdc_acm\0" \ "console=ttyS2,115200n8\0" \ + "mmcdev=0\0" \ "videomode=1024x768@60,vxres=1024,vyres=768\0" \ "videospec=omapfb:vram:2M,vram:4M\0" \ "mmcargs=setenv bootargs console=${console} " \ @@ -188,10 +190,10 @@ "video=${videospec},mode:${videomode} " \ "root=/dev/mtdblock4 rw " \ "rootfstype=jffs2\0" \ - "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \ + "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ "bootscript=echo Running bootscript from mmc ...; " \ "source ${loadaddr}\0" \ - "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \ + "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ "bootm ${loadaddr}\0" \ @@ -201,7 +203,7 @@ "bootm ${loadaddr}\0" \
#define CONFIG_BOOTCOMMAND \ - "if mmc init; then " \ + "if mmc rescan ${mmcdev}; then " \ "if run loadbootscript; then " \ "run bootscript; " \ "else " \

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/logicpd/zoom2/zoom2.c | 9 +++++++++ include/configs/omap3_zoom2.h | 3 ++- 2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/board/logicpd/zoom2/zoom2.c b/board/logicpd/zoom2/zoom2.c index 76793e4..800113a 100644 --- a/board/logicpd/zoom2/zoom2.c +++ b/board/logicpd/zoom2/zoom2.c @@ -35,6 +35,7 @@ #endif #include <twl4030.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/gpio.h> #include <asm/arch/mem.h> #include <asm/arch/mux.h> @@ -180,6 +181,14 @@ void set_muxconf_regs (void) MUX_ZOOM2 (); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif + #ifdef CONFIG_CMD_NET int board_eth_init(bd_t *bis) { diff --git a/include/configs/omap3_zoom2.h b/include/configs/omap3_zoom2.h index 2a56182..57b42da 100644 --- a/include/configs/omap3_zoom2.h +++ b/include/configs/omap3_zoom2.h @@ -95,8 +95,9 @@ /* allow to overwrite serial and ethaddr */ #define CONFIG_ENV_OVERWRITE
+#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1
/* DDR - I use Micron DDR */

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/pandora/pandora.c | 9 +++++++++ include/configs/omap3_pandora.h | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/board/pandora/pandora.c b/board/pandora/pandora.c index 0df4570..58a676d 100644 --- a/board/pandora/pandora.c +++ b/board/pandora/pandora.c @@ -32,6 +32,7 @@ #include <common.h> #include <twl4030.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/mux.h> #include <asm/arch/gpio.h> #include <asm/arch/sys_proto.h> @@ -103,3 +104,11 @@ void set_muxconf_regs(void) { MUX_PANDORA(); } + +#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h index bd55abc..320cf64 100644 --- a/include/configs/omap3_pandora.h +++ b/include/configs/omap3_pandora.h @@ -100,8 +100,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600, \ 115200} +#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1
/* DDR - I use Micron DDR */ @@ -182,7 +183,7 @@ "mtdparts=" MTDPARTS_DEFAULT "\0" \
#define CONFIG_BOOTCOMMAND \ - "if mmc init && fatload mmc1 0 ${loadaddr} autoboot.scr || " \ + "if mmc rescan && fatload mmc1 0 ${loadaddr} autoboot.scr || " \ "ext2load mmc1 0 ${loadaddr} autoboot.scr; then " \ "source ${loadaddr}; " \ "fi; " \

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/ti/am3517crane/am3517crane.c | 9 +++++++++ include/configs/am3517_crane.h | 10 ++++++---- 2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/board/ti/am3517crane/am3517crane.c b/board/ti/am3517crane/am3517crane.c index d007044..cd5683d 100644 --- a/board/ti/am3517crane/am3517crane.c +++ b/board/ti/am3517crane/am3517crane.c @@ -24,6 +24,7 @@
#include <common.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/mem.h> #include <asm/arch/mux.h> #include <asm/arch/sys_proto.h> @@ -73,3 +74,11 @@ void set_muxconf_regs(void) { MUX_AM3517CRANE(); } + +#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif diff --git a/include/configs/am3517_crane.h b/include/configs/am3517_crane.h index 743768e..e23ca45 100644 --- a/include/configs/am3517_crane.h +++ b/include/configs/am3517_crane.h @@ -93,8 +93,9 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ 115200} +#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1
/* @@ -191,16 +192,17 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "loadaddr=0x82000000\0" \ "console=ttyS2,115200n8\0" \ + "mmcdev=0\0" \ "mmcargs=setenv bootargs console=${console} " \ "root=/dev/mmcblk0p2 rw " \ "rootfstype=ext3 rootwait\0" \ "nandargs=setenv bootargs console=${console} " \ "root=/dev/mtdblock4 rw " \ "rootfstype=jffs2\0" \ - "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \ + "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ "bootscript=echo Running bootscript from mmc ...; " \ "source ${loadaddr}\0" \ - "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \ + "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ "bootm ${loadaddr}\0" \ @@ -210,7 +212,7 @@ "bootm ${loadaddr}\0" \
#define CONFIG_BOOTCOMMAND \ - "if mmc init; then " \ + "if mmc rescan ${mmcdev}; then " \ "if run loadbootscript; then " \ "run bootscript; " \ "else " \

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/ti/sdp3430/sdp.c | 9 +++++++++ include/configs/omap3_sdp3430.h | 3 ++- 2 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/board/ti/sdp3430/sdp.c b/board/ti/sdp3430/sdp.c index 72f0984..d73f501 100644 --- a/board/ti/sdp3430/sdp.c +++ b/board/ti/sdp3430/sdp.c @@ -25,6 +25,7 @@ #include <netdev.h> #include <twl4030.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/mux.h> #include <asm/arch/mem.h> #include <asm/arch/sys_proto.h> @@ -204,3 +205,11 @@ void set_muxconf_regs(void) /* platform specific muxes */ MUX_SDP3430(); } + +#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif diff --git a/include/configs/omap3_sdp3430.h b/include/configs/omap3_sdp3430.h index e1d8c78..17286d4 100644 --- a/include/configs/omap3_sdp3430.h +++ b/include/configs/omap3_sdp3430.h @@ -189,8 +189,9 @@ */
#if defined(CONFIG_CMD_MMC) +#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1 #endif

Switch from the legacy omap3 mmc driver to the new generic omap hsmmc driver. This patch is based on the work done for Beagle, etc.
Signed-off-by: Tom Rini trini@ti.com --- board/timll/devkit8000/devkit8000.c | 9 +++++++++ include/configs/devkit8000.h | 10 ++++++---- 2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/board/timll/devkit8000/devkit8000.c b/board/timll/devkit8000/devkit8000.c index 95afaaa..533af5a 100644 --- a/board/timll/devkit8000/devkit8000.c +++ b/board/timll/devkit8000/devkit8000.c @@ -35,6 +35,7 @@ #include <common.h> #include <twl4030.h> #include <asm/io.h> +#include <asm/arch/mmc_host_def.h> #include <asm/arch/mux.h> #include <asm/arch/sys_proto.h> #include <asm/arch/mem.h> @@ -119,6 +120,14 @@ void set_muxconf_regs(void) MUX_DEVKIT8000(); }
+#ifdef CONFIG_GENERIC_MMC +int board_mmc_init(bd_t *bis) +{ + omap_mmc_init(0); + return 0; +} +#endif + #ifdef CONFIG_DRIVER_DM9000 /* * Routine: board_eth_init diff --git a/include/configs/devkit8000.h b/include/configs/devkit8000.h index cf77606..710092d 100644 --- a/include/configs/devkit8000.h +++ b/include/configs/devkit8000.h @@ -98,8 +98,9 @@ 115200}
/* MMC */ +#define CONFIG_GENERIC_MMC 1 #define CONFIG_MMC 1 -#define CONFIG_OMAP3_MMC 1 +#define CONFIG_OMAP_HSMMC 1 #define CONFIG_DOS_PARTITION 1
/* I2C */ @@ -181,6 +182,7 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "loadaddr=0x82000000\0" \ "console=ttyS2,115200n8\0" \ + "mmcdev=0\0" \ "vram=12M\0" \ "dvimode=1024x768MR-16@60\0" \ "defaultdisplay=dvi\0" \ @@ -213,10 +215,10 @@ "${kernelopts} " \ "dnsip1=${dnsip} " \ "dnsip2=${dnsip2}\0" \ - "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \ + "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ "bootscript=echo Running bootscript from mmc ...; " \ "source ${loadaddr}\0" \ - "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \ + "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ "eraseenv=nand unlock 0x260000 0x20000; nand erase 0x260000 0x20000\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ @@ -229,7 +231,7 @@ "dhcp ${loadaddr}; " \ "run netargs; " \ "bootm ${loadaddr}\0" \ - "autoboot=if mmc init 0; then " \ + "autoboot=if mmc rescan ${mmcdev}; then " \ "if run loadbootscript; then " \ "run bootscript; " \ "else " \

Now that all platforms have been migrated to the new MMC driver, remove the old one.
Signed-off-by: Tom Rini trini@ti.com --- drivers/mmc/Makefile | 1 - drivers/mmc/omap3_mmc.c | 570 ----------------------------------------------- drivers/mmc/omap3_mmc.h | 233 ------------------- 3 files changed, 0 insertions(+), 804 deletions(-) delete mode 100644 drivers/mmc/omap3_mmc.c delete mode 100644 drivers/mmc/omap3_mmc.h
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index 3968c14..e5ca121 100644 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile @@ -35,7 +35,6 @@ COBJS-$(CONFIG_MMC_SPI) += mmc_spi.o COBJS-$(CONFIG_ARM_PL180_MMCI) += arm_pl180_mmci.o COBJS-$(CONFIG_MV_SDHCI) += mv_sdhci.o COBJS-$(CONFIG_MXC_MMC) += mxcmmc.o -COBJS-$(CONFIG_OMAP3_MMC) += omap3_mmc.o COBJS-$(CONFIG_OMAP_HSMMC) += omap_hsmmc.o COBJS-$(CONFIG_PXA_MMC) += pxa_mmc.o COBJS-$(CONFIG_S5P_MMC) += s5p_mmc.o diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c deleted file mode 100644 index 15d41e5..0000000 --- a/drivers/mmc/omap3_mmc.c +++ /dev/null @@ -1,570 +0,0 @@ -/* - * (C) Copyright 2008 - * Texas Instruments, <www.ti.com> - * Syed Mohammed Khasim khasim@ti.com - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation's version 2 of - * the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#include <config.h> -#include <common.h> -#include <fat.h> -#include <mmc.h> -#include <part.h> -#include <i2c.h> -#include <twl4030.h> -#include <asm/io.h> - -#include "omap3_mmc.h" - -static const unsigned short mmc_transspeed_val[15][4] = { - {CLKD(10, 1), CLKD(10, 10), CLKD(10, 100), CLKD(10, 1000)}, - {CLKD(12, 1), CLKD(12, 10), CLKD(12, 100), CLKD(12, 1000)}, - {CLKD(13, 1), CLKD(13, 10), CLKD(13, 100), CLKD(13, 1000)}, - {CLKD(15, 1), CLKD(15, 10), CLKD(15, 100), CLKD(15, 1000)}, - {CLKD(20, 1), CLKD(20, 10), CLKD(20, 100), CLKD(20, 1000)}, - {CLKD(26, 1), CLKD(26, 10), CLKD(26, 100), CLKD(26, 1000)}, - {CLKD(30, 1), CLKD(30, 10), CLKD(30, 100), CLKD(30, 1000)}, - {CLKD(35, 1), CLKD(35, 10), CLKD(35, 100), CLKD(35, 1000)}, - {CLKD(40, 1), CLKD(40, 10), CLKD(40, 100), CLKD(40, 1000)}, - {CLKD(45, 1), CLKD(45, 10), CLKD(45, 100), CLKD(45, 1000)}, - {CLKD(52, 1), CLKD(52, 10), CLKD(52, 100), CLKD(52, 1000)}, - {CLKD(55, 1), CLKD(55, 10), CLKD(55, 100), CLKD(55, 1000)}, - {CLKD(60, 1), CLKD(60, 10), CLKD(60, 100), CLKD(60, 1000)}, - {CLKD(70, 1), CLKD(70, 10), CLKD(70, 100), CLKD(70, 1000)}, - {CLKD(80, 1), CLKD(80, 10), CLKD(80, 100), CLKD(80, 1000)} -}; - -static mmc_card_data cur_card_data; -static block_dev_desc_t mmc_blk_dev; -static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE; - -int mmc_set_dev(int dev_num) -{ - switch (dev_num) { - case 1: - mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE; - break; - case 2: - mmc_base = (hsmmc_t *)OMAP_HSMMC2_BASE; - break; - case 3: - mmc_base = (hsmmc_t *)OMAP_HSMMC3_BASE; - break; - default: - mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE; - return 1; - } - - return 0; -} - -block_dev_desc_t *mmc_get_dev(int dev) -{ - return (block_dev_desc_t *) &mmc_blk_dev; -} - -static unsigned char mmc_board_init(void) -{ -#if defined(CONFIG_TWL4030_POWER) - twl4030_power_mmc_init(); -#endif - -#if defined(CONFIG_OMAP34XX) - t2_t *t2_base = (t2_t *)T2_BASE; - struct prcm *prcm_base = (struct prcm *)PRCM_BASE; - - writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 | - PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0, - &t2_base->pbias_lite); - - writel(readl(&t2_base->devconf0) | MMCSDIO1ADPCLKISEL, - &t2_base->devconf0); - - writel(readl(&t2_base->devconf1) | MMCSDIO2ADPCLKISEL, - &t2_base->devconf1); - - writel(readl(&prcm_base->fclken1_core) | - EN_MMC1 | EN_MMC2 | EN_MMC3, - &prcm_base->fclken1_core); - - writel(readl(&prcm_base->iclken1_core) | - EN_MMC1 | EN_MMC2 | EN_MMC3, - &prcm_base->iclken1_core); -#endif - -/* TODO add appropriate OMAP4 init */ - - return 1; -} - -static void mmc_init_stream(void) -{ - writel(readl(&mmc_base->con) | INIT_INITSTREAM, &mmc_base->con); - - writel(MMC_CMD0, &mmc_base->cmd); - while (!(readl(&mmc_base->stat) & CC_MASK)); - - writel(CC_MASK, &mmc_base->stat); - - writel(MMC_CMD0, &mmc_base->cmd); - while (!(readl(&mmc_base->stat) & CC_MASK)); - - writel(readl(&mmc_base->con) & ~INIT_INITSTREAM, &mmc_base->con); -} - -static unsigned char mmc_clock_config(unsigned int iclk, unsigned short clk_div) -{ - unsigned int val; - - mmc_reg_out(&mmc_base->sysctl, (ICE_MASK | DTO_MASK | CEN_MASK), - (ICE_STOP | DTO_15THDTO | CEN_DISABLE)); - - switch (iclk) { - case CLK_INITSEQ: - val = MMC_INIT_SEQ_CLK / 2; - break; - case CLK_400KHZ: - val = MMC_400kHz_CLK; - break; - case CLK_MISC: - val = clk_div; - break; - default: - return 0; - } - mmc_reg_out(&mmc_base->sysctl, ICE_MASK | CLKD_MASK, - (val << CLKD_OFFSET) | ICE_OSCILLATE); - - while ((readl(&mmc_base->sysctl) & ICS_MASK) == ICS_NOTREADY); - - writel(readl(&mmc_base->sysctl) | CEN_ENABLE, &mmc_base->sysctl); - return 1; -} - -static unsigned char mmc_init_setup(void) -{ - unsigned int reg_val; - - mmc_board_init(); - - writel(readl(&mmc_base->sysconfig) | MMC_SOFTRESET, - &mmc_base->sysconfig); - while ((readl(&mmc_base->sysstatus) & RESETDONE) == 0); - - writel(readl(&mmc_base->sysctl) | SOFTRESETALL, &mmc_base->sysctl); - while ((readl(&mmc_base->sysctl) & SOFTRESETALL) != 0x0); - - writel(DTW_1_BITMODE | SDBP_PWROFF | SDVS_3V0, &mmc_base->hctl); - writel(readl(&mmc_base->capa) | VS30_3V0SUP | VS18_1V8SUP, - &mmc_base->capa); - - reg_val = readl(&mmc_base->con) & RESERVED_MASK; - - writel(CTPL_MMC_SD | reg_val | WPP_ACTIVEHIGH | CDP_ACTIVEHIGH | - MIT_CTO | DW8_1_4BITMODE | MODE_FUNC | STR_BLOCK | - HR_NOHOSTRESP | INIT_NOINIT | NOOPENDRAIN, &mmc_base->con); - - mmc_clock_config(CLK_INITSEQ, 0); - writel(readl(&mmc_base->hctl) | SDBP_PWRON, &mmc_base->hctl); - - writel(IE_BADA | IE_CERR | IE_DEB | IE_DCRC | IE_DTO | IE_CIE | - IE_CEB | IE_CCRC | IE_CTO | IE_BRR | IE_BWR | IE_TC | IE_CC, - &mmc_base->ie); - - mmc_init_stream(); - return 1; -} - -static unsigned char mmc_send_cmd(unsigned int cmd, unsigned int arg, - unsigned int *response) -{ - unsigned int mmc_stat; - - while ((readl(&mmc_base->pstate) & DATI_MASK) == DATI_CMDDIS); - - writel(BLEN_512BYTESLEN | NBLK_STPCNT, &mmc_base->blk); - writel(0xFFFFFFFF, &mmc_base->stat); - writel(arg, &mmc_base->arg); - writel(cmd | CMD_TYPE_NORMAL | CICE_NOCHECK | CCCE_NOCHECK | - MSBS_SGLEBLK | ACEN_DISABLE | BCE_DISABLE | DE_DISABLE, - &mmc_base->cmd); - - while (1) { - do { - mmc_stat = readl(&mmc_base->stat); - } while (mmc_stat == 0); - - if ((mmc_stat & ERRI_MASK) != 0) - return (unsigned char) mmc_stat; - - if (mmc_stat & CC_MASK) { - writel(CC_MASK, &mmc_base->stat); - response[0] = readl(&mmc_base->rsp10); - if ((cmd & RSP_TYPE_MASK) == RSP_TYPE_LGHT136) { - response[1] = readl(&mmc_base->rsp32); - response[2] = readl(&mmc_base->rsp54); - response[3] = readl(&mmc_base->rsp76); - } - break; - } - } - return 1; -} - -static unsigned char mmc_read_data(unsigned int *output_buf) -{ - unsigned int mmc_stat; - unsigned int read_count = 0; - - /* - * Start Polled Read - */ - while (1) { - do { - mmc_stat = readl(&mmc_base->stat); - } while (mmc_stat == 0); - - if ((mmc_stat & ERRI_MASK) != 0) - return (unsigned char) mmc_stat; - - if (mmc_stat & BRR_MASK) { - unsigned int k; - - writel(readl(&mmc_base->stat) | BRR_MASK, - &mmc_base->stat); - for (k = 0; k < MMCSD_SECTOR_SIZE / 4; k++) { - *output_buf = readl(&mmc_base->data); - output_buf++; - read_count += 4; - } - } - - if (mmc_stat & BWR_MASK) - writel(readl(&mmc_base->stat) | BWR_MASK, - &mmc_base->stat); - - if (mmc_stat & TC_MASK) { - writel(readl(&mmc_base->stat) | TC_MASK, - &mmc_base->stat); - break; - } - } - return 1; -} - -static unsigned char mmc_detect_card(mmc_card_data *mmc_card_cur) -{ - unsigned char err; - unsigned int argument = 0; - unsigned int ocr_value, ocr_recvd, ret_cmd41, hcs_val; - unsigned short retry_cnt = 2000; - mmc_resp_t mmc_resp; - - /* Set to Initialization Clock */ - err = mmc_clock_config(CLK_400KHZ, 0); - if (err != 1) - return err; - - mmc_card_cur->RCA = MMC_RELATIVE_CARD_ADDRESS; - argument = 0x00000000; - - ocr_value = (0x1FF << 15); - err = mmc_send_cmd(MMC_CMD0, argument, mmc_resp.resp); - if (err != 1) - return err; - - argument = SD_CMD8_CHECK_PATTERN | SD_CMD8_2_7_3_6_V_RANGE; - err = mmc_send_cmd(MMC_SDCMD8, argument, mmc_resp.resp); - hcs_val = (err == 1) ? - MMC_OCR_REG_HOST_CAPACITY_SUPPORT_SECTOR : - MMC_OCR_REG_HOST_CAPACITY_SUPPORT_BYTE; - - argument = 0x0000 << 16; - err = mmc_send_cmd(MMC_CMD55, argument, mmc_resp.resp); - if (err == 1) { - mmc_card_cur->card_type = SD_CARD; - ocr_value |= hcs_val; - ret_cmd41 = MMC_ACMD41; - } else { - mmc_card_cur->card_type = MMC_CARD; - ocr_value |= MMC_OCR_REG_ACCESS_MODE_SECTOR; - ret_cmd41 = MMC_CMD1; - writel(readl(&mmc_base->con) & ~OD, &mmc_base->con); - writel(readl(&mmc_base->con) | OPENDRAIN, &mmc_base->con); - } - - argument = ocr_value; - err = mmc_send_cmd(ret_cmd41, argument, mmc_resp.resp); - if (err != 1) - return err; - - ocr_recvd = mmc_resp.r3.ocr; - - while (!(ocr_recvd & (0x1 << 31)) && (retry_cnt > 0)) { - retry_cnt--; - if (mmc_card_cur->card_type == SD_CARD) { - argument = 0x0000 << 16; - err = mmc_send_cmd(MMC_CMD55, argument, mmc_resp.resp); - } - - argument = ocr_value; - err = mmc_send_cmd(ret_cmd41, argument, mmc_resp.resp); - if (err != 1) - return err; - ocr_recvd = mmc_resp.r3.ocr; - } - - if (!(ocr_recvd & (0x1 << 31))) - return 0; - - if (mmc_card_cur->card_type == MMC_CARD) { - if ((ocr_recvd & MMC_OCR_REG_ACCESS_MODE_MASK) == - MMC_OCR_REG_ACCESS_MODE_SECTOR) { - mmc_card_cur->mode = SECTOR_MODE; - } else { - mmc_card_cur->mode = BYTE_MODE; - } - - ocr_recvd &= ~MMC_OCR_REG_ACCESS_MODE_MASK; - } else { - if ((ocr_recvd & MMC_OCR_REG_HOST_CAPACITY_SUPPORT_MASK) - == MMC_OCR_REG_HOST_CAPACITY_SUPPORT_SECTOR) { - mmc_card_cur->mode = SECTOR_MODE; - } else { - mmc_card_cur->mode = BYTE_MODE; - } - ocr_recvd &= ~MMC_OCR_REG_HOST_CAPACITY_SUPPORT_MASK; - } - - ocr_recvd &= ~(0x1 << 31); - if (!(ocr_recvd & ocr_value)) - return 0; - - err = mmc_send_cmd(MMC_CMD2, argument, mmc_resp.resp); - if (err != 1) - return err; - - if (mmc_card_cur->card_type == MMC_CARD) { - argument = mmc_card_cur->RCA << 16; - err = mmc_send_cmd(MMC_CMD3, argument, mmc_resp.resp); - if (err != 1) - return err; - } else { - argument = 0x00000000; - err = mmc_send_cmd(MMC_SDCMD3, argument, mmc_resp.resp); - if (err != 1) - return err; - - mmc_card_cur->RCA = mmc_resp.r6.newpublishedrca; - } - - writel(readl(&mmc_base->con) & ~OD, &mmc_base->con); - writel(readl(&mmc_base->con) | NOOPENDRAIN, &mmc_base->con); - return 1; -} - -static unsigned char mmc_read_cardsize(mmc_card_data *mmc_dev_data, - mmc_csd_reg_t *cur_csd) -{ - mmc_extended_csd_reg_t ext_csd; - unsigned int size, count, blk_len, blk_no, card_size, argument; - unsigned char err; - unsigned int resp[4]; - - if (mmc_dev_data->mode == SECTOR_MODE) { - if (mmc_dev_data->card_type == SD_CARD) { - card_size = - (((mmc_sd2_csd_reg_t *) cur_csd)-> - c_size_lsb & MMC_SD2_CSD_C_SIZE_LSB_MASK) | - ((((mmc_sd2_csd_reg_t *) cur_csd)-> - c_size_msb & MMC_SD2_CSD_C_SIZE_MSB_MASK) - << MMC_SD2_CSD_C_SIZE_MSB_OFFSET); - mmc_dev_data->size = card_size * 1024; - if (mmc_dev_data->size == 0) - return 0; - } else { - argument = 0x00000000; - err = mmc_send_cmd(MMC_CMD8, argument, resp); - if (err != 1) - return err; - err = mmc_read_data((unsigned int *) &ext_csd); - if (err != 1) - return err; - mmc_dev_data->size = ext_csd.sectorcount; - - if (mmc_dev_data->size == 0) - mmc_dev_data->size = 8388608; - } - } else { - if (cur_csd->c_size_mult >= 8) - return 0; - - if (cur_csd->read_bl_len >= 12) - return 0; - - /* Compute size */ - count = 1 << (cur_csd->c_size_mult + 2); - card_size = (cur_csd->c_size_lsb & MMC_CSD_C_SIZE_LSB_MASK) | - ((cur_csd->c_size_msb & MMC_CSD_C_SIZE_MSB_MASK) - << MMC_CSD_C_SIZE_MSB_OFFSET); - blk_no = (card_size + 1) * count; - blk_len = 1 << cur_csd->read_bl_len; - size = blk_no * blk_len; - mmc_dev_data->size = size / MMCSD_SECTOR_SIZE; - if (mmc_dev_data->size == 0) - return 0; - } - return 1; -} - -static unsigned long mmc_bread(int dev_num, unsigned long blknr, - lbaint_t blkcnt, void *dst) -{ - unsigned char err; - unsigned int argument; - unsigned int resp[4]; - unsigned int *output_buf = dst; - unsigned int sec_inc_val; - lbaint_t i; - - if (blkcnt == 0) - return 0; - - if (cur_card_data.mode == SECTOR_MODE) { - argument = blknr; - sec_inc_val = 1; - } else { - argument = blknr * MMCSD_SECTOR_SIZE; - sec_inc_val = MMCSD_SECTOR_SIZE; - } - - for (i = 0; i < blkcnt; i++) { - err = mmc_send_cmd(MMC_CMD17, argument, resp); - if (err != 1) { - printf("mmc: CMD17 failed, status = %08x\n", err); - break; - } - - err = mmc_read_data(output_buf); - if (err != 1) { - printf("mmc: read failed, status = %08x\n", err); - break; - } - - output_buf += (MMCSD_SECTOR_SIZE / 4); - argument += sec_inc_val; - } - - return i; -} - -static unsigned char configure_mmc(mmc_card_data *mmc_card_cur) -{ - unsigned char ret_val; - unsigned int argument; - unsigned int trans_clk, trans_fact, trans_unit, retries = 2; - unsigned char trans_speed; - mmc_resp_t mmc_resp; - - ret_val = mmc_init_setup(); - - if (ret_val != 1) - return ret_val; - - do { - ret_val = mmc_detect_card(mmc_card_cur); - retries--; - } while ((retries > 0) && (ret_val != 1)); - - argument = mmc_card_cur->RCA << 16; - ret_val = mmc_send_cmd(MMC_CMD9, argument, mmc_resp.resp); - if (ret_val != 1) - return ret_val; - - if (mmc_card_cur->card_type == MMC_CARD) - mmc_card_cur->version = mmc_resp.Card_CSD.spec_vers; - - trans_speed = mmc_resp.Card_CSD.tran_speed; - - ret_val = mmc_send_cmd(MMC_CMD4, MMC_DSR_DEFAULT << 16, mmc_resp.resp); - if (ret_val != 1) - return ret_val; - - trans_unit = trans_speed & MMC_CSD_TRAN_SPEED_UNIT_MASK; - trans_fact = trans_speed & MMC_CSD_TRAN_SPEED_FACTOR_MASK; - - if (trans_unit > MMC_CSD_TRAN_SPEED_UNIT_100MHZ) - return 0; - - if ((trans_fact < MMC_CSD_TRAN_SPEED_FACTOR_1_0) || - (trans_fact > MMC_CSD_TRAN_SPEED_FACTOR_8_0)) - return 0; - - trans_unit >>= 0; - trans_fact >>= 3; - - trans_clk = mmc_transspeed_val[trans_fact - 1][trans_unit] * 2; - ret_val = mmc_clock_config(CLK_MISC, trans_clk); - - if (ret_val != 1) - return ret_val; - - argument = mmc_card_cur->RCA << 16; - ret_val = mmc_send_cmd(MMC_CMD7_SELECT, argument, mmc_resp.resp); - if (ret_val != 1) - return ret_val; - - /* Configure the block length to 512 bytes */ - argument = MMCSD_SECTOR_SIZE; - ret_val = mmc_send_cmd(MMC_CMD16, argument, mmc_resp.resp); - if (ret_val != 1) - return ret_val; - - /* get the card size in sectors */ - ret_val = mmc_read_cardsize(mmc_card_cur, &mmc_resp.Card_CSD); - if (ret_val != 1) - return ret_val; - - return 1; -} - -int mmc_legacy_init(int dev) -{ - if (mmc_set_dev(dev) != 0) - return 1; - - if (configure_mmc(&cur_card_data) != 1) - return 1; - - mmc_blk_dev.if_type = IF_TYPE_MMC; - mmc_blk_dev.part_type = PART_TYPE_DOS; - mmc_blk_dev.dev = 0; - mmc_blk_dev.lun = 0; - mmc_blk_dev.type = 0; - - /* FIXME fill in the correct size (is set to 32MByte) */ - mmc_blk_dev.blksz = MMCSD_SECTOR_SIZE; - mmc_blk_dev.lba = 0x10000; - mmc_blk_dev.removable = 0; - mmc_blk_dev.block_read = mmc_bread; - - fat_register_device(&mmc_blk_dev, 1); - return 0; -} diff --git a/drivers/mmc/omap3_mmc.h b/drivers/mmc/omap3_mmc.h deleted file mode 100644 index e4d263c..0000000 --- a/drivers/mmc/omap3_mmc.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - * (C) Copyright 2008 - * Texas Instruments, <www.ti.com> - * Syed Mohammed Khasim khasim@ti.com - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation's version 2 of - * the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef MMC_H -#define MMC_H - -#include <asm/arch/mmc_host_def.h> - -/* Responses */ -#define RSP_TYPE_NONE (RSP_TYPE_NORSP | CCCE_NOCHECK | CICE_NOCHECK) -#define RSP_TYPE_R1 (RSP_TYPE_LGHT48 | CCCE_CHECK | CICE_CHECK) -#define RSP_TYPE_R1B (RSP_TYPE_LGHT48B | CCCE_CHECK | CICE_CHECK) -#define RSP_TYPE_R2 (RSP_TYPE_LGHT136 | CCCE_CHECK | CICE_NOCHECK) -#define RSP_TYPE_R3 (RSP_TYPE_LGHT48 | CCCE_NOCHECK | CICE_NOCHECK) -#define RSP_TYPE_R4 (RSP_TYPE_LGHT48 | CCCE_NOCHECK | CICE_NOCHECK) -#define RSP_TYPE_R5 (RSP_TYPE_LGHT48 | CCCE_CHECK | CICE_CHECK) -#define RSP_TYPE_R6 (RSP_TYPE_LGHT48 | CCCE_CHECK | CICE_CHECK) -#define RSP_TYPE_R7 (RSP_TYPE_LGHT48 | CCCE_CHECK | CICE_CHECK) - -/* All supported commands */ -#define MMC_CMD0 (INDEX(0) | RSP_TYPE_NONE | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD1 (INDEX(1) | RSP_TYPE_R3 | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD2 (INDEX(2) | RSP_TYPE_R2 | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD3 (INDEX(3) | RSP_TYPE_R1 | DP_NO_DATA | DDIR_WRITE) -#define MMC_SDCMD3 (INDEX(3) | RSP_TYPE_R6 | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD4 (INDEX(4) | RSP_TYPE_NONE | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD6 (INDEX(6) | RSP_TYPE_R1B | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD7_SELECT (INDEX(7) | RSP_TYPE_R1B | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD7_DESELECT (INDEX(7)| RSP_TYPE_NONE | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD8 (INDEX(8) | RSP_TYPE_R1 | DP_DATA | DDIR_READ) -#define MMC_SDCMD8 (INDEX(8) | RSP_TYPE_R7 | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD9 (INDEX(9) | RSP_TYPE_R2 | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD12 (INDEX(12) | RSP_TYPE_R1B | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD13 (INDEX(13) | RSP_TYPE_R1 | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD15 (INDEX(15) | RSP_TYPE_NONE | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD16 (INDEX(16) | RSP_TYPE_R1 | DP_NO_DATA | DDIR_WRITE) -#define MMC_CMD17 (INDEX(17) | RSP_TYPE_R1 | DP_DATA | DDIR_READ) -#define MMC_CMD24 (INDEX(24) | RSP_TYPE_R1 | DP_DATA | DDIR_WRITE) -#define MMC_ACMD6 (INDEX(6) | RSP_TYPE_R1 | DP_NO_DATA | DDIR_WRITE) -#define MMC_ACMD41 (INDEX(41) | RSP_TYPE_R3 | DP_NO_DATA | DDIR_WRITE) -#define MMC_ACMD51 (INDEX(51) | RSP_TYPE_R1 | DP_DATA | DDIR_READ) -#define MMC_CMD55 (INDEX(55) | RSP_TYPE_R1 | DP_NO_DATA | DDIR_WRITE) - -#define MMC_AC_CMD_RCA_MASK (unsigned int)(0xFFFF << 16) -#define MMC_BC_CMD_DSR_MASK (unsigned int)(0xFFFF << 16) -#define MMC_DSR_DEFAULT 0x0404 -#define SD_CMD8_CHECK_PATTERN 0xAA -#define SD_CMD8_2_7_3_6_V_RANGE (0x01 << 8) - -/* Clock Configurations and Macros */ - -#define MMC_CLOCK_REFERENCE 96 -#define MMC_RELATIVE_CARD_ADDRESS 0x1234 -#define MMC_INIT_SEQ_CLK (MMC_CLOCK_REFERENCE * 1000 / 80) -#define MMC_400kHz_CLK (MMC_CLOCK_REFERENCE * 1000 / 400) -#define CLKDR(r, f, u) ((((r)*100) / ((f)*(u))) + 1) -#define CLKD(f, u) (CLKDR(MMC_CLOCK_REFERENCE, f, u)) - -#define MMC_OCR_REG_ACCESS_MODE_MASK (0x3 << 29) -#define MMC_OCR_REG_ACCESS_MODE_BYTE (0x0 << 29) -#define MMC_OCR_REG_ACCESS_MODE_SECTOR (0x2 << 29) - -#define MMC_OCR_REG_HOST_CAPACITY_SUPPORT_MASK (0x1 << 30) -#define MMC_OCR_REG_HOST_CAPACITY_SUPPORT_BYTE (0x0 << 30) -#define MMC_OCR_REG_HOST_CAPACITY_SUPPORT_SECTOR (0x1 << 30) - -#define MMC_SD2_CSD_C_SIZE_LSB_MASK 0xFFFF -#define MMC_SD2_CSD_C_SIZE_MSB_MASK 0x003F -#define MMC_SD2_CSD_C_SIZE_MSB_OFFSET 16 -#define MMC_CSD_C_SIZE_LSB_MASK 0x0003 -#define MMC_CSD_C_SIZE_MSB_MASK 0x03FF -#define MMC_CSD_C_SIZE_MSB_OFFSET 2 - -#define MMC_CSD_TRAN_SPEED_UNIT_MASK (0x07 << 0) -#define MMC_CSD_TRAN_SPEED_FACTOR_MASK (0x0F << 3) -#define MMC_CSD_TRAN_SPEED_UNIT_100MHZ (0x3 << 0) -#define MMC_CSD_TRAN_SPEED_FACTOR_1_0 (0x01 << 3) -#define MMC_CSD_TRAN_SPEED_FACTOR_8_0 (0x0F << 3) - -typedef struct { - unsigned not_used:1; - unsigned crc:7; - unsigned ecc:2; - unsigned file_format:2; - unsigned tmp_write_protect:1; - unsigned perm_write_protect:1; - unsigned copy:1; - unsigned file_format_grp:1; - unsigned content_prot_app:1; - unsigned reserved_1:4; - unsigned write_bl_partial:1; - unsigned write_bl_len:4; - unsigned r2w_factor:3; - unsigned default_ecc:2; - unsigned wp_grp_enable:1; - unsigned wp_grp_size:5; - unsigned erase_grp_mult:5; - unsigned erase_grp_size:5; - unsigned c_size_mult:3; - unsigned vdd_w_curr_max:3; - unsigned vdd_w_curr_min:3; - unsigned vdd_r_curr_max:3; - unsigned vdd_r_curr_min:3; - unsigned c_size_lsb:2; - unsigned c_size_msb:10; - unsigned reserved_2:2; - unsigned dsr_imp:1; - unsigned read_blk_misalign:1; - unsigned write_blk_misalign:1; - unsigned read_bl_partial:1; - unsigned read_bl_len:4; - unsigned ccc:12; - unsigned tran_speed:8; - unsigned nsac:8; - unsigned taac:8; - unsigned reserved_3:2; - unsigned spec_vers:4; - unsigned csd_structure:2; -} mmc_csd_reg_t; - -/* csd for sd2.0 */ -typedef struct { - unsigned not_used:1; - unsigned crc:7; - unsigned reserved_1:2; - unsigned file_format:2; - unsigned tmp_write_protect:1; - unsigned perm_write_protect:1; - unsigned copy:1; - unsigned file_format_grp:1; - unsigned reserved_2:5; - unsigned write_bl_partial:1; - unsigned write_bl_len:4; - unsigned r2w_factor:3; - unsigned reserved_3:2; - unsigned wp_grp_enable:1; - unsigned wp_grp_size:7; - unsigned sector_size:7; - unsigned erase_blk_len:1; - unsigned reserved_4:1; - unsigned c_size_lsb:16; - unsigned c_size_msb:6; - unsigned reserved_5:6; - unsigned dsr_imp:1; - unsigned read_blk_misalign:1; - unsigned write_blk_misalign:1; - unsigned read_bl_partial:1; - unsigned read_bl_len:4; - unsigned ccc:12; - unsigned tran_speed:8; - unsigned nsac:8; - unsigned taac:8; - unsigned reserved_6:6; - unsigned csd_structure:2; -} mmc_sd2_csd_reg_t; - -/* extended csd - 512 bytes long */ -typedef struct { - unsigned char reserved_1[181]; - unsigned char erasedmemorycontent; - unsigned char reserved_2; - unsigned char buswidthmode; - unsigned char reserved_3; - unsigned char highspeedinterfacetiming; - unsigned char reserved_4; - unsigned char powerclass; - unsigned char reserved_5; - unsigned char commandsetrevision; - unsigned char reserved_6; - unsigned char commandset; - unsigned char extendedcsdrevision; - unsigned char reserved_7; - unsigned char csdstructureversion; - unsigned char reserved_8; - unsigned char cardtype; - unsigned char reserved_9[3]; - unsigned char powerclass_52mhz_1_95v; - unsigned char powerclass_26mhz_1_95v; - unsigned char powerclass_52mhz_3_6v; - unsigned char powerclass_26mhz_3_6v; - unsigned char reserved_10; - unsigned char minreadperf_4b_26mhz; - unsigned char minwriteperf_4b_26mhz; - unsigned char minreadperf_8b_26mhz_4b_52mhz; - unsigned char minwriteperf_8b_26mhz_4b_52mhz; - unsigned char minreadperf_8b_52mhz; - unsigned char minwriteperf_8b_52mhz; - unsigned char reserved_11; - unsigned int sectorcount; - unsigned char reserved_12[288]; - unsigned char supportedcommandsets; - unsigned char reserved_13[7]; -} mmc_extended_csd_reg_t; - -/* mmc sd responce */ -typedef struct { - unsigned int ocr; -} mmc_resp_r3; - -typedef struct { - unsigned short cardstatus; - unsigned short newpublishedrca; -} mmc_resp_r6; - -typedef union { - unsigned int resp[4]; - mmc_resp_r3 r3; - mmc_resp_r6 r6; - mmc_csd_reg_t Card_CSD; -} mmc_resp_t; - -#endif /* MMC_H */

-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Rini, Tom Sent: Tuesday, August 23, 2011 3:44 AM To: u-boot@lists.denx.de Subject: [U-Boot] [PATCH 9/9] OMAP3: Remove legacy mmc driver
Now that all platforms have been migrated to the new MMC driver, remove the old one.
Signed-off-by: Tom Rini trini@ti.com
drivers/mmc/Makefile | 1 - drivers/mmc/omap3_mmc.c | 570
drivers/mmc/omap3_mmc.h | 233 ------------------- 3 files changed, 0 insertions(+), 804 deletions(-) delete mode 100644 drivers/mmc/omap3_mmc.c delete mode 100644 drivers/mmc/omap3_mmc.h
Similar patch was posted earlier in the month: http://marc.info/?l=u-boot&m=131220851719468&w=2
You may still want to keep the "legacy" mmc driver. Should help the new boards during early development.
~sanjeev

On Tuesday, August 30, 2011 06:59:24 AM Premi, Sanjeev wrote:
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces@lists.denx.de] On Behalf Of Rini, Tom Sent: Tuesday, August 23, 2011 3:44 AM To: u-boot@lists.denx.de Subject: [U-Boot] [PATCH 9/9] OMAP3: Remove legacy mmc driver
Now that all platforms have been migrated to the new MMC driver, remove the old one.
Signed-off-by: Tom Rini trini@ti.com
drivers/mmc/Makefile | 1 - drivers/mmc/omap3_mmc.c | 570
drivers/mmc/omap3_mmc.h | 233 ------------------- 3 files changed, 0 insertions(+), 804 deletions(-) delete mode 100644 drivers/mmc/omap3_mmc.c delete mode 100644 drivers/mmc/omap3_mmc.h
Similar patch was posted earlier in the month: http://marc.info/?l=u-boot&m=131220851719468&w=2
You may still want to keep the "legacy" mmc driver. Should help the new boards during early development.
How? Really, protecting legacy stuff won't help anyone ... and if those people want it, they can pull it from git history.
Cheers
~sanjeev _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On Tue, Aug 30, 2011 at 2:19 AM, Marek Vasut marek.vasut@gmail.com wrote:
drivers/mmc/omap3_mmc.h | 233 ------------------- 3 files changed, 0 insertions(+), 804 deletions(-) delete mode 100644 drivers/mmc/omap3_mmc.c delete mode 100644 drivers/mmc/omap3_mmc.h
Similar patch was posted earlier in the month: http://marc.info/?l=u-boot&m=131220851719468&w=2
You may still want to keep the "legacy" mmc driver. Should help the new boards during early development.
How? Really, protecting legacy stuff won't help anyone ... and if those people want it, they can pull it from git history.
Agreed. I'd be happy to apply this once the patches changing the drivers over have been committed. I can do that, if the many board maintainers don't object. Otherwise, I'll just wait. :)
Andy

<Playing some post-vacation catch-up>
I just want to address this point real quick. Take a look at the board conversion patches, it's not a big deal to hook in to this, it's just a matter of calling the init function, on top of any "normal" hook up work you had to do.
participants (8)
-
Andy Fleming
-
Igor Grinberg
-
Luca Ceresoli
-
Marek Vasut
-
Premi, Sanjeev
-
Rini, Tom
-
Tom Rini
-
Tom Rini