[U-Boot] [PATCH v2 1/5] dm: gpio: Add get_alternate_function ops
Patrice Chotard
patrice.chotard at st.com
Fri Aug 3 15:01:06 UTC 2018
From: Patrick Delaunay <patrick.delaunay at st.com>
When a pin is not configured as a GPIO, it could
have several alternate function.
To be able to identify the alternate function,
add ops get_alternate_function() to request the pin
alternate function index from the driver when pin is
not used as gpio.
Signed-off-by: Patrick Delaunay <patrick.delaunay at st.com>
Signed-off-by: Patrice Chotard <patrice.chotard at st.com>
---
Changes in v2:
- Rename get_function_number to get_alternate_function
in include/asm-generic/gpio.h
drivers/gpio/gpio-uclass.c | 6 ++++++
include/asm-generic/gpio.h | 13 +++++++++++++
2 files changed, 19 insertions(+)
diff --git a/drivers/gpio/gpio-uclass.c b/drivers/gpio/gpio-uclass.c
index da5e9ba6e524..705ca9016c8a 100644
--- a/drivers/gpio/gpio-uclass.c
+++ b/drivers/gpio/gpio-uclass.c
@@ -568,6 +568,12 @@ int gpio_get_status(struct udevice *dev, int offset, char *buf, int buffsize)
label ? label : "");
}
+ if (func == GPIOF_FUNC && ops->get_alternate_function) {
+ ret = ops->get_alternate_function(dev, offset);
+ if (ret >= 0)
+ snprintf(str + len, buffsize - len, ": %d", ret);
+ }
+
return 0;
}
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h
index d03602696f6d..e3a677ffd6c2 100644
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
@@ -266,6 +266,19 @@ struct dm_gpio_ops {
int (*get_function)(struct udevice *dev, unsigned offset);
/**
+ * get_alternate_function() Get the pins alternate function
+ *
+ * When a pin is not configured as GPIO, this pin can have several
+ * alternate function. get_alternate_function indicate the current
+ * pin's alternate function index
+ *
+ * @dev: Device to check
+ * @offset: GPIO offset within that device
+ * @return current alternate function index
+ */
+ int (*get_alternate_function)(struct udevice *dev, unsigned int offset);
+
+ /**
* xlate() - Translate phandle arguments into a GPIO description
*
* This function should set up the fields in desc according to the
--
1.9.1
More information about the U-Boot
mailing list