diff --git a/drivers/gpio/axp_gpio.c b/drivers/gpio/axp_gpio.c index 61a227081d7..867ab1dba57 100644 --- a/drivers/gpio/axp_gpio.c +++ b/drivers/gpio/axp_gpio.c @@ -34,6 +34,15 @@ static int axp_gpio_get_value(struct udevice *dev, unsigned pin) const struct axp_gpio_desc *desc = dev_get_priv(dev); int ret; + ret = pmic_reg_read(dev->parent, desc->pins[pin]); + if (ret < 0) + return ret; + + if (ret == AXP_GPIO_CTRL_OUTPUT_LOW) + return 0; + if (ret == AXP_GPIO_CTRL_OUTPUT_HIGH) + return 1; + ret = pmic_reg_read(dev->parent, desc->status_reg); if (ret < 0) return ret;