summaryrefslogtreecommitdiff
path: root/drivers/core/device.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2018-08-07 07:15:11 -0400
committerTom Rini <trini@konsulko.com>2018-08-07 07:15:11 -0400
commitcca7429ddd24d0cccc72f708a6f05c6ab9a75303 (patch)
tree2176a8a80050fe9839e2ef39e82ef6dc57ff68e8 /drivers/core/device.c
parentbb694d4e898b1368ba96e01481dc0a79c491e77c (diff)
parent3d7690aec1020aa579eee189ed07d5e6289e3617 (diff)
Merge branch 'agust@denx.de' of git://git.denx.de/u-boot-staging
Diffstat (limited to 'drivers/core/device.c')
-rw-r--r--drivers/core/device.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c
index d5f5fc31b03..207d566b71d 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;
@@ -304,6 +305,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;
@@ -383,6 +385,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;