
Enable power domain associated with the device when probe.
Signed-off-by: Peng Fan peng.fan@nxp.com Cc: Simon Glass sjg@chromium.org --- drivers/core/device.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/core/device.c b/drivers/core/device.c index e048e1a659..b6950d9dbb 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -26,6 +26,7 @@ #include <dm/util.h> #include <linux/err.h> #include <linux/list.h> +#include <power-domain.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -296,6 +297,7 @@ static void *alloc_priv(int size, uint flags)
int device_probe(struct udevice *dev) { + struct power_domain pd; const struct driver *drv; int size = 0; int ret; @@ -375,6 +377,11 @@ int device_probe(struct udevice *dev) if (dev->parent && device_get_uclass_id(dev) != UCLASS_PINCTRL) pinctrl_select_state(dev, "default");
+ if (dev->parent && device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) { + if (!power_domain_get(dev, &pd)) + power_domain_on(&pd); + } + ret = uclass_pre_probe_device(dev); if (ret) goto fail;