From: Lukasz Majewski Date: Tue, 18 Dec 2018 11:30:50 +0000 (+0100) Subject: dm: pinctrl: Prevent (re-)configuring pins when already done before relocation X-Git-Tag: v2019.01-rc3~15^2~7 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a7f4b4b344396590845e6552c82829ef68ef9f89;p=oweals%2Fu-boot.git dm: pinctrl: Prevent (re-)configuring pins when already done before relocation This commit prevents from re-configuring pins if those were configured before relocation. Some pins - like UART or DDR must be setup before relocation (as they have 'u-boot,dm-pre-reloc' property set in DTS). Without this change, those pins are re-configured after relocation (pre_reloc_only = 0, so we do not "continue"). Such behavior may be a problem for DDR PAD configuration, as they might be already leveled/tuned with original setup). Signed-off-by: Lukasz Majewski --- diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index 6db0445067..29c910c55f 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -117,9 +117,9 @@ static int pinconfig_post_bind(struct udevice *dev) int ret; dev_for_each_subnode(node, dev) { - if (pre_reloc_only && - !ofnode_pre_reloc(node)) + if (pre_reloc_only ^ ofnode_pre_reloc(node)) continue; + /* * If this node has "compatible" property, this is not * a pin configuration node, but a normal device. skip.