Message ID | 1430017538.18893.1.camel@ingics.com |
---|---|
State | Accepted |
Delegated to: | Simon Glass |
Headers | show |
On 25 April 2015 at 21:05, Axel Lin <axel.lin@ingics.com> wrote: > dm_gpio_set_dir_flags() will also set gpio output value when switching to > gpio output. So it's not necessary to call dm_gpio_set_value() after > dm_gpio_set_dir_flags() call. > > Signed-off-by: Axel Lin <axel.lin@ingics.com> > --- > drivers/i2c/i2c-gpio.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) Acked-by: Simon Glass <sjg@chromium.org>
On 27 April 2015 at 21:20, Simon Glass <sjg@chromium.org> wrote: > On 25 April 2015 at 21:05, Axel Lin <axel.lin@ingics.com> wrote: >> dm_gpio_set_dir_flags() will also set gpio output value when switching to >> gpio output. So it's not necessary to call dm_gpio_set_value() after >> dm_gpio_set_dir_flags() call. >> >> Signed-off-by: Axel Lin <axel.lin@ingics.com> >> --- >> drivers/i2c/i2c-gpio.c | 13 +++++++------ >> 1 file changed, 7 insertions(+), 6 deletions(-) > > Acked-by: Simon Glass <sjg@chromium.org> Applied to u-boot-dm, thanks!
diff --git a/drivers/i2c/i2c-gpio.c b/drivers/i2c/i2c-gpio.c index ed899d4..a8b83c5 100644 --- a/drivers/i2c/i2c-gpio.c +++ b/drivers/i2c/i2c-gpio.c @@ -41,18 +41,19 @@ static int i2c_gpio_sda_get(struct gpio_desc *sda) static void i2c_gpio_sda_set(struct gpio_desc *sda, int bit) { - if (bit) { + if (bit) dm_gpio_set_dir_flags(sda, GPIOD_IS_IN); - } else { + else dm_gpio_set_dir_flags(sda, GPIOD_IS_OUT); - dm_gpio_set_value(sda, 0); - } } static void i2c_gpio_scl_set(struct gpio_desc *scl, int bit) { - dm_gpio_set_dir_flags(scl, GPIOD_IS_OUT); - dm_gpio_set_value(scl, bit); + ulong flags = GPIOD_IS_OUT; + + if (bit) + flags |= GPIOD_IS_OUT_ACTIVE; + dm_gpio_set_dir_flags(scl, flags); } static void i2c_gpio_write_bit(struct gpio_desc *scl, struct gpio_desc *sda,
dm_gpio_set_dir_flags() will also set gpio output value when switching to gpio output. So it's not necessary to call dm_gpio_set_value() after dm_gpio_set_dir_flags() call. Signed-off-by: Axel Lin <axel.lin@ingics.com> --- drivers/i2c/i2c-gpio.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)