memory: mvebu-devbus: add a devbus, keep-config property
[firefly-linux-kernel-4.4.55.git] / drivers / memory / mvebu-devbus.c
index c8f3dad8a825e7c04dfe8c96d30a95c9a6e1098b..ff7138fd66d14378ff2adef5f6d1a4901be994b5 100644 (file)
@@ -310,16 +310,18 @@ static int mvebu_devbus_probe(struct platform_device *pdev)
        dev_dbg(devbus->dev, "Setting timing parameter, tick is %lu ps\n",
                devbus->tick_ps);
 
-       /* Read the Device Tree node */
-       err = devbus_get_timing_params(devbus, node, &r, &w);
-       if (err < 0)
-               return err;
+       if (!of_property_read_bool(node, "devbus,keep-config")) {
+               /* Read the Device Tree node */
+               err = devbus_get_timing_params(devbus, node, &r, &w);
+               if (err < 0)
+                       return err;
 
-       /* Set the new timing parameters */
-       if (of_device_is_compatible(node, "marvell,orion-devbus"))
-               devbus_orion_set_timing_params(devbus, node, &r, &w);
-       else
-               devbus_armada_set_timing_params(devbus, node, &r, &w);
+               /* Set the new timing parameters */
+               if (of_device_is_compatible(node, "marvell,orion-devbus"))
+                       devbus_orion_set_timing_params(devbus, node, &r, &w);
+               else
+                       devbus_armada_set_timing_params(devbus, node, &r, &w);
+       }
 
        /*
         * We need to create a child device explicitly from here to