This check did not work as intended. I2C is open drain, so this function
will likely always have presented the GPIO as input because
gpiod_get_direction doesn't know about open drain states. Remove this
check for now. We can add it again once we know how to get more precise
information about the GPIO.

Signed-off-by: Wolfram Sang <wsa+rene...@sang-engineering.com>
---
 drivers/i2c/i2c-core-base.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index 57538d72f2e5..4debf921ab5c 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -269,9 +269,7 @@ static void i2c_init_recovery(struct i2c_adapter *adap)
                bri->set_scl = set_scl_gpio_value;
                if (bri->sda_gpiod) {
                        bri->get_sda = get_sda_gpio_value;
-                       /* FIXME: add proper flag instead of '0' once available 
*/
-                       if (gpiod_get_direction(bri->sda_gpiod) == 0)
-                               bri->set_sda = set_sda_gpio_value;
+                       bri->set_sda = set_sda_gpio_value;
                }
                return;
        }
-- 
2.11.0

Reply via email to