From a1f99e46665855ade49935a813073860c26d2728 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Fri, 5 Jul 2019 09:23:16 -0700 Subject: dm: core: Call clk_set_defaults() during probe() only for a valid ofnode Without a valid ofnode, it's meaningless to call clk_set_defaults() to process various properties. Signed-off-by: Bin Meng Reviewed-by: Simon Glass --- drivers/core/device.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'drivers/core') diff --git a/drivers/core/device.c b/drivers/core/device.c index 0d15e5062b..37d89bcd1d 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -409,10 +409,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); -- cgit v1.2.3 From 163512122e9833a58d430230a9a3df44eb7f8058 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Fri, 5 Jul 2019 09:23:17 -0700 Subject: dm: core: Set correct "status" value for a node Per device tree spec, "status" property can have a value of "okay", or "disabled", but not "disable". Signed-off-by: Bin Meng Reviewed-by: Simon Glass --- drivers/core/ofnode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/core') 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"); } -- cgit v1.2.3 From 44e02e39a91cd91aae5a28d90259d3a6996010bf Mon Sep 17 00:00:00 2001 From: Anatolij Gustschin Date: Sun, 14 Jul 2019 21:11:01 +0200 Subject: dm: device: make power domain calls optional Reduce power domain calls when CONFIG_POWER_DOMAIN is disabled. With gcc v8.2, this change saves 104 bytes. Signed-off-by: Anatolij Gustschin Reviewed-by: Peng Fan --- drivers/core/device.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drivers/core') diff --git a/drivers/core/device.c b/drivers/core/device.c index 37d89bcd1d..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); } -- cgit v1.2.3