comedi_8255.h (1197B)
1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * comedi_8255.h 4 * Generic 8255 digital I/O subdevice support 5 * 6 * COMEDI - Linux Control and Measurement Device Interface 7 * Copyright (C) 1998 David A. Schleef <ds@schleef.org> 8 */ 9 10#ifndef _COMEDI_8255_H 11#define _COMEDI_8255_H 12 13#define I8255_SIZE 0x04 14 15#define I8255_DATA_A_REG 0x00 16#define I8255_DATA_B_REG 0x01 17#define I8255_DATA_C_REG 0x02 18#define I8255_CTRL_REG 0x03 19#define I8255_CTRL_C_LO_IO BIT(0) 20#define I8255_CTRL_B_IO BIT(1) 21#define I8255_CTRL_B_MODE BIT(2) 22#define I8255_CTRL_C_HI_IO BIT(3) 23#define I8255_CTRL_A_IO BIT(4) 24#define I8255_CTRL_A_MODE(x) ((x) << 5) 25#define I8255_CTRL_CW BIT(7) 26 27struct comedi_device; 28struct comedi_subdevice; 29 30int subdev_8255_init(struct comedi_device *dev, struct comedi_subdevice *s, 31 int (*io)(struct comedi_device *dev, int dir, int port, 32 int data, unsigned long regbase), 33 unsigned long regbase); 34 35int subdev_8255_mm_init(struct comedi_device *dev, struct comedi_subdevice *s, 36 int (*io)(struct comedi_device *dev, int dir, int port, 37 int data, unsigned long regbase), 38 unsigned long regbase); 39 40unsigned long subdev_8255_regbase(struct comedi_subdevice *s); 41 42#endif