diff mbox series

[U-Boot] pinctrl: do not set_state for device without valid ofnode

Message ID 1524045244-1576-1-git-send-email-kever.yang@rock-chips.com
State Accepted
Commit f717b4c8e7fc871573755a05be96c8ef857eabce
Delegated to: Simon Glass
Headers show
Series [U-Boot] pinctrl: do not set_state for device without valid ofnode | expand

Commit Message

Kever Yang April 18, 2018, 9:54 a.m. UTC
Not all the udevice have a available DT node, eg. rksdmmc@ff500000.blk
which add by mmc_bind(), these device do not have/need set pinctrl
state.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
---

 drivers/pinctrl/pinctrl-uclass.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Simon Glass April 22, 2018, 8:10 p.m. UTC | #1
On 18 April 2018 at 03:54, Kever Yang <kever.yang@rock-chips.com> wrote:
> Not all the udevice have a available DT node, eg. rksdmmc@ff500000.blk
> which add by mmc_bind(), these device do not have/need set pinctrl
> state.
>
> Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
> ---
>
>  drivers/pinctrl/pinctrl-uclass.c | 6 ++++++
>  1 file changed, 6 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>
Simon Glass May 21, 2018, 4:58 p.m. UTC | #2
On 22 April 2018 at 13:10, Simon Glass <sjg@chromium.org> wrote:
> On 18 April 2018 at 03:54, Kever Yang <kever.yang@rock-chips.com> wrote:
>> Not all the udevice have a available DT node, eg. rksdmmc@ff500000.blk
>> which add by mmc_bind(), these device do not have/need set pinctrl
>> state.
>>
>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
>> ---
>>
>>  drivers/pinctrl/pinctrl-uclass.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot-dm and now in mainline.
diff mbox series

Patch

diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
index 6a73a06..a19c374 100644
--- a/drivers/pinctrl/pinctrl-uclass.c
+++ b/drivers/pinctrl/pinctrl-uclass.c
@@ -209,6 +209,12 @@  static int pinctrl_select_state_simple(struct udevice *dev)
 int pinctrl_select_state(struct udevice *dev, const char *statename)
 {
 	/*
+	 * Some device which is logical like mmc.blk, do not have
+	 * a valid ofnode.
+	 */
+	if (!ofnode_valid(dev->node))
+		return 0;
+	/*
 	 * Try full-implemented pinctrl first.
 	 * If it fails or is not implemented, try simple one.
 	 */