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 #include "../comedidev.h" 23 24 #define I8255_SIZE 0x04 25 26 #define I8255_DATA_A_REG 0x00 27 #define I8255_DATA_B_REG 0x01 28 #define I8255_DATA_C_REG 0x02 29 #define I8255_CTRL_REG 0x03 30 #define I8255_CTRL_C_LO_IO (1 << 0) 31 #define I8255_CTRL_B_IO (1 << 1) 32 #define I8255_CTRL_B_MODE (1 << 2) 33 #define I8255_CTRL_C_HI_IO (1 << 3) 34 #define I8255_CTRL_A_IO (1 << 4) 35 #define I8255_CTRL_A_MODE(x) ((x) << 5) 36 #define I8255_CTRL_CW (1 << 7) 37 38 int subdev_8255_init(struct comedi_device *, struct comedi_subdevice *, 39 int (*io)(struct comedi_device *, 40 int, int, int, unsigned long), 41 unsigned long regbase); 42 43 int subdev_8255_mm_init(struct comedi_device *, struct comedi_subdevice *, 44 int (*io)(struct comedi_device *, 45 int, int, int, unsigned long), 46 unsigned long regbase); 47 48 #endif 49