diff options
author | Patrick Delaunay <patrick.delaunay@st.com> | 2020-01-13 13:35:06 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2020-04-17 06:06:54 +0300 |
commit | 695e5fd5469ab052126c4cb30c4d26e6058de067 (patch) | |
tree | 85acc875b91122d3580f81cacda829b9c21e9907 /include/asm-generic/gpio.h | |
parent | 9360bb06f1db4597b7d08ea95b48a17025a97618 (diff) | |
download | u-boot-695e5fd5469ab052126c4cb30c4d26e6058de067.tar.xz |
gpio: update dir_flags management
Update the flag management in GPIO uclass: the desc->flags is always
combined with the requested flags and the GPIO descriptor is updated
for further call.
Add a function dm_gpio_get_dir_flags to get dynamically
the current dir_flags (configuration and value).
This patch prepare introduction of the dir flags support with new ops.
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/asm-generic/gpio.h')
-rw-r--r-- | include/asm-generic/gpio.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h index 5686df7cec..1329d02f87 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h @@ -592,8 +592,7 @@ int dm_gpio_set_value(const struct gpio_desc *desc, int value); /** * dm_gpio_set_dir() - Set the direction for a GPIO * - * This sets up the direction according tot the provided flags. It will do - * nothing unless the direction is actually specified. + * This sets up the direction according to the GPIO flags: desc->flags. * * @desc: GPIO description containing device, offset and flags, * previously returned by gpio_request_by_name() @@ -602,11 +601,10 @@ int dm_gpio_set_value(const struct gpio_desc *desc, int value); int dm_gpio_set_dir(struct gpio_desc *desc); /** - * dm_gpio_set_dir_flags() - Set direction using specific flags + * dm_gpio_set_dir_flags() - Set direction using description and added flags * - * This is like dm_gpio_set_dir() except that the flags value is provided - * instead of being used from desc->flags. This is needed because in many - * cases the GPIO description does not include direction information. + * This sets up the direction according to the provided flags and the GPIO + * description (desc->flags) which include direction information. * Note that desc->flags is updated by this function. * * @desc: GPIO description containing device, offset and flags, @@ -617,6 +615,18 @@ int dm_gpio_set_dir(struct gpio_desc *desc); int dm_gpio_set_dir_flags(struct gpio_desc *desc, ulong flags); /** + * dm_gpio_get_dir_flags() - Get direction flags + * + * read the current direction flags + * + * @desc: GPIO description containing device, offset and flags, + * previously returned by gpio_request_by_name() + * @flags: place to put the used flags + * @return 0 if OK, -ve on error, in which case desc->flags is not updated + */ +int dm_gpio_get_dir_flags(struct gpio_desc *desc, ulong *flags); + +/** * gpio_get_number() - Get the global GPIO number of a GPIO * * This should only be used for debugging or interest. It returns the number |