struct device *dev = &pdev->dev;
        struct device_node *node = dev->of_node;
        struct platform_device *serdes_pdev;
+       bool already_configured = false;
        struct device_node *child_node;
        struct regmap *regmap;
        struct resource res;
        void __iomem *base;
        struct wiz *wiz;
+       int ret, val, i;
        u32 num_lanes;
-       int ret;
 
        wiz = devm_kzalloc(dev, sizeof(*wiz), GFP_KERNEL);
        if (!wiz)
                goto err_get_sync;
        }
 
-       ret = wiz_init(wiz);
-       if (ret) {
-               dev_err(dev, "WIZ initialization failed\n");
-               goto err_wiz_init;
+       for (i = 0; i < wiz->num_lanes; i++) {
+               regmap_field_read(wiz->p_enable[i], &val);
+               if (val & (P_ENABLE | P_ENABLE_FORCE)) {
+                       already_configured = true;
+                       break;
+               }
+       }
+
+       if (!already_configured) {
+               ret = wiz_init(wiz);
+               if (ret) {
+                       dev_err(dev, "WIZ initialization failed\n");
+                       goto err_wiz_init;
+               }
        }
 
        serdes_pdev = of_platform_device_create(child_node, NULL, dev);