Merge tag 'mmc-1-16-2020' of https://gitlab.denx.de/u-boot/custodians/u-boot-mmc
- Cleanup of fsl_esdhc driver together with arch/defconfig change - Add quirk for APP_CMD retry
This commit is contained in:
@@ -125,7 +125,6 @@ void get_sys_info(struct sys_info *sys_info)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
#define HWA_CGA_M2_CLK_SEL 0x00000007
|
||||
#define HWA_CGA_M2_CLK_SHIFT 0
|
||||
#if defined(CONFIG_TARGET_LS1046ARDB) || defined(CONFIG_TARGET_LS1043ARDB)
|
||||
@@ -148,11 +147,10 @@ void get_sys_info(struct sys_info *sys_info)
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
printf("Error: Unknown peripheral clock select!\n");
|
||||
printf("Error: Unknown cluster group A mux 2 clock select!\n");
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_FSL_IFC)
|
||||
sys_info->freq_localbus = sys_info->freq_systembus /
|
||||
@@ -179,28 +177,21 @@ unsigned long get_qman_freq(void)
|
||||
int get_clocks(void)
|
||||
{
|
||||
struct sys_info sys_info;
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
u32 clock = 0;
|
||||
#endif
|
||||
get_sys_info(&sys_info);
|
||||
gd->cpu_clk = sys_info.freq_processor[0];
|
||||
gd->bus_clk = sys_info.freq_systembus / CONFIG_SYS_FSL_PCLK_DIV;
|
||||
gd->mem_clk = sys_info.freq_ddrbus;
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
#if defined(CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK)
|
||||
#if defined(CONFIG_TARGET_LS1046ARDB)
|
||||
gd->arch.sdhc_clk = sys_info.freq_cga_m2 / 2;
|
||||
#endif
|
||||
#if defined(CONFIG_TARGET_LS1043ARDB)
|
||||
gd->arch.sdhc_clk = sys_info.freq_cga_m2;
|
||||
#endif
|
||||
#if defined(CONFIG_TARGET_LS1012ARDB)
|
||||
gd->arch.sdhc_clk = sys_info.freq_systembus;
|
||||
#endif
|
||||
#else
|
||||
gd->arch.sdhc_clk = (sys_info.freq_systembus /
|
||||
CONFIG_SYS_FSL_PCLK_DIV) /
|
||||
CONFIG_SYS_FSL_SDHC_CLK_DIV;
|
||||
#if defined(CONFIG_ARCH_LS1012A)
|
||||
clock = sys_info.freq_systembus;
|
||||
#elif defined(CONFIG_ARCH_LS1043A) || defined(CONFIG_ARCH_LS1046A)
|
||||
clock = sys_info.freq_cga_m2;
|
||||
#endif
|
||||
gd->arch.sdhc_per_clk = clock / CONFIG_SYS_FSL_SDHC_CLK_DIV;
|
||||
gd->arch.sdhc_clk = gd->bus_clk / CONFIG_SYS_FSL_SDHC_CLK_DIV;
|
||||
#endif
|
||||
if (gd->cpu_clk != 0)
|
||||
return 0;
|
||||
|
||||
@@ -160,14 +160,14 @@ void get_sys_info(struct sys_info *sys_info)
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LS2080A)
|
||||
sys_info->freq_cga_m2 = sys_info->freq_systembus;
|
||||
#endif
|
||||
}
|
||||
|
||||
int get_clocks(void)
|
||||
{
|
||||
struct sys_info sys_info;
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
u32 clock = 0;
|
||||
#endif
|
||||
get_sys_info(&sys_info);
|
||||
gd->cpu_clk = sys_info.freq_processor[0];
|
||||
gd->bus_clk = sys_info.freq_systembus / CONFIG_SYS_FSL_PCLK_DIV;
|
||||
@@ -175,18 +175,16 @@ int get_clocks(void)
|
||||
#ifdef CONFIG_SYS_FSL_HAS_DP_DDR
|
||||
gd->arch.mem2_clk = sys_info.freq_ddrbus2;
|
||||
#endif
|
||||
#if defined(CONFIG_FSL_ESDHC)
|
||||
#if defined(CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK)
|
||||
#if defined(CONFIG_ARCH_LS1028A) || defined(CONFIG_ARCH_LX2160A)
|
||||
gd->arch.sdhc_clk = sys_info.freq_cga_m2 / 2;
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
#if defined(CONFIG_ARCH_LS1028A) || defined(CONFIG_ARCH_LS1088A)
|
||||
clock = sys_info.freq_cga_m2;
|
||||
#elif defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LS2080A)
|
||||
clock = sys_info.freq_systembus;
|
||||
#endif
|
||||
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LS1088A)
|
||||
gd->arch.sdhc_clk = sys_info.freq_cga_m2;
|
||||
#endif
|
||||
#else
|
||||
gd->arch.sdhc_per_clk = clock / CONFIG_SYS_FSL_SDHC_CLK_DIV;
|
||||
gd->arch.sdhc_clk = gd->bus_clk / CONFIG_SYS_FSL_SDHC_CLK_DIV;
|
||||
#endif
|
||||
#endif /* defined(CONFIG_FSL_ESDHC) */
|
||||
|
||||
if (gd->cpu_clk != 0)
|
||||
return 0;
|
||||
|
||||
@@ -13,6 +13,10 @@ struct arch_global_data {
|
||||
u32 sdhc_clk;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_FSL_ESDHC)
|
||||
u32 sdhc_per_clk;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_U_QE)
|
||||
u32 qe_clk;
|
||||
u32 brg_clk;
|
||||
|
||||
@@ -69,8 +69,7 @@ void get_sys_info(sys_info_t *sys_info)
|
||||
[14] = 4, /* CC4 PPL / 4 */
|
||||
};
|
||||
uint i, freq_c_pll[CONFIG_SYS_FSL_NUM_CC_PLLS];
|
||||
#if !defined(CONFIG_FM_PLAT_CLK_DIV) || !defined(CONFIG_PME_PLAT_CLK_DIV) || \
|
||||
defined(CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK)
|
||||
#if !defined(CONFIG_FM_PLAT_CLK_DIV) || !defined(CONFIG_PME_PLAT_CLK_DIV)
|
||||
uint rcw_tmp;
|
||||
#endif
|
||||
uint ratio[CONFIG_SYS_FSL_NUM_CC_PLLS];
|
||||
@@ -450,48 +449,6 @@ void get_sys_info(sys_info_t *sys_info)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK
|
||||
#if defined(CONFIG_ARCH_T2080)
|
||||
#define ESDHC_CLK_SEL 0x00000007
|
||||
#define ESDHC_CLK_SHIFT 0
|
||||
#define ESDHC_CLK_RCWSR 15
|
||||
#else /* Support T1040 T1024 by now */
|
||||
#define ESDHC_CLK_SEL 0xe0000000
|
||||
#define ESDHC_CLK_SHIFT 29
|
||||
#define ESDHC_CLK_RCWSR 7
|
||||
#endif
|
||||
rcw_tmp = in_be32(&gur->rcwsr[ESDHC_CLK_RCWSR]);
|
||||
switch ((rcw_tmp & ESDHC_CLK_SEL) >> ESDHC_CLK_SHIFT) {
|
||||
case 1:
|
||||
sys_info->freq_sdhc = freq_c_pll[CONFIG_SYS_SDHC_CLK];
|
||||
break;
|
||||
case 2:
|
||||
sys_info->freq_sdhc = freq_c_pll[CONFIG_SYS_SDHC_CLK] / 2;
|
||||
break;
|
||||
case 3:
|
||||
sys_info->freq_sdhc = freq_c_pll[CONFIG_SYS_SDHC_CLK] / 3;
|
||||
break;
|
||||
#if defined(CONFIG_SYS_SDHC_CLK_2_PLL)
|
||||
case 4:
|
||||
sys_info->freq_sdhc = freq_c_pll[CONFIG_SYS_SDHC_CLK] / 4;
|
||||
break;
|
||||
#if defined(CONFIG_ARCH_T2080)
|
||||
case 5:
|
||||
sys_info->freq_sdhc = freq_c_pll[1 - CONFIG_SYS_SDHC_CLK];
|
||||
break;
|
||||
#endif
|
||||
case 6:
|
||||
sys_info->freq_sdhc = freq_c_pll[1 - CONFIG_SYS_SDHC_CLK] / 2;
|
||||
break;
|
||||
case 7:
|
||||
sys_info->freq_sdhc = freq_c_pll[1 - CONFIG_SYS_SDHC_CLK] / 3;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
sys_info->freq_sdhc = 0;
|
||||
printf("Error: Unknown SDHC peripheral clock select!\n");
|
||||
}
|
||||
#endif
|
||||
#else /* CONFIG_SYS_FSL_QORIQ_CHASSIS2 */
|
||||
|
||||
for_each_cpu(i, cpu, cpu_numcores(), cpu_mask()) {
|
||||
@@ -673,15 +630,11 @@ int get_clocks (void)
|
||||
gd->arch.i2c2_clk = gd->arch.i2c1_clk;
|
||||
|
||||
#if defined(CONFIG_FSL_ESDHC)
|
||||
#ifdef CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK
|
||||
gd->arch.sdhc_clk = sys_info.freq_sdhc / 2;
|
||||
#else
|
||||
#if defined(CONFIG_ARCH_MPC8569) || defined(CONFIG_ARCH_P1010)
|
||||
gd->arch.sdhc_clk = gd->bus_clk;
|
||||
#else
|
||||
gd->arch.sdhc_clk = gd->bus_clk / 2;
|
||||
#endif
|
||||
#endif
|
||||
#endif /* defined(CONFIG_FSL_ESDHC) */
|
||||
|
||||
#if defined(CONFIG_CPM2)
|
||||
|
||||
@@ -331,9 +331,6 @@
|
||||
#define CONFIG_SYS_FMAN_V3
|
||||
#define CONFIG_FM_PLAT_CLK_DIV 1
|
||||
#define CONFIG_SYS_FM1_CLK CONFIG_FM_PLAT_CLK_DIV
|
||||
#define CONFIG_SYS_SDHC_CLK 0/* Select SDHC CLK begining from PLL1
|
||||
per rcw field value */
|
||||
#define CONFIG_SYS_SDHC_CLK_2_PLL /* Select SDHC CLK from 2 PLLs */
|
||||
#define CONFIG_SYS_FM_MURAM_SIZE 0x30000
|
||||
#define CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
|
||||
#define CONFIG_SYS_FSL_TBCLK_DIV 16
|
||||
@@ -362,8 +359,6 @@
|
||||
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
|
||||
#define CONFIG_SYS_FSL_IFC_BANK_COUNT 8
|
||||
#define CONFIG_SYS_FM1_CLK 0
|
||||
#define CONFIG_SYS_SDHC_CLK 0/* Select SDHC CLK begining from PLL1
|
||||
per rcw field value */
|
||||
#define CONFIG_QBMAN_CLK_DIV 1
|
||||
#define CONFIG_SYS_FM_MURAM_SIZE 0x30000
|
||||
#define CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
|
||||
@@ -402,9 +397,6 @@
|
||||
#define CONFIG_PME_PLAT_CLK_DIV 1
|
||||
#define CONFIG_SYS_PME_CLK CONFIG_PME_PLAT_CLK_DIV
|
||||
#define CONFIG_SYS_FM1_CLK 0
|
||||
#define CONFIG_SYS_SDHC_CLK 1/* Select SDHC CLK begining from PLL2
|
||||
per rcw field value */
|
||||
#define CONFIG_SYS_SDHC_CLK_2_PLL /* Select SDHC CLK from 2 PLLs */
|
||||
#define CONFIG_SYS_FSL_IFC_BANK_COUNT 8
|
||||
#define CONFIG_SYS_FMAN_V3
|
||||
#define CONFIG_SYS_FM_MURAM_SIZE 0x28000
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
struct arch_global_data {
|
||||
#if defined(CONFIG_FSL_ESDHC)
|
||||
u32 sdhc_clk;
|
||||
u32 sdhc_per_clk;
|
||||
#if defined(CONFIG_FSL_ESDHC_ADAPTER_IDENT)
|
||||
u8 sdhc_adapter;
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user