[PATCH] pinctrl: meson: fix bit manipulation of pin bias configuration

Neil Armstrong narmstrong at baylibre.com
Tue Dec 15 08:52:23 CET 2020


On 14/12/2020 21:48, Anton Arapov wrote:
> Hi Neil,
> 
> I tested it and it does fix the issue. I am able to boot from eMMC.
> 
> Thanks a lot!
> Anton
> 
> On Mon, Dec 14, 2020 at 7:48 PM Neil Armstrong <narmstrong at baylibre.com> wrote:
>>
>> This fixes the wrong usage of clrsetbits_le32(), badly setting the set argument.
>>
>> Fixes: c4c726c26b ("pinctrl: meson: add pinconf support")
>> Reported-by: Anton Arapov <arapov at gmail.com>
>> Reported-by: Otto Meier <gf435 at gmx.net>
>> Signed-off-by: Neil Armstrong <narmstrong at baylibre.com>
>> ---
>> Hi Anton, Otto,
>>
>> This should fix eMMC booting on Odroid-C2, could you have a quick try to confirm ?
>>
>> Thanks,
>> Neil
>>
>>  drivers/pinctrl/meson/pinctrl-meson.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
>> index d4539b02d8..5065b62436 100644
>> --- a/drivers/pinctrl/meson/pinctrl-meson.c
>> +++ b/drivers/pinctrl/meson/pinctrl-meson.c
>> @@ -216,13 +216,13 @@ static int meson_pinconf_bias_set(struct udevice *dev, unsigned int pin,
>>         }
>>
>>         /* othewise, enable the bias and select level */
>> -       clrsetbits_le32(priv->reg_pullen + reg, BIT(bit), 1);
>> +       clrsetbits_le32(priv->reg_pullen + reg, BIT(bit), BIT(bit));
>>         ret = meson_gpio_calc_reg_and_bit(dev, offset, REG_PULL, &reg, &bit);
>>         if (ret)
>>                 return ret;
>>
>>         clrsetbits_le32(priv->reg_pull + reg, BIT(bit),
>> -                       param == PIN_CONFIG_BIAS_PULL_UP);
>> +                       (param == PIN_CONFIG_BIAS_PULL_UP ? BIT(bit) : 0));
>>
>>         return 0;
>>  }
>> --
>> 2.25.1
>>

Thanks for testing !

Applied to u-boot-amlogic

Neil


More information about the U-Boot mailing list