linux/drivers/staging/comedi/drivers/8255.h
<<
>>
Prefs
   1/*
   2 * module/8255.h
   3 * Header file for 8255
   4 *
   5 * COMEDI - Linux Control and Measurement Device Interface
   6 * Copyright (C) 1998 David A. Schleef <ds@schleef.org>
   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
  19#ifndef _8255_H
  20#define _8255_H
  21
  22#define I8255_SIZE              0x04
  23
  24#define I8255_DATA_A_REG        0x00
  25#define I8255_DATA_B_REG        0x01
  26#define I8255_DATA_C_REG        0x02
  27#define I8255_CTRL_REG          0x03
  28#define I8255_CTRL_C_LO_IO      BIT(0)
  29#define I8255_CTRL_B_IO         BIT(1)
  30#define I8255_CTRL_B_MODE       BIT(2)
  31#define I8255_CTRL_C_HI_IO      BIT(3)
  32#define I8255_CTRL_A_IO         BIT(4)
  33#define I8255_CTRL_A_MODE(x)    ((x) << 5)
  34#define I8255_CTRL_CW           BIT(7)
  35
  36struct comedi_device;
  37struct comedi_subdevice;
  38
  39int subdev_8255_init(struct comedi_device *dev, struct comedi_subdevice *s,
  40                     int (*io)(struct comedi_device *dev, int dir, int port,
  41                               int data, unsigned long regbase),
  42                     unsigned long regbase);
  43
  44int subdev_8255_mm_init(struct comedi_device *dev, struct comedi_subdevice *s,
  45                        int (*io)(struct comedi_device *dev, int dir, int port,
  46                                  int data, unsigned long regbase),
  47                        unsigned long regbase);
  48
  49unsigned long subdev_8255_regbase(struct comedi_subdevice *s);
  50
  51#endif
  52