home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / mach-pxa / include / mach / gpio.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.7 KB  |  66 lines

  1. /*
  2.  * arch/arm/mach-pxa/include/mach/gpio.h
  3.  *
  4.  * PXA GPIO wrappers for arch-neutral GPIO calls
  5.  *
  6.  * Written by Philipp Zabel <philipp.zabel@gmail.com>
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; if not, write to the Free Software
  20.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  21.  *
  22.  */
  23.  
  24. #ifndef __ASM_ARCH_PXA_GPIO_H
  25. #define __ASM_ARCH_PXA_GPIO_H
  26.  
  27. #include <mach/pxa-regs.h>
  28. #include <asm/irq.h>
  29. #include <mach/hardware.h>
  30.  
  31. #include <asm-generic/gpio.h>
  32.  
  33.  
  34. /* NOTE: some PXAs have fewer on-chip GPIOs (like PXA255, with 85).
  35.  * Those cases currently cause holes in the GPIO number space.
  36.  */
  37. #define NR_BUILTIN_GPIO 128
  38.  
  39. static inline int gpio_get_value(unsigned gpio)
  40. {
  41.     if (__builtin_constant_p(gpio) && (gpio < NR_BUILTIN_GPIO))
  42.         return GPLR(gpio) & GPIO_bit(gpio);
  43.     else
  44.         return __gpio_get_value(gpio);
  45. }
  46.  
  47. static inline void gpio_set_value(unsigned gpio, int value)
  48. {
  49.     if (__builtin_constant_p(gpio) && (gpio < NR_BUILTIN_GPIO)) {
  50.         if (value)
  51.             GPSR(gpio) = GPIO_bit(gpio);
  52.         else
  53.             GPCR(gpio) = GPIO_bit(gpio);
  54.     } else {
  55.         __gpio_set_value(gpio, value);
  56.     }
  57. }
  58.  
  59. #define gpio_cansleep __gpio_cansleep
  60.  
  61. #define gpio_to_irq(gpio)    IRQ_GPIO(gpio)
  62. #define irq_to_gpio(irq)    IRQ_TO_GPIO(irq)
  63.  
  64.  
  65. #endif
  66.