summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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