Message ID | 1457759944-8306-1-git-send-email-van.freenix@gmail.com |
---|---|
State | Changes Requested |
Delegated to: | Stefano Babic |
Headers | show |
Hi Peng, On 11 March 2016 at 22:19, Peng Fan <van.freenix@gmail.com> wrote: > Before set value for a gpio, need to set its direction to > output first. > > Signed-off-by: Peng Fan <van.freenix@gmail.com> > Cc: Przemyslaw Marczak <p.marczak@samsung.com> > Cc: Simon Glass <sjg@chromium.org> > --- > drivers/power/regulator/fixed.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/power/regulator/fixed.c b/drivers/power/regulator/fixed.c > index d053817..1b0d193 100644 > --- a/drivers/power/regulator/fixed.c > +++ b/drivers/power/regulator/fixed.c > @@ -95,6 +95,11 @@ static int fixed_regulator_set_enable(struct udevice *dev, bool enable) > if (!dev_pdata->gpio.dev) > return -ENOSYS; > > + ret = dm_gpio_set_dir_flags(&dev_pdata->gpio, GPIOD_IS_OUT); > + if (ret) { > + error("Can't set out direction : %s gpio\n", dev->name); > + return ret; > + } > ret = dm_gpio_set_value(&dev_pdata->gpio, enable); > if (ret) { > error("Can't set regulator : %s gpio to: %d\n", dev->name, > -- > 2.6.2 > This should already be done by the GPIOD_IS_OUT flag in fixed_regulator_ofdata_to_platdata(). BTW I notice that mxc_gpio.c does not have an xlate() method, so GPIO_ACTIVE_LOW will not be supported. Regards, Simon
Hi Simon, On Sat, Mar 12, 2016 at 07:51:51PM -0700, Simon Glass wrote: >Hi Peng, > >On 11 March 2016 at 22:19, Peng Fan <van.freenix@gmail.com> wrote: >> Before set value for a gpio, need to set its direction to >> output first. >> >> Signed-off-by: Peng Fan <van.freenix@gmail.com> >> Cc: Przemyslaw Marczak <p.marczak@samsung.com> >> Cc: Simon Glass <sjg@chromium.org> >> --- >> drivers/power/regulator/fixed.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/power/regulator/fixed.c b/drivers/power/regulator/fixed.c >> index d053817..1b0d193 100644 >> --- a/drivers/power/regulator/fixed.c >> +++ b/drivers/power/regulator/fixed.c >> @@ -95,6 +95,11 @@ static int fixed_regulator_set_enable(struct udevice *dev, bool enable) >> if (!dev_pdata->gpio.dev) >> return -ENOSYS; >> >> + ret = dm_gpio_set_dir_flags(&dev_pdata->gpio, GPIOD_IS_OUT); >> + if (ret) { >> + error("Can't set out direction : %s gpio\n", dev->name); >> + return ret; >> + } >> ret = dm_gpio_set_value(&dev_pdata->gpio, enable); >> if (ret) { >> error("Can't set regulator : %s gpio to: %d\n", dev->name, >> -- >> 2.6.2 >> > >This should already be done by the GPIOD_IS_OUT flag in >fixed_regulator_ofdata_to_platdata(). Oh. Thanks for correcting me. > >BTW I notice that mxc_gpio.c does not have an xlate() method, so >GPIO_ACTIVE_LOW will not be supported. Yeah. I got it and already have patch for it. After do some test, will send it out for the xlate in mxc_gpio.c Regards, Peng. > >Regards, >Simon
diff --git a/drivers/power/regulator/fixed.c b/drivers/power/regulator/fixed.c index d053817..1b0d193 100644 --- a/drivers/power/regulator/fixed.c +++ b/drivers/power/regulator/fixed.c @@ -95,6 +95,11 @@ static int fixed_regulator_set_enable(struct udevice *dev, bool enable) if (!dev_pdata->gpio.dev) return -ENOSYS; + ret = dm_gpio_set_dir_flags(&dev_pdata->gpio, GPIOD_IS_OUT); + if (ret) { + error("Can't set out direction : %s gpio\n", dev->name); + return ret; + } ret = dm_gpio_set_value(&dev_pdata->gpio, enable); if (ret) { error("Can't set regulator : %s gpio to: %d\n", dev->name,
Before set value for a gpio, need to set its direction to output first. Signed-off-by: Peng Fan <van.freenix@gmail.com> Cc: Przemyslaw Marczak <p.marczak@samsung.com> Cc: Simon Glass <sjg@chromium.org> --- drivers/power/regulator/fixed.c | 5 +++++ 1 file changed, 5 insertions(+)