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 / include / linux / nsc_gpio.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.4 KB  |  41 lines

  1. /**
  2.    nsc_gpio.c
  3.  
  4.    National Semiconductor GPIO common access methods.
  5.  
  6.    struct nsc_gpio_ops abstracts the low-level access
  7.    operations for the GPIO units on 2 NSC chip families; the GEODE
  8.    integrated CPU, and the PC-8736[03456] integrated PC-peripheral
  9.    chips.
  10.  
  11.    The GPIO units on these chips have the same pin architecture, but
  12.    the access methods differ.  Thus, scx200_gpio and pc8736x_gpio
  13.    implement their own versions of these routines; and use the common
  14.    file-operations routines implemented in nsc_gpio module.
  15.  
  16.    Copyright (c) 2005 Jim Cromie <jim.cromie@gmail.com>
  17.  
  18.    NB: this work was tested on the Geode SC-1100 and PC-87366 chips.
  19.    NSC sold the GEODE line to AMD, and the PC-8736x line to Winbond.
  20. */
  21.  
  22. struct nsc_gpio_ops {
  23.     struct module*    owner;
  24.     u32    (*gpio_config)    (unsigned iminor, u32 mask, u32 bits);
  25.     void    (*gpio_dump)    (struct nsc_gpio_ops *amp, unsigned iminor);
  26.     int    (*gpio_get)    (unsigned iminor);
  27.     void    (*gpio_set)    (unsigned iminor, int state);
  28.     void    (*gpio_change)    (unsigned iminor);
  29.     int    (*gpio_current)    (unsigned iminor);
  30.     struct device*    dev;    /* for dev_dbg() support, set in init  */
  31. };
  32.  
  33. extern ssize_t nsc_gpio_write(struct file *file, const char __user *data,
  34.                   size_t len, loff_t *ppos);
  35.  
  36. extern ssize_t nsc_gpio_read(struct file *file, char __user *buf,
  37.                  size_t len, loff_t *ppos);
  38.  
  39. extern void nsc_gpio_dump(struct nsc_gpio_ops *amp, unsigned index);
  40.  
  41.