--- 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/groups/opt_out.