sata: Move drivers into new drivers/ata directory
[oweals/u-boot.git] / arch / powerpc / cpu / mpc85xx / fsl_corenet2_serdes.c
index b2bce0d2d676eb1b94e55ddbaec44c73a8e5f1db..677b062044b5947c3c511c9ee41ceb571424bf16 100644 (file)
@@ -92,15 +92,27 @@ int is_serdes_configured(enum srds_prtcl device)
        int ret = 0;
 
 #ifdef CONFIG_SYS_FSL_SRDS_1
+       if (!serdes1_prtcl_map[NONE])
+               fsl_serdes_init();
+
        ret |= serdes1_prtcl_map[device];
 #endif
 #ifdef CONFIG_SYS_FSL_SRDS_2
+       if (!serdes2_prtcl_map[NONE])
+               fsl_serdes_init();
+
        ret |= serdes2_prtcl_map[device];
 #endif
 #ifdef CONFIG_SYS_FSL_SRDS_3
+       if (!serdes3_prtcl_map[NONE])
+               fsl_serdes_init();
+
        ret |= serdes3_prtcl_map[device];
 #endif
 #ifdef CONFIG_SYS_FSL_SRDS_4
+       if (!serdes4_prtcl_map[NONE])
+               fsl_serdes_init();
+
        ret |= serdes4_prtcl_map[device];
 #endif
 
@@ -184,6 +196,9 @@ void serdes_init(u32 sd, u32 sd_addr, u32 sd_prctl_mask, u32 sd_prctl_shift,
        u32 cfg;
        int lane;
 
+       if (serdes_prtcl_map[NONE])
+               return;
+
        memset(serdes_prtcl_map, 0, sizeof(u8) * SERDES_PRCTL_COUNT);
 #ifdef CONFIG_SYS_FSL_ERRATUM_A007186
        struct ccsr_sfp_regs  __iomem *sfp_regs =
@@ -325,6 +340,9 @@ void serdes_init(u32 sd, u32 sd_addr, u32 sd_prctl_mask, u32 sd_prctl_shift,
                else
                        serdes_prtcl_map[lane_prtcl] = 1;
        }
+
+       /* Set the first element to indicate serdes has been initialized */
+       serdes_prtcl_map[NONE] = 1;
 }
 
 void fsl_serdes_init(void)
@@ -373,7 +391,7 @@ const char *serdes_clock_to_string(u32 clock)
        case SRDS_PLLCR0_RFCK_SEL_161_13:
                return "161.1328123";
        default:
-#if defined(CONFIG_T4240QDS)
+#if defined(CONFIG_TARGET_T4240QDS) || defined(CONFIG_TARGET_T4160QDS)
                return "???";
 #else
                return "122.88";