dm: gpio: Rename get_dir_flags() method to get_flags()
authorSimon Glass <sjg@chromium.org>
Fri, 5 Feb 2021 04:21:56 +0000 (21:21 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 3 Mar 2021 19:51:06 +0000 (14:51 -0500)
It is more useful to be able to read all the flags, not just the direction
ones. In fact this is what the STM32 driver does. Update the method name
to reflect this.

Tweak the docs a little and use 'flagsp' as the return argument, as is
common in driver model, to indicate it returns a value.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Pratyush Yadav <p.yadav@ti.com>
drivers/gpio/gpio-uclass.c
drivers/gpio/sandbox.c
drivers/gpio/stm32_gpio.c
drivers/pinctrl/pinctrl-stmfx.c
include/asm-generic/gpio.h

index d42e778..4d15162 100644 (file)
@@ -683,39 +683,39 @@ int dm_gpio_set_dir(struct gpio_desc *desc)
        return _dm_gpio_set_flags(desc, desc->flags);
 }
 
-int dm_gpio_get_dir_flags(struct gpio_desc *desc, ulong *flags)
+int dm_gpio_get_dir_flags(struct gpio_desc *desc, ulong *flagsp)
 {
        struct udevice *dev = desc->dev;
        int ret, value;
        struct dm_gpio_ops *ops = gpio_get_ops(dev);
-       ulong dir_flags;
+       ulong flags;
 
-       ret = check_reserved(desc, "get_dir_flags");
+       ret = check_reserved(desc, "get_flags");
        if (ret)
                return ret;
 
        /* GPIOD_ are directly provided by driver except GPIOD_ACTIVE_LOW */
-       if (ops->get_dir_flags) {
-               ret = ops->get_dir_flags(dev, desc->offset, &dir_flags);
+       if (ops->get_flags) {
+               ret = ops->get_flags(dev, desc->offset, &flags);
                if (ret)
                        return ret;
 
                /* GPIOD_ACTIVE_LOW is saved in desc->flags */
-               value = dir_flags & GPIOD_IS_OUT_ACTIVE ? 1 : 0;
+               value = flags & GPIOD_IS_OUT_ACTIVE ? 1 : 0;
                if (desc->flags & GPIOD_ACTIVE_LOW)
                        value = !value;
-               dir_flags &= ~(GPIOD_ACTIVE_LOW | GPIOD_IS_OUT_ACTIVE);
-               dir_flags |= (desc->flags & GPIOD_ACTIVE_LOW);
+               flags &= ~(GPIOD_ACTIVE_LOW | GPIOD_IS_OUT_ACTIVE);
+               flags |= (desc->flags & GPIOD_ACTIVE_LOW);
                if (value)
-                       dir_flags |= GPIOD_IS_OUT_ACTIVE;
+                       flags |= GPIOD_IS_OUT_ACTIVE;
        } else {
-               dir_flags = desc->flags;
+               flags = desc->flags;
                /* only GPIOD_IS_OUT_ACTIVE is provided by uclass */
-               dir_flags &= ~GPIOD_IS_OUT_ACTIVE;
+               flags &= ~GPIOD_IS_OUT_ACTIVE;
                if ((desc->flags & GPIOD_IS_OUT) && _gpio_get_value(desc))
-                       dir_flags |= GPIOD_IS_OUT_ACTIVE;
+                       flags |= GPIOD_IS_OUT_ACTIVE;
        }
-       *flags = dir_flags;
+       *flagsp = flags;
 
        return 0;
 }
@@ -1310,8 +1310,8 @@ static int gpio_post_bind(struct udevice *dev)
                        ops->xlate += gd->reloc_off;
                if (ops->set_flags)
                        ops->set_flags += gd->reloc_off;
-               if (ops->get_dir_flags)
-                       ops->get_dir_flags += gd->reloc_off;
+               if (ops->get_flags)
+                       ops->get_flags += gd->reloc_off;
 
                reloc_done++;
        }
index 05f1792..38dc34e 100644 (file)
@@ -199,11 +199,11 @@ static int sb_gpio_set_flags(struct udevice *dev, unsigned int offset,
        return 0;
 }
 
-static int sb_gpio_get_dir_flags(struct udevice *dev, unsigned int offset,
-                                ulong *flags)
+static int sb_gpio_get_flags(struct udevice *dev, unsigned int offset,
+                            ulong *flagsp)
 {
        debug("%s: offset:%u\n", __func__, offset);
-       *flags = *get_gpio_dir_flags(dev, offset);
+       *flagsp = *get_gpio_dir_flags(dev, offset);
 
        return 0;
 }
@@ -273,7 +273,7 @@ static const struct dm_gpio_ops gpio_sandbox_ops = {
        .get_function           = sb_gpio_get_function,
        .xlate                  = sb_gpio_xlate,
        .set_flags              = sb_gpio_set_flags,
-       .get_dir_flags          = sb_gpio_get_dir_flags,
+       .get_flags              = sb_gpio_get_flags,
 #if CONFIG_IS_ENABLED(ACPIGEN)
        .get_acpi               = sb_gpio_get_acpi,
 #endif
index 6d1bef6..c2d7046 100644 (file)
@@ -223,8 +223,8 @@ static int stm32_gpio_set_flags(struct udevice *dev, unsigned int offset,
        return 0;
 }
 
-static int stm32_gpio_get_dir_flags(struct udevice *dev, unsigned int offset,
-                                   ulong *flags)
+static int stm32_gpio_get_flags(struct udevice *dev, unsigned int offset,
+                               ulong *flagsp)
 {
        struct stm32_gpio_priv *priv = dev_get_priv(dev);
        struct stm32_gpio_regs *regs = priv->regs;
@@ -259,7 +259,7 @@ static int stm32_gpio_get_dir_flags(struct udevice *dev, unsigned int offset,
        default:
                break;
        }
-       *flags = dir_flags;
+       *flagsp = dir_flags;
 
        return 0;
 }
@@ -271,7 +271,7 @@ static const struct dm_gpio_ops gpio_stm32_ops = {
        .set_value              = stm32_gpio_set_value,
        .get_function           = stm32_gpio_get_function,
        .set_flags              = stm32_gpio_set_flags,
-       .get_dir_flags          = stm32_gpio_get_dir_flags,
+       .get_flags              = stm32_gpio_get_flags,
 };
 
 static int gpio_stm32_probe(struct udevice *dev)
index 6147e86..6ba56a1 100644 (file)
@@ -199,8 +199,8 @@ static int stmfx_gpio_set_flags(struct udevice *dev, unsigned int offset,
        return ret;
 }
 
-static int stmfx_gpio_get_dir_flags(struct udevice *dev, unsigned int offset,
-                                   ulong *flags)
+static int stmfx_gpio_get_flags(struct udevice *dev, unsigned int offset,
+                               ulong *flagsp)
 {
        ulong dir_flags = 0;
        int ret;
@@ -233,7 +233,7 @@ static int stmfx_gpio_get_dir_flags(struct udevice *dev, unsigned int offset,
                                dir_flags |= GPIOD_PULL_DOWN;
                }
        }
-       *flags = dir_flags;
+       *flagsp = dir_flags;
 
        return 0;
 }
@@ -267,7 +267,7 @@ static const struct dm_gpio_ops stmfx_gpio_ops = {
        .direction_input = stmfx_gpio_direction_input,
        .direction_output = stmfx_gpio_direction_output,
        .set_flags = stmfx_gpio_set_flags,
-       .get_dir_flags = stmfx_gpio_get_dir_flags,
+       .get_flags = stmfx_gpio_get_flags,
 };
 
 U_BOOT_DRIVER(stmfx_gpio) = {
index de16cab..153312d 100644 (file)
@@ -333,19 +333,20 @@ struct dm_gpio_ops {
        int (*set_flags)(struct udevice *dev, unsigned int offset, ulong flags);
 
        /**
-        * get_dir_flags() - Get GPIO dir flags
+        * get_flags() - Get GPIO flags
         *
-        * This function return the GPIO direction flags used.
+        * This function return the GPIO flags used. It should read this from
+        * the hardware directly.
         *
         * This method is optional.
         *
         * @dev:        GPIO device
         * @offset:     GPIO offset within that device
-        * @flags:      place to put the used direction flags by GPIO
+        * @flagsp:     place to put the current flags value
         * @return 0 if OK, -ve on error
         */
-       int (*get_dir_flags)(struct udevice *dev, unsigned int offset,
-                            ulong *flags);
+       int (*get_flags)(struct udevice *dev, unsigned int offset,
+                        ulong *flagsp);
 
 #if CONFIG_IS_ENABLED(ACPIGEN)
        /**