i2c: i2c-gpio: Correctly handle new {sda, scl}-gpios bindings

gpio_request_list_by_name() returns the number of gpios requested.
Notably it swallows the underlying -ENOENT when the "gpios" property
does not exist.

Update the i2c-gpio driver to check for ret == 0 before trying the new
sda-gpios/scl-gpios properties.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
This commit is contained in:
Chris Packham 2023-07-26 11:13:08 +12:00 committed by Stefan Roese
parent a36d59ba99
commit 414236b887

View file

@ -339,7 +339,7 @@ static int i2c_gpio_of_to_plat(struct udevice *dev)
/* "gpios" is deprecated and replaced by "sda-gpios" + "scl-gpios". */ /* "gpios" is deprecated and replaced by "sda-gpios" + "scl-gpios". */
ret = gpio_request_list_by_name(dev, "gpios", bus->gpios, ret = gpio_request_list_by_name(dev, "gpios", bus->gpios,
ARRAY_SIZE(bus->gpios), 0); ARRAY_SIZE(bus->gpios), 0);
if (ret == -ENOENT) { if (ret == 0) {
ret = gpio_request_by_name(dev, "sda-gpios", 0, ret = gpio_request_by_name(dev, "sda-gpios", 0,
&bus->gpios[PIN_SDA], 0); &bus->gpios[PIN_SDA], 0);
if (ret < 0) if (ret < 0)