All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dm: core: Switch order of pinctrl and power domain calls
@ 2022-01-07 15:38 Michal Simek
  2022-01-13 13:41 ` Simon Glass
  2022-01-13 18:00 ` Simon Glass
  0 siblings, 2 replies; 3+ messages in thread
From: Michal Simek @ 2022-01-07 15:38 UTC (permalink / raw)
  To: u-boot, git, Simon Glass

The commit 3ad307784847 ("dm: core: device: enable power domain in probe")
introduced enabling power domain when device is probed.
By checking this sequence in Linux kernel was found that power domain is
handled first followed by pinctrl setting.

This patch is switching this order to follow Linux kernel that power
domains are handled first follow by pinctrl setting.

The issue was found on Xilinx Kria SOM where firmware is blocking setting
up pin configuration/muxes without enabling power domain for the specific
IP first.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 drivers/core/device.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/core/device.c b/drivers/core/device.c
index efd07176e374..101ad8a22b37 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -518,6 +518,14 @@ int device_probe(struct udevice *dev)
 
 	dev_or_flags(dev, DM_FLAG_ACTIVATED);
 
+	if (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent &&
+	    (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;
+	}
+
 	/*
 	 * Process pinctrl for everything except the root device, and
 	 * continue regardless of the result of pinctrl. Don't process pinctrl
@@ -536,14 +544,6 @@ int device_probe(struct udevice *dev)
 	if (dev->parent && device_get_uclass_id(dev) != UCLASS_PINCTRL)
 		pinctrl_select_state(dev, "default");
 
-	if (CONFIG_IS_ENABLED(POWER_DOMAIN) && dev->parent &&
-	    (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;
-	}
-
 	if (CONFIG_IS_ENABLED(IOMMU) && dev->parent &&
 	    (device_get_uclass_id(dev) != UCLASS_IOMMU)) {
 		ret = dev_iommu_enable(dev);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] dm: core: Switch order of pinctrl and power domain calls
  2022-01-07 15:38 [PATCH] dm: core: Switch order of pinctrl and power domain calls Michal Simek
@ 2022-01-13 13:41 ` Simon Glass
  2022-01-13 18:00 ` Simon Glass
  1 sibling, 0 replies; 3+ messages in thread
From: Simon Glass @ 2022-01-13 13:41 UTC (permalink / raw)
  To: Michal Simek; +Cc: U-Boot Mailing List, git

On Fri, 7 Jan 2022 at 08:38, Michal Simek <michal.simek@xilinx.com> wrote:
>
> The commit 3ad307784847 ("dm: core: device: enable power domain in probe")
> introduced enabling power domain when device is probed.
> By checking this sequence in Linux kernel was found that power domain is
> handled first followed by pinctrl setting.
>
> This patch is switching this order to follow Linux kernel that power
> domains are handled first follow by pinctrl setting.
>
> The issue was found on Xilinx Kria SOM where firmware is blocking setting
> up pin configuration/muxes without enabling power domain for the specific
> IP first.
>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
>
>  drivers/core/device.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] dm: core: Switch order of pinctrl and power domain calls
  2022-01-07 15:38 [PATCH] dm: core: Switch order of pinctrl and power domain calls Michal Simek
  2022-01-13 13:41 ` Simon Glass
@ 2022-01-13 18:00 ` Simon Glass
  1 sibling, 0 replies; 3+ messages in thread
From: Simon Glass @ 2022-01-13 18:00 UTC (permalink / raw)
  To: Simon Glass; +Cc: U-Boot Mailing List, git, Michal Simek

On Fri, 7 Jan 2022 at 08:38, Michal Simek <michal.simek@xilinx.com> wrote:
>
> The commit 3ad307784847 ("dm: core: device: enable power domain in probe")
> introduced enabling power domain when device is probed.
> By checking this sequence in Linux kernel was found that power domain is
> handled first followed by pinctrl setting.
>
> This patch is switching this order to follow Linux kernel that power
> domains are handled first follow by pinctrl setting.
>
> The issue was found on Xilinx Kria SOM where firmware is blocking setting
> up pin configuration/muxes without enabling power domain for the specific
> IP first.
>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
>
>  drivers/core/device.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot-dm, thanks!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-01-13 18:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-07 15:38 [PATCH] dm: core: Switch order of pinctrl and power domain calls Michal Simek
2022-01-13 13:41 ` Simon Glass
2022-01-13 18:00 ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.