On Thu, May 08, 2025 at 05:06:46PM +0530, Aswin Murugan wrote: > In the current implementation, the GPIO read operation considers > both the input and outbut bits (bits 0 and 1). It should only consider > the state of input bit, i.e bit 0. To address this, mask input bit > alone and read it. > > Signed-off-by: Aswin Murugan <[email protected]> > --- > drivers/gpio/msm_gpio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Sumit Garg <[email protected]> -Sumit > > diff --git a/drivers/gpio/msm_gpio.c b/drivers/gpio/msm_gpio.c > index 6783fc756f4..7de332c66ae 100644 > --- a/drivers/gpio/msm_gpio.c > +++ b/drivers/gpio/msm_gpio.c > @@ -202,7 +202,7 @@ static int msm_gpio_get_value(struct udevice *dev, > unsigned int gpio) > if (qcom_is_special_pin(priv->pin_data, gpio)) > return msm_gpio_get_value_special(priv, gpio); > > - return !!(readl(priv->base + GPIO_IN_OUT_REG(dev, gpio)) >> GPIO_IN); > + return !!(readl(priv->base + GPIO_IN_OUT_REG(dev, gpio)) & > BIT(GPIO_IN)); > } > > static int msm_gpio_get_function_special(struct msm_gpio_bank *priv, > -- > 2.34.1 >

