Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 47955
b: refs/heads/master
c: 3c729f1
h: refs/heads/master
i:
  47953: 83394eb
  47951: 4eaf522
v: v3
  • Loading branch information
David Brownell authored and Linus Torvalds committed Feb 12, 2007
1 parent ccd1148 commit 3ea21ed
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4c20386c8d0719b42503efe65abe47ad3fb3d711
refs/heads/master: 3c729f1ecd23b86a2d6b211d646f57f9da8dfeb1
66 changes: 66 additions & 0 deletions trunk/include/asm-arm/arch-omap/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,70 @@ extern void omap_set_gpio_direction(int gpio, int is_input);
extern void omap_set_gpio_dataout(int gpio, int enable);
extern int omap_get_gpio_datain(int gpio);

/*-------------------------------------------------------------------------*/

/* wrappers for "new style" GPIO calls. the old OMAP-specfic ones should
* eventually be removed (along with this errno.h inclusion), and maybe
* gpios should put MPUIOs last too.
*/

#include <asm/errno.h>

static inline int gpio_request(unsigned gpio, const char *label)
{
return omap_request_gpio(gpio);
}

static inline void gpio_free(unsigned gpio)
{
omap_free_gpio(gpio);
}

static inline int __gpio_set_direction(unsigned gpio, int is_input)
{
if (cpu_class_is_omap2()) {
if (gpio > OMAP_MAX_GPIO_LINES)
return -EINVAL;
} else {
if (gpio > (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */))
return -EINVAL;
}
omap_set_gpio_direction(gpio, is_input);
return 0;
}

static inline int gpio_direction_input(unsigned gpio)
{
return __gpio_set_direction(gpio, 1);
}

static inline int gpio_direction_output(unsigned gpio)
{
return __gpio_set_direction(gpio, 0);
}

static inline int gpio_get_value(unsigned gpio)
{
return omap_get_gpio_datain(gpio);
}

static inline void gpio_set_value(unsigned gpio, int value)
{
omap_set_gpio_dataout(gpio, value);
}

#include <asm-generic/gpio.h> /* cansleep wrappers */

static inline int gpio_to_irq(unsigned gpio)
{
return OMAP_GPIO_IRQ(gpio);
}

static inline int irq_to_gpio(unsigned irq)
{
if (cpu_class_is_omap1() && (irq < (IH_MPUIO_BASE + 16)))
return (irq - IH_MPUIO_BASE) + OMAP_MAX_GPIO_LINES;
return irq - IH_GPIO_BASE;
}

#endif

0 comments on commit 3ea21ed

Please sign in to comment.