summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLokesh Vutla <lokeshvutla@ti.com>2019-09-27 13:48:12 +0530
committerSimon Glass <sjg@chromium.org>2019-10-15 08:40:03 -0600
commitaf94ad418dc72957d3b7398d83bfc5a1efd415db (patch)
treec99f1c80c70def1aca9b42cac1c0a3acffd1bc47
parentd8efa2ce2abe293c97576f47ccac708e233553b6 (diff)
dm: core: Allow for not controlling the power-domain by DM framework
In some remoteproc cases, enabling the power domain of the core will start running the core. In such cases image should be loaded before enabling the power domain. But the current DM framework enables the power-domain by default during probe. This is causing the remotecore to start and crash as there is no valid image loaded. In order to avoid this introduce a DM flag that doesn't allow for enabling/disabling the power-domain by DM framework. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/core/device.c3
-rw-r--r--include/dm/device.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 28363ff00ba..95f26efdd3b 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -393,7 +393,8 @@ int device_probe(struct udevice *dev)
pinctrl_select_state(dev, "default");
if (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent &&
- device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) {
+ (device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) &&
+ !(drv->flags & DM_FLAG_DEFAULT_PD_CTRL_OFF)) {
ret = dev_power_domain_on(dev);
if (ret)
goto fail;
diff --git a/include/dm/device.h b/include/dm/device.h
index 44cc3d2bd01..d7ad9d6728b 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -61,6 +61,9 @@ struct driver_info;
*/
#define DM_FLAG_OS_PREPARE (1 << 10)
+/* DM does not enable/disable the power domains corresponding to this device */
+#define DM_FLAG_DEFAULT_PD_CTRL_OFF (1 << 11)
+
/*
* One or multiple of these flags are passed to device_remove() so that
* a selective device removal as specified by the remove-stage and the