]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - arch/powerpc/cpu/mpc85xx/fsl_corenet2_serdes.c
Merge branch 'rmobile' of git://git.denx.de/u-boot-sh
[karo-tx-uboot.git] / arch / powerpc / cpu / mpc85xx / fsl_corenet2_serdes.c
index d1fc76a13ed25c99e7272b916288cd04fe1c1a41..5cfae470697ea1877f65d5795a5bc0ee892676a1 100644 (file)
@@ -11,6 +11,7 @@
 #include <asm/processor.h>
 #include <asm/fsl_law.h>
 #include <asm/errno.h>
+#include <asm/fsl_errata.h>
 #include "fsl_corenet2_serdes.h"
 
 #ifdef CONFIG_SYS_FSL_SRDS_1
@@ -186,11 +187,6 @@ u64 serdes_init(u32 sd, u32 sd_addr, u32 sd_prctl_mask, u32 sd_prctl_shift)
 #endif
 
        cfg = in_be32(&gur->rcwsr[4]) & sd_prctl_mask;
-       /* Is serdes enabled at all? */
-       if (!cfg) {
-               printf("SERDES%d is not enabled\n", sd + 1);
-               return 0;
-       }
 
 /* Erratum A-007186
  * Freescale Scratch Pad Fuse Register n (SFP_FSPFR0)
@@ -208,7 +204,7 @@ u64 serdes_init(u32 sd, u32 sd_addr, u32 sd_prctl_mask, u32 sd_prctl_shift)
 
        sel = (sfp_spfr0 >> FUSE_VAL_SHIFT) & FUSE_VAL_MASK;
 
-       if (sel == 0x01 || sel == 0x02) {
+       if (has_erratum_a007186() && (sel == 0x01 || sel == 0x02)) {
                for (pll_num = 0; pll_num < SRDS_MAX_BANK; pll_num++) {
                        pll_status = in_be32(&srds_regs->bank[pll_num].pllcr0);
                        debug("A007186: pll_num=%x pllcr0=%x\n",