Skip to contentSkip to conversation

power: regulator: fixed: set gpio direction before set value

PATCH New Peng Fan 2 participants 3 messages Mar 12, 2016 – Mar 13, 2016

lore
Share & tools
lore

Peng Fan

author
#0 lore raw

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.

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 -0
index d053817..1b0d193 100644
@@ -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
#1 lore raw

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.

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
index d053817..1b0d193 100644
@@ -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

author
#2 lore raw

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.

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
index d053817..1b0d193 100644
@@ -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_OUT flag in fixed_regulator_ofdata_to_platdata().

Oh. Thanks for correcting me.

Quoted 3 lines

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.

Quoted 3 lines

Regards,
Simon