aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/u-boot/u-boot-git/beagleboard/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/u-boot/u-boot-git/beagleboard/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch')
-rw-r--r--recipes/u-boot/u-boot-git/beagleboard/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch126
1 files changed, 0 insertions, 126 deletions
diff --git a/recipes/u-boot/u-boot-git/beagleboard/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch b/recipes/u-boot/u-boot-git/beagleboard/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch
deleted file mode 100644
index 9f09e0fa22..0000000000
--- a/recipes/u-boot/u-boot-git/beagleboard/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 0dd14c6a6f40cb47fd8517e9e9d48f0a119e9aa9 Mon Sep 17 00:00:00 2001
-From: Steve Sakoman <steve@sakoman.com>
-Date: Thu, 29 Apr 2010 10:28:14 -0700
-Subject: [PATCH 40/50] OMAP: mmc: add support for second and third mmc channels
-
-Boards wishing to use this feature should define CONFIG_SYS_MMC_SET_DEV
-
-Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
----
- drivers/mmc/omap3_mmc.c | 39 +++++++++++++++++++++++++++-
- include/asm-arm/arch-omap3/mmc_host_def.h | 15 +++++++++--
- 2 files changed, 49 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c
-index 96c0e65..bf650ba 100644
---- a/drivers/mmc/omap3_mmc.c
-+++ b/drivers/mmc/omap3_mmc.c
-@@ -52,7 +52,27 @@ const unsigned short mmc_transspeed_val[15][4] = {
-
- mmc_card_data cur_card_data;
- static block_dev_desc_t mmc_blk_dev;
--static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC_BASE;
-+static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE;
-+
-+unsigned char mmc_set_dev(int dev)
-+{
-+ switch (dev) {
-+ 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)
- {
-@@ -62,6 +82,7 @@ block_dev_desc_t *mmc_get_dev(int dev)
- unsigned char mmc_board_init(void)
- {
- t2_t *t2_base = (t2_t *)T2_BASE;
-+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
-
- #if defined(CONFIG_TWL4030_POWER)
- twl4030_power_mmc_init();
-@@ -74,6 +95,17 @@ unsigned char mmc_board_init(void)
- 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);
-+
- return 1;
- }
-
-@@ -512,8 +544,11 @@ unsigned long mmc_bread(int dev_num, unsigned long blknr, lbaint_t blkcnt,
- return 1;
- }
-
--int mmc_legacy_init(int verbose)
-+int mmc_legacy_init(int dev)
- {
-+ if (mmc_set_dev(dev) != 0)
-+ return 1;
-+
- if (configure_mmc(&cur_card_data) != 1)
- return 1;
-
-diff --git a/include/asm-arm/arch-omap3/mmc_host_def.h b/include/asm-arm/arch-omap3/mmc_host_def.h
-index aa751c9..43dd705 100644
---- a/include/asm-arm/arch-omap3/mmc_host_def.h
-+++ b/include/asm-arm/arch-omap3/mmc_host_def.h
-@@ -29,13 +29,20 @@
- #define T2_BASE 0x48002000
-
- typedef struct t2 {
-- unsigned char res1[0x274];
-+ unsigned char res1[0x274]; /* 0x000 */
- unsigned int devconf0; /* 0x274 */
-- unsigned char res2[0x2A8];
-+ unsigned char res2[0x060]; /* 0x278 */
-+ unsigned int devconf1; /* 0x2D8 */
-+ unsigned char res3[0x244]; /* 0x2DC */
- unsigned int pbias_lite; /* 0x520 */
- } t2_t;
-
- #define MMCSDIO1ADPCLKISEL (1 << 24)
-+#define MMCSDIO2ADPCLKISEL (1 << 6)
-+
-+#define EN_MMC1 (1 << 24)
-+#define EN_MMC2 (1 << 25)
-+#define EN_MMC3 (1 << 30)
-
- #define PBIASLITEPWRDNZ0 (1 << 1)
- #define PBIASSPEEDCTRL0 (1 << 2)
-@@ -44,7 +51,9 @@ typedef struct t2 {
- /*
- * OMAP HSMMC register definitions
- */
--#define OMAP_HSMMC_BASE 0x4809C000
-+#define OMAP_HSMMC1_BASE 0x4809C000
-+#define OMAP_HSMMC2_BASE 0x480B4000
-+#define OMAP_HSMMC3_BASE 0x480AD000
-
- typedef struct hsmmc {
- unsigned char res1[0x10];
---
-1.6.6.1
-