power: regulator: fixed: set gpio direction before set value
PATCH 1/1 power: regulator: fixed: set gpio direction before set value
Before set value for a gpio, need to set its direction to output first.
--- drivers/power/regulator/fixed.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/power/regulator/fixed.c +5 -0
@@ -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,
Signature · 1 line
2.6.2
PATCH 1/1 power: regulator: fixed: set gpio direction before set value
Hi Peng,
Quoted 27 lines · Peng Fan
Before set value for a gpio, need to set its direction to output first.
Signed-off-by Peng Fan <[email protected]>Cc Przemyslaw Marczak <[email protected]>Cc Simon Glass <[email protected]>--- drivers/power/regulator/fixed.c | 5 +++++ 1 file changed, 5 insertions(+)drivers/power/regulator/fixed.c +5
-1@@ -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, --
Quoted 2 lines
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
PATCH 1/1 power: regulator: fixed: set gpio direction before set value
Hi Simon,
Quoted 21 lines · Simon Glass
Hi Peng,
Quoted 18 lines · Peng Fan
Before set value for a gpio, need to set its direction to output first.
Signed-off-by Peng Fan <[email protected]>Cc Przemyslaw Marczak <[email protected]>Cc Simon Glass <[email protected]>--- drivers/power/regulator/fixed.c | 5 +++++ 1 file changed, 5 insertions(+)drivers/power/regulator/fixed.c +0
-0@@ -95,6 +95,11 @@ static int fixed_regulator_set_enable(struct udevice *dev, bool enable)if (!dev_pdata->gpio.dev)return -ENOSYS ;
Quoted 14 lines
Quoted 11 lines
drivers/power/regulator/fixed.c +5
-1+ 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_OUTflag infixed_regulator_ofdata_to_platdata().
Oh. Thanks for correcting me.
Quoted 3 lines
BTW I notice that
mxc_gpio.cdoes not have anxlate()method, soGPIO_ACTIVE_LOWwill 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.
Quoted 3 lines
Regards,
Simon