Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 324978
b: refs/heads/master
c: 81dd181
h: refs/heads/master
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Sep 8, 2012
1 parent dd4aa98 commit ad588c8
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 233 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cc6f3336fa8f8730ec517d2677849ceb256c5b70
refs/heads/master: 81dd181161b88c28d212727120149f959da4bacf
140 changes: 139 additions & 1 deletion trunk/drivers/staging/comedi/drivers/me4000.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ broken.
#include <linux/spinlock.h>

#include "8253.h"
#include "me4000.h"

#if 0
/* file removed due to GPL incompatibility */
#include "me4000_fw.h"
Expand All @@ -75,6 +75,144 @@ broken.
#define PCI_DEVICE_ID_MEILHAUS_ME4680S 0x4682
#define PCI_DEVICE_ID_MEILHAUS_ME4680IS 0x4683

/*
* ME4000 Register map and bit defines
*/
#define ME4000_AO_CHAN(x) ((x) * 0x18)

#define ME4000_AO_CTRL_REG(x) (0x00 + ME4000_AO_CHAN(x))
#define ME4000_AO_CTRL_BIT_MODE_0 (1 << 0)
#define ME4000_AO_CTRL_BIT_MODE_1 (1 << 1)
#define ME4000_AO_CTRL_MASK_MODE (3 << 0)
#define ME4000_AO_CTRL_BIT_STOP (1 << 2)
#define ME4000_AO_CTRL_BIT_ENABLE_FIFO (1 << 3)
#define ME4000_AO_CTRL_BIT_ENABLE_EX_TRIG (1 << 4)
#define ME4000_AO_CTRL_BIT_EX_TRIG_EDGE (1 << 5)
#define ME4000_AO_CTRL_BIT_IMMEDIATE_STOP (1 << 7)
#define ME4000_AO_CTRL_BIT_ENABLE_DO (1 << 8)
#define ME4000_AO_CTRL_BIT_ENABLE_IRQ (1 << 9)
#define ME4000_AO_CTRL_BIT_RESET_IRQ (1 << 10)
#define ME4000_AO_STATUS_REG(x) (0x04 + ME4000_AO_CHAN(x))
#define ME4000_AO_STATUS_BIT_FSM (1 << 0)
#define ME4000_AO_STATUS_BIT_FF (1 << 1)
#define ME4000_AO_STATUS_BIT_HF (1 << 2)
#define ME4000_AO_STATUS_BIT_EF (1 << 3)
#define ME4000_AO_FIFO_REG(x) (0x08 + ME4000_AO_CHAN(x))
#define ME4000_AO_SINGLE_REG(x) (0x0c + ME4000_AO_CHAN(x))
#define ME4000_AO_TIMER_REG(x) (0x10 + ME4000_AO_CHAN(x))
#define ME4000_AI_CTRL_REG 0x74
#define ME4000_AI_STATUS_REG 0x74
#define ME4000_AI_CTRL_BIT_MODE_0 (1 << 0)
#define ME4000_AI_CTRL_BIT_MODE_1 (1 << 1)
#define ME4000_AI_CTRL_BIT_MODE_2 (1 << 2)
#define ME4000_AI_CTRL_BIT_SAMPLE_HOLD (1 << 3)
#define ME4000_AI_CTRL_BIT_IMMEDIATE_STOP (1 << 4)
#define ME4000_AI_CTRL_BIT_STOP (1 << 5)
#define ME4000_AI_CTRL_BIT_CHANNEL_FIFO (1 << 6)
#define ME4000_AI_CTRL_BIT_DATA_FIFO (1 << 7)
#define ME4000_AI_CTRL_BIT_FULLSCALE (1 << 8)
#define ME4000_AI_CTRL_BIT_OFFSET (1 << 9)
#define ME4000_AI_CTRL_BIT_EX_TRIG_ANALOG (1 << 10)
#define ME4000_AI_CTRL_BIT_EX_TRIG (1 << 11)
#define ME4000_AI_CTRL_BIT_EX_TRIG_FALLING (1 << 12)
#define ME4000_AI_CTRL_BIT_EX_IRQ (1 << 13)
#define ME4000_AI_CTRL_BIT_EX_IRQ_RESET (1 << 14)
#define ME4000_AI_CTRL_BIT_LE_IRQ (1 << 15)
#define ME4000_AI_CTRL_BIT_LE_IRQ_RESET (1 << 16)
#define ME4000_AI_CTRL_BIT_HF_IRQ (1 << 17)
#define ME4000_AI_CTRL_BIT_HF_IRQ_RESET (1 << 18)
#define ME4000_AI_CTRL_BIT_SC_IRQ (1 << 19)
#define ME4000_AI_CTRL_BIT_SC_IRQ_RESET (1 << 20)
#define ME4000_AI_CTRL_BIT_SC_RELOAD (1 << 21)
#define ME4000_AI_STATUS_BIT_EF_CHANNEL (1 << 22)
#define ME4000_AI_STATUS_BIT_HF_CHANNEL (1 << 23)
#define ME4000_AI_STATUS_BIT_FF_CHANNEL (1 << 24)
#define ME4000_AI_STATUS_BIT_EF_DATA (1 << 25)
#define ME4000_AI_STATUS_BIT_HF_DATA (1 << 26)
#define ME4000_AI_STATUS_BIT_FF_DATA (1 << 27)
#define ME4000_AI_STATUS_BIT_LE (1 << 28)
#define ME4000_AI_STATUS_BIT_FSM (1 << 29)
#define ME4000_AI_CTRL_BIT_EX_TRIG_BOTH (1 << 31)
#define ME4000_AI_CHANNEL_LIST_REG 0x78
#define ME4000_AI_LIST_INPUT_SINGLE_ENDED (0 << 5)
#define ME4000_AI_LIST_INPUT_DIFFERENTIAL (1 << 5)
#define ME4000_AI_LIST_RANGE_BIPOLAR_10 (0 << 6)
#define ME4000_AI_LIST_RANGE_BIPOLAR_2_5 (1 << 6)
#define ME4000_AI_LIST_RANGE_UNIPOLAR_10 (2 << 6)
#define ME4000_AI_LIST_RANGE_UNIPOLAR_2_5 (3 << 6)
#define ME4000_AI_LIST_LAST_ENTRY (1 << 8)
#define ME4000_AI_DATA_REG 0x7c
#define ME4000_AI_CHAN_TIMER_REG 0x80
#define ME4000_AI_CHAN_PRE_TIMER_REG 0x84
#define ME4000_AI_SCAN_TIMER_LOW_REG 0x88
#define ME4000_AI_SCAN_TIMER_HIGH_REG 0x8c
#define ME4000_AI_SCAN_PRE_TIMER_LOW_REG 0x90
#define ME4000_AI_SCAN_PRE_TIMER_HIGH_REG 0x94
#define ME4000_AI_START_REG 0x98
#define ME4000_IRQ_STATUS_REG 0x9c
#define ME4000_IRQ_STATUS_BIT_EX (1 << 0)
#define ME4000_IRQ_STATUS_BIT_LE (1 << 1)
#define ME4000_IRQ_STATUS_BIT_AI_HF (1 << 2)
#define ME4000_IRQ_STATUS_BIT_AO_0_HF (1 << 3)
#define ME4000_IRQ_STATUS_BIT_AO_1_HF (1 << 4)
#define ME4000_IRQ_STATUS_BIT_AO_2_HF (1 << 5)
#define ME4000_IRQ_STATUS_BIT_AO_3_HF (1 << 6)
#define ME4000_IRQ_STATUS_BIT_SC (1 << 7)
#define ME4000_DIO_PORT_0_REG 0xa0
#define ME4000_DIO_PORT_1_REG 0xa4
#define ME4000_DIO_PORT_2_REG 0xa8
#define ME4000_DIO_PORT_3_REG 0xac
#define ME4000_DIO_DIR_REG 0xb0
#define ME4000_AO_LOADSETREG_XX 0xb4
#define ME4000_DIO_CTRL_REG 0xb8
#define ME4000_DIO_CTRL_BIT_MODE_0 (1 << 0)
#define ME4000_DIO_CTRL_BIT_MODE_1 (1 << 1)
#define ME4000_DIO_CTRL_BIT_MODE_2 (1 << 2)
#define ME4000_DIO_CTRL_BIT_MODE_3 (1 << 3)
#define ME4000_DIO_CTRL_BIT_MODE_4 (1 << 4)
#define ME4000_DIO_CTRL_BIT_MODE_5 (1 << 5)
#define ME4000_DIO_CTRL_BIT_MODE_6 (1 << 6)
#define ME4000_DIO_CTRL_BIT_MODE_7 (1 << 7)
#define ME4000_DIO_CTRL_BIT_FUNCTION_0 (1 << 8)
#define ME4000_DIO_CTRL_BIT_FUNCTION_1 (1 << 9)
#define ME4000_DIO_CTRL_BIT_FIFO_HIGH_0 (1 << 10)
#define ME4000_DIO_CTRL_BIT_FIFO_HIGH_1 (1 << 11)
#define ME4000_DIO_CTRL_BIT_FIFO_HIGH_2 (1 << 12)
#define ME4000_DIO_CTRL_BIT_FIFO_HIGH_3 (1 << 13)
#define ME4000_AO_DEMUX_ADJUST_REG 0xbc
#define ME4000_AO_DEMUX_ADJUST_VALUE 0x4c
#define ME4000_AI_SAMPLE_COUNTER_REG 0xc0

/*
* PLX Register map and bit defines
*/
#define PLX_INTCSR 0x4c
#define PLX_INTCSR_LOCAL_INT1_EN (1 << 0)
#define PLX_INTCSR_LOCAL_INT1_POL (1 << 1)
#define PLX_INTCSR_LOCAL_INT1_STATE (1 << 2)
#define PLX_INTCSR_LOCAL_INT2_EN (1 << 3)
#define PLX_INTCSR_LOCAL_INT2_POL (1 << 4)
#define PLX_INTCSR_LOCAL_INT2_STATE (1 << 5)
#define PLX_INTCSR_PCI_INT_EN (1 << 6)
#define PLX_INTCSR_SOFT_INT (1 << 7)
#define PLX_ICR 0x50
#define PLX_ICR_BIT_EEPROM_CLOCK_SET (1 << 24)
#define PLX_ICR_BIT_EEPROM_CHIP_SELECT (1 << 25)
#define PLX_ICR_BIT_EEPROM_WRITE (1 << 26)
#define PLX_ICR_BIT_EEPROM_READ (1 << 27)
#define PLX_ICR_BIT_EEPROM_VALID (1 << 28)
#define PLX_ICR_MASK_EEPROM (0x1f << 24)

#define EEPROM_DELAY 1

#define ME4000_AI_FIFO_COUNT 2048

#define ME4000_AI_MIN_TICKS 66
#define ME4000_AI_MIN_SAMPLE_TIME 2000
#define ME4000_AI_BASE_FREQUENCY (unsigned int) 33E6

#define ME4000_AI_CHANNEL_LIST_COUNT 1024

struct me4000_info {
unsigned long plx_regbase;
unsigned long timer_regbase;
Expand Down
231 changes: 0 additions & 231 deletions trunk/drivers/staging/comedi/drivers/me4000.h

This file was deleted.

0 comments on commit ad588c8

Please sign in to comment.