return -EINVAL;
 
        if (pdata->operating_mode == FSL_USB2_MPH_HOST) {
-               unsigned int chip, rev, svr;
-
-               svr = mfspr(SPRN_SVR);
-               chip = svr >> 16;
-               rev = (svr >> 4) & 0xf;
 
                /* Deal with USB Erratum #14 on MPC834x Rev 1.0 & 1.1 chips */
-               if ((rev == 1) && (chip >= 0x8050) && (chip <= 0x8055))
+               if (pdata->has_fsl_erratum_14 == 1)
                        ehci->has_fsl_port_bug = 1;
 
                if (pdata->port_enables & FSL_USB2_PORT0_ENABLED)
 
        pdata->has_fsl_erratum_a005697 =
                of_property_read_bool(np, "fsl,usb_erratum-a005697");
 
+       if (of_get_property(np, "fsl,usb_erratum_14", NULL))
+               pdata->has_fsl_erratum_14 = 1;
+       else
+               pdata->has_fsl_erratum_14 = 0;
+
+
        /*
         * Determine whether phy_clk_valid needs to be checked
         * by reading property in device tree
 
 
        unsigned        suspended:1;
        unsigned        already_suspended:1;
-       unsigned        has_fsl_erratum_a007792:1;
-       unsigned        has_fsl_erratum_a005275:1;
+       unsigned        has_fsl_erratum_a007792:1;
+       unsigned        has_fsl_erratum_14:1;
+       unsigned        has_fsl_erratum_a005275:1;
        unsigned        has_fsl_erratum_a005697:1;
-       unsigned        check_phy_clk_valid:1;
+       unsigned        check_phy_clk_valid:1;
 
        /* register save area for suspend/resume */
        u32             pm_command;