]> git.sur5r.net Git - u-boot/blobdiff - arch/arm/cpu/armv8/fsl-layerscape/fsl_lsch2_speed.c
armv8: fsl-layerscape: Add NXP LS2088A SoC support
[u-boot] / arch / arm / cpu / armv8 / fsl-layerscape / fsl_lsch2_speed.c
index d0dc58d1814d7fc1d2fcbaa8cd72c349ffe8ec03..55005f042049b56c8b9c044717d56bb019d77bff 100644 (file)
@@ -60,7 +60,7 @@ void get_sys_info(struct sys_info *sys_info)
        sys_info->freq_ddrbus = sysclk;
 #endif
 
-#ifdef CONFIG_LS1012A
+#ifdef CONFIG_ARCH_LS1012A
        sys_info->freq_ddrbus *= (gur_in32(&gur->rcwsr[0]) >>
                        FSL_CHASSIS2_RCWSR0_SYS_PLL_RAT_SHIFT) &
                        FSL_CHASSIS2_RCWSR0_SYS_PLL_RAT_MASK;
@@ -91,7 +91,7 @@ void get_sys_info(struct sys_info *sys_info)
                        freq_c_pll[cplx_pll] / core_cplx_pll_div[c_pll_sel];
        }
 
-#ifdef CONFIG_LS1012A
+#ifdef CONFIG_ARCH_LS1012A
        sys_info->freq_systembus = sys_info->freq_ddrbus / 2;
        sys_info->freq_ddrbus *= 2;
 #endif
@@ -107,6 +107,12 @@ void get_sys_info(struct sys_info *sys_info)
        case 3:
                sys_info->freq_fman[0] = freq_c_pll[0] / 3;
                break;
+       case 4:
+               sys_info->freq_fman[0] = freq_c_pll[0] / 4;
+               break;
+       case 5:
+               sys_info->freq_fman[0] = sys_info->freq_systembus;
+               break;
        case 6:
                sys_info->freq_fman[0] = freq_c_pll[1] / 2;
                break;
@@ -124,8 +130,23 @@ void get_sys_info(struct sys_info *sys_info)
 #ifdef CONFIG_FSL_ESDHC
 #ifdef CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK
        rcw_tmp = in_be32(&gur->rcwsr[15]);
-       rcw_tmp = (rcw_tmp & HWA_CGA_M2_CLK_SEL) >> HWA_CGA_M2_CLK_SHIFT;
-       sys_info->freq_sdhc = freq_c_pll[1] / rcw_tmp;
+       switch ((rcw_tmp & HWA_CGA_M2_CLK_SEL) >> HWA_CGA_M2_CLK_SHIFT) {
+       case 1:
+               sys_info->freq_sdhc = freq_c_pll[1];
+               break;
+       case 2:
+               sys_info->freq_sdhc = freq_c_pll[1] / 2;
+               break;
+       case 3:
+               sys_info->freq_sdhc = freq_c_pll[1] / 3;
+               break;
+       case 6:
+               sys_info->freq_sdhc = freq_c_pll[0] / 2;
+               break;
+       default:
+               printf("Error: Unknown ESDHC clock select!\n");
+               break;
+       }
 #else
        sys_info->freq_sdhc = sys_info->freq_systembus;
 #endif