[U-Boot] [PATCH] OMAP: Add function to get state of a GPIO output
V, Aneesh
aneesh at ti.com
Tue Sep 6 17:11:32 CEST 2011
Hi Sandeep, Joel,
On Sun, Sep 4, 2011 at 11:10 PM, <s-paulraj at ti.com> wrote:
> From: Joel A Fernandes <agnel.joel at gmail.com>
>
> Read directly from OMAP_GPIO_DATAOUT to get the output state of the GPIO pin
>
> Signed-off-by: Joel A Fernandes <agnel.joel at gmail.com>
> Signed-off-by: Jason Kridner <jkridner at beagleboard.org>
> Signed-off-by: Sandeep Paulraj <s-paulraj at ti.com>
> ---
> arch/arm/cpu/armv7/omap-common/gpio.c | 20 ++++++++++++++++++++
> arch/arm/include/asm/omap_gpio.h | 2 ++
> 2 files changed, 22 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/omap-common/gpio.c b/arch/arm/cpu/armv7/omap-common/gpio.c
> index 2fcaf5a..4749524 100644
> --- a/arch/arm/cpu/armv7/omap-common/gpio.c
> +++ b/arch/arm/cpu/armv7/omap-common/gpio.c
> @@ -151,6 +151,26 @@ int omap_get_gpio_datain(int gpio)
> & (1 << get_gpio_index(gpio))) != 0;
> }
>
> +int omap_get_gpio_dataout(int gpio)
This patch added a build warning like this:
gpio.c: In function 'omap_get_gpio_dataout':
gpio.c:161: warning: assignment discards qualifiers from pointer target type
The fix is this:
diff --git a/arch/arm/cpu/armv7/omap-common/gpio.c
b/arch/arm/cpu/armv7/omap-common/gpio.c
index 4749524..c4126fe 100644
--- a/arch/arm/cpu/armv7/omap-common/gpio.c
+++ b/arch/arm/cpu/armv7/omap-common/gpio.c
@@ -153,7 +153,7 @@ int omap_get_gpio_datain(int gpio)
int omap_get_gpio_dataout(int gpio)
{
- struct gpio_bank *bank;
+ const struct gpio_bank *bank;
void *reg;
if (check_gpio(gpio) < 0)
> +{
> + struct gpio_bank *bank;
> + void *reg;
> +
> + if (check_gpio(gpio) < 0)
> + return -EINVAL;
> + bank = get_gpio_bank(gpio);
> + reg = bank->base;
> + switch (bank->method) {
> + case METHOD_GPIO_24XX:
> + reg += OMAP_GPIO_DATAOUT;
> + break;
> + default:
> + return -EINVAL;
> + }
> + return (__raw_readl(reg)
> + & (1 << get_gpio_index(gpio))) != 0;
> +}
> +
> static void _reset_gpio(const struct gpio_bank *bank, int gpio)
> {
> _set_gpio_direction(bank, get_gpio_index(gpio), 1);
> diff --git a/arch/arm/include/asm/omap_gpio.h b/arch/arm/include/asm/omap_gpio.h
> index 3089e1c..8741572 100644
> --- a/arch/arm/include/asm/omap_gpio.h
> +++ b/arch/arm/include/asm/omap_gpio.h
> @@ -61,5 +61,7 @@ void omap_set_gpio_direction(int gpio, int is_input);
> void omap_set_gpio_dataout(int gpio, int enable);
> /* Get the value of a gpio input */
> int omap_get_gpio_datain(int gpio);
> +/* Get the value of a gpio output */
> +int omap_get_gpio_dataout(int gpio);
>
> #endif /* _GPIO_H_ */
> --
> 1.6.0.4
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
More information about the U-Boot
mailing list