aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-07-24 16:24:50 -0400
committerTom Rini <trini@konsulko.com>2019-07-24 16:24:50 -0400
commitf9b65c76b4828efbf8093c6b02bee5af0045b98b (patch)
tree1429cb8e3cdfea42b63778ddf06ad0b33fb7bcf0 /drivers
parenta9aa4c5700c68c070d63a391b51ea8d341b6e8a6 (diff)
parent44e02e39a91cd91aae5a28d90259d3a6996010bf (diff)
Merge tag 'dm-pull-24jul19-take3' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm
Minor driver-model fixes and tweaks A few device-tree fixes Binman support for extracting files from an image
Diffstat (limited to 'drivers')
-rw-r--r--drivers/clk/clk-uclass.c2
-rw-r--r--drivers/core/device.c17
-rw-r--r--drivers/core/ofnode.c2
-rw-r--r--drivers/timer/timer-uclass.c4
4 files changed, 19 insertions, 6 deletions
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index 79b3b0494c..06a8258d5f 100644
--- a/drivers/clk/clk-uclass.c
+++ b/drivers/clk/clk-uclass.c
@@ -51,6 +51,8 @@ static int clk_of_xlate_default(struct clk *clk,
else
clk->id = 0;
+ clk->data = 0;
+
return 0;
}
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 0d15e5062b..474c1642ee 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -388,7 +388,8 @@ 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 (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent &&
+ device_get_uclass_id(dev) != UCLASS_POWER_DOMAIN) {
if (!power_domain_get(dev, &pd))
power_domain_on(&pd);
}
@@ -409,10 +410,16 @@ int device_probe(struct udevice *dev)
goto fail;
}
- /* Process 'assigned-{clocks/clock-parents/clock-rates}' properties */
- ret = clk_set_defaults(dev);
- if (ret)
- goto fail;
+ /* Only handle devices that have a valid ofnode */
+ if (dev_of_valid(dev)) {
+ /*
+ * Process 'assigned-{clocks/clock-parents/clock-rates}'
+ * properties
+ */
+ ret = clk_set_defaults(dev);
+ if (ret)
+ goto fail;
+ }
if (drv->probe) {
ret = drv->probe(dev);
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index 179a6447dc..2ac73af934 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -884,5 +884,5 @@ int ofnode_set_enabled(ofnode node, bool value)
if (value)
return ofnode_write_string(node, "status", "okay");
else
- return ofnode_write_string(node, "status", "disable");
+ return ofnode_write_string(node, "status", "disabled");
}
diff --git a/drivers/timer/timer-uclass.c b/drivers/timer/timer-uclass.c
index 12ee6eb804..97a4c74851 100644
--- a/drivers/timer/timer-uclass.c
+++ b/drivers/timer/timer-uclass.c
@@ -48,6 +48,10 @@ static int timer_pre_probe(struct udevice *dev)
int err;
ulong ret;
+ /* It is possible that a timer device has a null ofnode */
+ if (!dev_of_valid(dev))
+ return 0;
+
err = clk_get_by_index(dev, 0, &timer_clk);
if (!err) {
ret = clk_get_rate(&timer_clk);