Has anybody merged this into 3.4? is it worth spending time on this?
oliver
On 01/15/14 11:00, wills wrote:
It's for sunxi-3.4, use new mmc driver for sun4i.
On Wednesday, January 15, 2014 5:55:19 PM UTC+8, wills wrote:
---
drivers/mmc/host/Kconfig | 2 +-
drivers/mmc/host/sunxi-mci.h | 45
+++++++++++++++++++++++++++++++-------------
2 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index 958a428..5f1d3d8 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -558,7 +558,7 @@ config MMC_SH_MMCIF
config MMC_SUNXI_NEW
tristate "SUNXI MMC Card Interface support (new driver)"
- depends on MMC && (ARCH_SUN5I || ARCH_SUN7I)
+ depends on MMC && (ARCH_SUN4I || ARCH_SUN5I || ARCH_SUN7I)
default y
help
This selects support for the SD/MMC controller on AllWinner
SoCs.
diff --git a/drivers/mmc/host/sunxi-mci.h b/drivers/mmc/host/sunxi-mci.h
index 8e385c5..1447257 100644
--- a/drivers/mmc/host/sunxi-mci.h
+++ b/drivers/mmc/host/sunxi-mci.h
@@ -24,17 +24,32 @@
" Compiled in " __DATE__ " at " __TIME__ ""
/*========== platform define ==========*/
+/*---------- for sun4i ----------*/
+#ifdef CONFIG_ARCH_SUN4I
+#define REG_FIFO_OS (0x100)
+#define SMC_IRQNO(x) (SW_INT_IRQNO_SDMC0 + (x))
+
+#define MMC_SRCCLK_HOSC "hosc"
+#define MMC_SRCCLK_PLL6 "sdram_pll_p"
+#define MMC_AHBCLK_PREFIX "ahb_sdc"
+#define MMC_MODCLK_PREFIX "sdc"
+#define MMC3_DMA_TL (0x20070008)
+#define MMC_MAX_DMA_DES_BIT 13
+#define MMC_DMA_DES_BIT_LEFT 5
+#endif
+
/*---------- for sun5i ----------*/
#ifdef CONFIG_ARCH_SUN5I
-#define REG_FIFO_OS (0x100)
-#define SMC_IRQNO(x) (SW_INT_IRQNO_SDMC0 + (x))
-
-#define MMC_SRCCLK_HOSC "hosc"
-#define MMC_SRCCLK_PLL5 "sdram_pll_p"
-#define MMC_SRCCLK_PLL6 "sata_pll_2"
-#define MMC_AHBCLK_PREFIX "ahb_sdc"
-#define MMC_MODCLK_PREFIX "sdc"
-#define MMC3_DMA_TL (0x20070008)
+#define REG_FIFO_OS (0x100)
+#define SMC_IRQNO(x) (SW_INT_IRQNO_SDMC0 + (x))
+
+#define MMC_SRCCLK_HOSC "hosc"
+#define MMC_SRCCLK_PLL6 "sata_pll_2"
+#define MMC_AHBCLK_PREFIX "ahb_sdc"
+#define MMC_MODCLK_PREFIX "sdc"
+#define MMC3_DMA_TL (0x20070008)
+#define MMC_MAX_DMA_DES_BIT 16
+#define MMC_DMA_DES_BIT_LEFT 0
#endif
/*---------- for sun6i ----------*/
@@ -47,6 +62,8 @@
#define MMC_AHBCLK_PREFIX "ahb_sdmmc"
#define MMC_MODCLK_PREFIX "mod_sdc"
#define MMC3_DMA_TL (0x2007000f)
+#define MMC_MAX_DMA_DES_BIT 16
+#define MMC_DMA_DES_BIT_LEFT 0
#ifdef CONFIG_AW_FPGA_PLATFORM
#undef SMC_IRQNO
@@ -61,11 +78,12 @@
#define SMC_IRQNO(x) (SW_INT_IRQNO_SDMC0 + (x))
#define MMC_SRCCLK_HOSC "hosc"
-#define MMC_SRCCLK_PLL5 "sdram_pll_p"
#define MMC_SRCCLK_PLL6 "sata_pll"
#define MMC_AHBCLK_PREFIX "ahb_sdc"
#define MMC_MODCLK_PREFIX "sdc"
#define MMC3_DMA_TL (0x20070008)
+#define MMC_MAX_DMA_DES_BIT 16
+#define MMC_DMA_DES_BIT_LEFT 0
#ifdef CONFIG_AW_FPGA_PLATFORM
#undef SMC_IRQNO
@@ -232,7 +250,7 @@
#define SDXC_IDMA_ERR (SDXC_IDMACFatalBusErr|SDXC_IDMACDesInvalid \
|SDXC_IDMACCardErrSum|SDXC_IDMACAbnormalIntSum)
-#define SDXC_DES_NUM_SHIFT (15)
+#define SDXC_DES_NUM_SHIFT (MMC_MAX_DMA_DES_BIT)
#define SDXC_DES_BUFFER_MAX_LEN (1U << SDXC_DES_NUM_SHIFT)
struct sunxi_mmc_idma_des {
u32 config;
@@ -244,8 +262,9 @@ struct sunxi_mmc_idma_des {
#define SDXC_IDMAC_DES0_CES BIT(30) // card error summary
#define SDXC_IDMAC_DES0_OWN BIT(31) // des owner:1-idma owns it,
0-host owns it
- u32 data_buf1_sz :16,
- data_buf2_sz :16;
+ u32 data_buf1_sz :MMC_MAX_DMA_DES_BIT,
+ data_buf2_sz :MMC_MAX_DMA_DES_BIT,
+ :MMC_DMA_DES_BIT_LEFT;
u32 buf_addr_ptr1;
u32 buf_addr_ptr2;
};
--
1.8.3.2
--
You received this message because you are subscribed to the Google Groups
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.