Message ID | 1394721458-23585-1-git-send-email-ben.dooks@codethink.co.uk |
---|---|
State | Accepted |
Headers | show |
On Thu, Mar 13, 2014 at 02:37:38PM +0000, Ben Dooks wrote: > When using device-tree and the i2c-gpio driver is called before the > GPIO node has been probed then it needs to correctly defer the probe > instead of returning a permanent error that the gpio numbers are not > valid. > > This fixes the following error: > /i2c@2: invalid GPIO pins, sda=-517/scl=-517 > > Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Applied to for-next, thanks!
diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c index d9f7e18..02d2d4a 100644 --- a/drivers/i2c/busses/i2c-gpio.c +++ b/drivers/i2c/busses/i2c-gpio.c @@ -94,6 +94,9 @@ static int of_i2c_gpio_get_pins(struct device_node *np, *sda_pin = of_get_gpio(np, 0); *scl_pin = of_get_gpio(np, 1); + if (*sda_pin == -EPROBE_DEFER || *scl_pin == -EPROBE_DEFER) + return -EPROBE_DEFER; + if (!gpio_is_valid(*sda_pin) || !gpio_is_valid(*scl_pin)) { pr_err("%s: invalid GPIO pins, sda=%d/scl=%d\n", np->full_name, *sda_pin, *scl_pin);
When using device-tree and the i2c-gpio driver is called before the GPIO node has been probed then it needs to correctly defer the probe instead of returning a permanent error that the gpio numbers are not valid. This fixes the following error: /i2c@2: invalid GPIO pins, sda=-517/scl=-517 Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> --- drivers/i2c/busses/i2c-gpio.c | 3 +++ 1 file changed, 3 insertions(+)