Hi, On 11/29/22 11:22, Andy Shevchenko wrote: > On Mon, Nov 28, 2022 at 11:44 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: >> >> For the regular GPIO pins the value should be read from TPS68470_REG_GPDI, >> so that the actual value of the pin is read, rather then the value the pin > > than Ack. >> would output when put in output mode. > > I don't see it here and haven't checked the context, but the idea is > to check the direction and return either input (if pin is in input > mode) or [cached] output.If it's the case, the patch looks good to me. No the idea is to always actually use the input register when reading the pins, independent of the input/output mode. Instead of always reading the [cached] output register value. The input buffer will still work when the device is in output mode and if somehow an external force is pushing the pin low/high against the output value then the input buffer will correctly reflect this (assuming the output is current limited and thus the magic smoke stays inside the chip). Regards, Hans > >> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> >> --- >> drivers/gpio/gpio-tps68470.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpio/gpio-tps68470.c b/drivers/gpio/gpio-tps68470.c >> index aaddcabe9b35..778a72cf800c 100644 >> --- a/drivers/gpio/gpio-tps68470.c >> +++ b/drivers/gpio/gpio-tps68470.c >> @@ -30,7 +30,7 @@ static int tps68470_gpio_get(struct gpio_chip *gc, unsigned int offset) >> { >> struct tps68470_gpio_data *tps68470_gpio = gpiochip_get_data(gc); >> struct regmap *regmap = tps68470_gpio->tps68470_regmap; >> - unsigned int reg = TPS68470_REG_GPDO; >> + unsigned int reg = TPS68470_REG_GPDI; >> int val, ret; >> >> if (offset >= TPS68470_N_REGULAR_GPIO) { >> -- >> 2.38.1 >> > >