On 8/17/26 19:02, Sean Anderson wrote:
On newer SoCs, the drivestrength registers are included with the rest of
the GPIO registers. Linux has a rather complex system that uses a helper
function to fix up the registers for each SoC before registering the
pinctrl. Instead of that, just fix things up in probe.
This silences warnings like
meson-s4-pinctrl pinctrl@4000: drive-strength-microamp not supported
which I encountered on s4 and which I assume affects a1 as well.
Signed-off-by: Sean Anderson <[email protected]>
---
drivers/pinctrl/meson/pinctrl-meson-a1.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/pinctrl/meson/pinctrl-meson-a1.c
b/drivers/pinctrl/meson/pinctrl-meson-a1.c
index 7e9ac6390b1..e9a7522ce50 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-a1.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-a1.c
@@ -856,11 +856,21 @@ static const struct udevice_id meson_a1_pinctrl_match[] =
{
{ },
};
+static int meson_a1_pinctrl_probe(struct udevice *dev)
+{
+ struct meson_pinctrl *priv = dev_get_priv(dev);
+ int ret = meson_pinctrl_probe(dev);
+
+ if (!ret)
+ priv->reg_ds = priv->reg_gpio;
Please add a comment on why you're doing that.
Neil
+ return ret;
+}
+
U_BOOT_DRIVER(meson_a1_pinctrl) = {
.name = "meson-a1-pinctrl",
.id = UCLASS_PINCTRL,
.of_match = of_match_ptr(meson_a1_pinctrl_match),
- .probe = meson_pinctrl_probe,
+ .probe = meson_a1_pinctrl_probe,
.priv_auto = sizeof(struct meson_pinctrl),
.ops = &meson_axg_pinctrl_ops,
};
---
base-commit: d3e8597e46b635ec556a057bc42f0b0859654bdf
branch: s4_pinctrl