|
|
|
@ -2739,6 +2739,34 @@ static int msdc_drv_probe(struct platform_device *pdev) |
|
|
|
|
struct msdc_host *host; |
|
|
|
|
struct msdc_hw *hw; |
|
|
|
|
int ret, irq; |
|
|
|
|
u32 reg; |
|
|
|
|
|
|
|
|
|
printk("MTK MSDC device init.\n"); |
|
|
|
|
mtk_sd_device.dev.platform_data = &msdc0_hw; |
|
|
|
|
if (ralink_soc == MT762X_SOC_MT7620A || ralink_soc == MT762X_SOC_MT7621AT) { |
|
|
|
|
//#if defined (CONFIG_RALINK_MT7620) || defined (CONFIG_RALINK_MT7621)
|
|
|
|
|
reg = sdr_read32((volatile u32*)(RALINK_SYSCTL_BASE + 0x60)) & ~(0x3<<18); |
|
|
|
|
//#if defined (CONFIG_RALINK_MT7620)
|
|
|
|
|
if (ralink_soc == MT762X_SOC_MT7620A) |
|
|
|
|
reg |= 0x1<<18; |
|
|
|
|
//#endif
|
|
|
|
|
} else { |
|
|
|
|
//#elif defined (CONFIG_RALINK_MT7628)
|
|
|
|
|
/* TODO: maybe omitted when RAether already toggle AGPIO_CFG */ |
|
|
|
|
reg = sdr_read32((volatile u32*)(RALINK_SYSCTL_BASE + 0x3c)); |
|
|
|
|
reg |= 0x1e << 16; |
|
|
|
|
sdr_write32((volatile u32*)(RALINK_SYSCTL_BASE + 0x3c), reg); |
|
|
|
|
|
|
|
|
|
reg = sdr_read32((volatile u32*)(RALINK_SYSCTL_BASE + 0x60)) & ~(0x3<<10); |
|
|
|
|
#if defined (CONFIG_MTK_MMC_EMMC_8BIT) |
|
|
|
|
reg |= 0x3<<26 | 0x3<<28 | 0x3<<30; |
|
|
|
|
msdc0_hw.data_pins = 8, |
|
|
|
|
#endif |
|
|
|
|
//#endif
|
|
|
|
|
} |
|
|
|
|
sdr_write32((volatile u32*)(RALINK_SYSCTL_BASE + 0x60), reg); |
|
|
|
|
//platform_device_register(&mtk_sd_device);
|
|
|
|
|
/* end of +++ */ |
|
|
|
|
|
|
|
|
|
pdev->dev.platform_data = &msdc0_hw; |
|
|
|
|
|
|
|
|
@ -2995,42 +3023,6 @@ static struct platform_driver mt_msdc_driver = { |
|
|
|
|
static int __init mt_msdc_init(void) |
|
|
|
|
{ |
|
|
|
|
int ret; |
|
|
|
|
/* +++ by chhung */ |
|
|
|
|
u32 reg; |
|
|
|
|
|
|
|
|
|
#if defined (CONFIG_MTD_ANY_RALINK) |
|
|
|
|
extern int ra_check_flash_type(void); |
|
|
|
|
if(ra_check_flash_type() == 2) { /* NAND */ |
|
|
|
|
printk("%s: !!!!! SDXC Module Initialize Fail !!!!!", __func__); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
printk("MTK MSDC device init.\n"); |
|
|
|
|
mtk_sd_device.dev.platform_data = &msdc0_hw; |
|
|
|
|
if (ralink_soc == MT762X_SOC_MT7620A || ralink_soc == MT762X_SOC_MT7621AT) { |
|
|
|
|
//#if defined (CONFIG_RALINK_MT7620) || defined (CONFIG_RALINK_MT7621)
|
|
|
|
|
reg = sdr_read32((volatile u32*)(RALINK_SYSCTL_BASE + 0x60)) & ~(0x3<<18); |
|
|
|
|
//#if defined (CONFIG_RALINK_MT7620)
|
|
|
|
|
if (ralink_soc == MT762X_SOC_MT7620A) |
|
|
|
|
reg |= 0x1<<18; |
|
|
|
|
//#endif
|
|
|
|
|
} else { |
|
|
|
|
//#elif defined (CONFIG_RALINK_MT7628)
|
|
|
|
|
/* TODO: maybe omitted when RAether already toggle AGPIO_CFG */ |
|
|
|
|
reg = sdr_read32((volatile u32*)(RALINK_SYSCTL_BASE + 0x3c)); |
|
|
|
|
reg |= 0x1e << 16; |
|
|
|
|
sdr_write32((volatile u32*)(RALINK_SYSCTL_BASE + 0x3c), reg); |
|
|
|
|
|
|
|
|
|
reg = sdr_read32((volatile u32*)(RALINK_SYSCTL_BASE + 0x60)) & ~(0x3<<10); |
|
|
|
|
#if defined (CONFIG_MTK_MMC_EMMC_8BIT) |
|
|
|
|
reg |= 0x3<<26 | 0x3<<28 | 0x3<<30; |
|
|
|
|
msdc0_hw.data_pins = 8, |
|
|
|
|
#endif |
|
|
|
|
//#endif
|
|
|
|
|
} |
|
|
|
|
sdr_write32((volatile u32*)(RALINK_SYSCTL_BASE + 0x60), reg); |
|
|
|
|
//platform_device_register(&mtk_sd_device);
|
|
|
|
|
/* end of +++ */ |
|
|
|
|
|
|
|
|
|
ret = platform_driver_register(&mt_msdc_driver); |
|
|
|
|
if (ret) { |
|
|
|
|