diff --git a/arch/arm/dts/ipq807x-soc.dtsi b/arch/arm/dts/ipq807x-soc.dtsi index f3ade0488e..9fbc85e36a 100644 --- a/arch/arm/dts/ipq807x-soc.dtsi +++ b/arch/arm/dts/ipq807x-soc.dtsi @@ -259,6 +259,7 @@ gpio = <42>; func = <2>; pull = ; + drvstr = ; oe = ; }; @@ -266,6 +267,7 @@ gpio = <43>; func = <2>; pull = ; + drvstr = ; oe = ; }; diff --git a/drivers/i2c/qup_i2c.c b/drivers/i2c/qup_i2c.c index 416e6900e3..71c155e9cb 100644 --- a/drivers/i2c/qup_i2c.c +++ b/drivers/i2c/qup_i2c.c @@ -111,11 +111,13 @@ void config_i2c_mode(void) */ void config_i2c_gpio(void) { - int gpio_node; + int i2c_node, gpio_node; - gpio_node = fdt_path_offset(gd->fdt_blob, "/i2c0/i2c_gpio"); - if (gpio_node >= 0) { - qca_gpio_init(gpio_node); + i2c_node = fdt_path_offset(gd->fdt_blob, "i2c0"); + if (i2c_node >= 0) { + gpio_node = fdt_subnode_offset(gd->fdt_blob, i2c_node, "i2c_gpio"); + if (gpio_node >= 0) + qca_gpio_init(gpio_node); } }