mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
arm64: a37xx: pinctrl: probe after binding
Currently, pinctrl drivers are getting probed during post-bind, however that is being reverted, and on A37XX pinctrl driver is the one that registers the GPIO driver during the probe. So, if the pinctrl driver doesn't get probed GPIO-s won't get registered and thus they cannot be used. This is a problem on the Methode eDPU as it just uses SB pins as GPIO-s and without them being registered networking won't work as it only has one SFP slot and the TX disable GPIO is on the SB controller. So, lets just add a flag only to A37XX driver to probe after binding in order for the GPIO driver to always get registered. Signed-off-by: Robert Marko <robert.marko@sartura.hr> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
3cbaa4e1ef
commit
1de76a4535
1 changed files with 14 additions and 0 deletions
|
@ -745,6 +745,19 @@ static int armada_37xx_pinctrl_probe(struct udevice *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int armada_37xx_pinctrl_bind(struct udevice *dev)
|
||||
{
|
||||
/*
|
||||
* Make sure that the pinctrl driver gets probed after binding
|
||||
* as on A37XX the pinctrl driver is the one that is also
|
||||
* registering the GPIO one during probe, so if its not probed
|
||||
* GPIO-s are not registered as well.
|
||||
*/
|
||||
dev_or_flags(dev, DM_FLAG_PROBE_AFTER_BIND);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct udevice_id armada_37xx_pinctrl_of_match[] = {
|
||||
{
|
||||
.compatible = "marvell,armada3710-sb-pinctrl",
|
||||
|
@ -762,6 +775,7 @@ U_BOOT_DRIVER(armada_37xx_pinctrl) = {
|
|||
.id = UCLASS_PINCTRL,
|
||||
.of_match = of_match_ptr(armada_37xx_pinctrl_of_match),
|
||||
.probe = armada_37xx_pinctrl_probe,
|
||||
.bind = armada_37xx_pinctrl_bind,
|
||||
.priv_auto = sizeof(struct armada_37xx_pinctrl),
|
||||
.ops = &armada_37xx_pinctrl_ops,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue