115d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman/*
215d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * Copyright (C) 2004,2005  ADDI-DATA GmbH for the source code of this module.
315d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *
415d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *	ADDI-DATA GmbH
515d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *	Dieselstrasse 3
615d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *	D-77833 Ottersweier
715d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *	Tel: +19(0)7223/9493-0
815d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *	Fax: +49(0)7223/9493-92
915d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *	http://www.addi-data-com
1015d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *	info@addi-data.com
1115d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman *
1215d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * This program is free software; you can redistribute it and/or modify it
1315d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * under the terms of the GNU General Public License as published by the Free
1415d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * Software Foundation; either version 2 of the License, or (at your option)
1515d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * any later version.
1615d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman */
17c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
18c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#ifndef COMEDI_SUBD_TTLIO
19c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define COMEDI_SUBD_TTLIO   11	/* Digital Input Output But TTL */
20c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#endif
21c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
22c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#ifndef ADDIDATA_ENABLE
23c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define ADDIDATA_ENABLE  1
24c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define ADDIDATA_DISABLE 0
25c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#endif
26c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
27c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_INIT           0
28c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_INITDIRECTION  1
29c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_OUTPUTMEMORY   2
30c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
31c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_READCHANNEL            0
32c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_READPORT               1
33c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
34c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_WRITECHANNEL_ON        0
35c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_WRITECHANNEL_OFF       1
36c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_WRITEPORT_ON           2
37c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_WRITEPORT_OFF          3
38c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
39c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_READ_ALL_INPUTS        0
40c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI16XX_TTL_READ_ALL_OUTPUTS       1
41c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
42c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#ifdef __KERNEL__
43c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
449ced1de69125b60f40127eddaa3be2a92bb0a1dfBill Pembertonstatic const struct comedi_lrange range_apci16xx_ttl = { 12,
45c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH	{BIP_RANGE(1),
4615d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
4715d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
4815d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
4915d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
5015d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
5115d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
5215d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
5315d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
5415d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
5515d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1),
5615d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman	 BIP_RANGE(1)}
57c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH};
58c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
59c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH/*
60c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH+----------------------------------------------------------------------------+
61c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH|                       TTL INISIALISATION FUNCTION                          |
62c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH+----------------------------------------------------------------------------+
63c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH*/
64c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
6571b5f4f11971dea972832ad63a994c7e5b45db6bBill Pembertonint i_APCI16XX_InsnConfigInitTTLIO(struct comedi_device *dev,
6690035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton				   struct comedi_subdevice *s, struct comedi_insn *insn,
67790c55415aa31f4c732729f94d2c3a54f7d3bfc2Bill Pemberton				   unsigned int *data);
68c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
69c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH/*
70c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH+----------------------------------------------------------------------------+
71c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH|                       TTL INPUT FUNCTION                                   |
72c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH+----------------------------------------------------------------------------+
73c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH*/
74c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
7571b5f4f11971dea972832ad63a994c7e5b45db6bBill Pembertonint i_APCI16XX_InsnBitsReadTTLIO(struct comedi_device *dev,
7690035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton				 struct comedi_subdevice *s, struct comedi_insn *insn,
77790c55415aa31f4c732729f94d2c3a54f7d3bfc2Bill Pemberton				 unsigned int *data);
78c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
7971b5f4f11971dea972832ad63a994c7e5b45db6bBill Pembertonint i_APCI16XX_InsnReadTTLIOAllPortValue(struct comedi_device *dev,
8034c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pemberton					 struct comedi_subdevice *s,
8190035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton					 struct comedi_insn *insn, unsigned int *data);
82c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
83c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH/*
84c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH+----------------------------------------------------------------------------+
85c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH|                            TTL OUTPUT FUNCTIONS                            |
86c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH+----------------------------------------------------------------------------+
87c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH*/
88c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
8971b5f4f11971dea972832ad63a994c7e5b45db6bBill Pembertonint i_APCI16XX_InsnBitsWriteTTLIO(struct comedi_device *dev,
9090035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton				  struct comedi_subdevice *s, struct comedi_insn *insn,
91790c55415aa31f4c732729f94d2c3a54f7d3bfc2Bill Pemberton				  unsigned int *data);
92c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH
9371b5f4f11971dea972832ad63a994c7e5b45db6bBill Pembertonint i_APCI16XX_Reset(struct comedi_device *dev);
94c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#endif
95