Re: [PATCH] pinctrl: meson: support gpio toggle command
Yang Xiwen <[email protected]> Tue, 17 Jun 2025 00:58:25 +0800
| Newsgroups | io.groups.u-boot-amlogic,org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <SEYPR02MB5557210DAFC9A63FA1FC27C09670A@SEYPR02MB5557.apcprd02.prod.outlook.com> |
On 6/17/2025 12:40 AM, Neil Armstrong wrote: > On 16/06/2025 18:23, Yang Xiwen via B4 Relay wrote: >> From: Yang Xiwen <[email protected]> >> >> meson_gpio_get() always assumes gpio is configured to input mode. This >> is incorrect and breaks `gpio toggle` command: >> >> gpio: pin aobus-banks2 (gpio 2) value is 0 >> Warning: value of pin is still 1 >> >> Fix it by adding the logic to handle both input and output mode. >> >> Fixes: 2009a8d03fe5 ("pinctrl: meson: add GPIO support") >> Signed-off-by: Yang Xiwen <[email protected]> >> --- >> drivers/pinctrl/meson/pinctrl-meson.c | 21 ++++++++++++++++++++- >> 1 file changed, 20 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/pinctrl/meson/pinctrl-meson.c >> b/drivers/pinctrl/meson/pinctrl-meson.c >> index babf1bccc969..a1f4afd11f94 100644 >> --- a/drivers/pinctrl/meson/pinctrl-meson.c >> +++ b/drivers/pinctrl/meson/pinctrl-meson.c >> @@ -117,8 +117,27 @@ int meson_gpio_get(struct udevice *dev, unsigned >> int offset) >> struct meson_pinctrl *priv = dev_get_priv(dev->parent); >> unsigned int reg, bit; >> int ret; >> + enum gpio_func_t direction; >> + enum meson_reg_type reg_type; >> - ret = meson_gpio_calc_reg_and_bit(dev->parent, offset, REG_IN, >> ®, >> + direction = meson_gpio_get_direction(dev, offset); >> + >> + switch (direction) { >> + case GPIOF_INPUT: >> + reg_type = REG_IN; >> + break; >> + >> + case GPIOF_OUTPUT: >> + reg_type = REG_OUT; >> + break; >> + >> + default: >> + reg_type = REG_IN; >> + dev_warn(dev, "Failed to get current direction of Pin %u\n", >> offset); >> + break; > > Just return -EINVAL here Fixed in v2 > > Thanks, > Neil > >> + } >> + >> + ret = meson_gpio_calc_reg_and_bit(dev->parent, offset, reg_type, >> ®, >> &bit); >> if (ret) >> return ret; >> >> --- >> base-commit: c5afa1fef49f55146e78d6157470520391c40eca >> change-id: 20250617-meson_ppinctrl-5139ca06b828 >> >> Best regards, > -- Regards, Yang Xiwen