150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott/*
250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott * ni_labpc register definitions.
350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott*/
450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott
550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#ifndef _NI_LABPC_REGS_H
650787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define _NI_LABPC_REGS_H
750787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott
850787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott/*
950787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott * Register map (all registers are 8-bit)
1050787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott */
1150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT1_REG		0x00	/* R: Status 1 reg */
1250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT1_DAVAIL		(1 << 0)
1350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT1_OVERRUN		(1 << 1)
1450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT1_OVERFLOW		(1 << 2)
1550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT1_CNTINT		(1 << 3)
1650787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT1_GATA0		(1 << 5)
1750787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT1_EXTGATA0		(1 << 6)
1850787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD1_REG		0x00	/* W: Command 1 reg */
1950787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD1_MA(x)		(((x) & 0x7) << 0)
2050787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD1_TWOSCMP		(1 << 3)
2150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD1_GAIN(x)		(((x) & 0x7) << 4)
2250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD1_SCANEN		(1 << 7)
2350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_REG		0x01	/* W: Command 2 reg */
2450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_PRETRIG		(1 << 0)
2550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_HWTRIG		(1 << 1)
2650787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_SWTRIG		(1 << 2)
2750787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_TBSEL		(1 << 3)
2850787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_2SDAC0		(1 << 4)
2950787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_2SDAC1		(1 << 5)
3050787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD2_LDAC(x)		(1 << (6 + (x)))
3150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD3_REG		0x02	/* W: Command 3 reg */
3250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD3_DMAEN		(1 << 0)
3350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD3_DIOINTEN		(1 << 1)
3450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD3_DMATCINTEN		(1 << 2)
3550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD3_CNTINTEN		(1 << 3)
3650787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD3_ERRINTEN		(1 << 4)
3750787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD3_FIFOINTEN		(1 << 5)
3850787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define ADC_START_CONVERT_REG	0x03	/* W: Start Convert reg */
3950787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define DAC_LSB_REG(x)		(0x04 + 2 * (x)) /* W: DAC0/1 LSB reg */
4050787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define DAC_MSB_REG(x)		(0x05 + 2 * (x)) /* W: DAC0/1 MSB reg */
4150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define ADC_FIFO_CLEAR_REG	0x08	/* W: A/D FIFO Clear reg */
4250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define ADC_FIFO_REG		0x0a	/* R: A/D FIFO reg */
4350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define DMATC_CLEAR_REG		0x0a	/* W: DMA Interrupt Clear reg */
4450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define TIMER_CLEAR_REG		0x0c	/* W: Timer Interrupt Clear reg */
4550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD6_REG		0x0e	/* W: Command 6 reg */
4650787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD6_NRSE		(1 << 0)
4750787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD6_ADCUNI		(1 << 1)
4850787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD6_DACUNI(x)		(1 << (2 + (x)))
4950787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD6_HFINTEN		(1 << 5)
5050787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD6_DQINTEN		(1 << 6)
5150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD6_SCANUP		(1 << 7)
5250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD4_REG		0x0f	/* W: Command 3 reg */
5350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD4_INTSCAN		(1 << 0)
5450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD4_EOIRCV		(1 << 1)
5550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD4_ECLKDRV		(1 << 2)
5650787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD4_SEDIFF		(1 << 3)
5750787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD4_ECLKRCV		(1 << 4)
5850787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define DIO_BASE_REG		0x10	/* R/W: 8255 DIO base reg */
5950787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define COUNTER_A_BASE_REG	0x14	/* R/W: 8253 Counter A base reg */
6050787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define COUNTER_B_BASE_REG	0x18	/* R/W: 8253 Counter B base reg */
6150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD5_REG		0x1c	/* W: Command 5 reg */
6250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD5_WRTPRT		(1 << 2)
6350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD5_DITHEREN		(1 << 3)
6450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD5_CALDACLD		(1 << 4)
6550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD5_SCLK		(1 << 5)
6650787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD5_SDATA		(1 << 6)
6750787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define CMD5_EEPROMCS		(1 << 7)
6850787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT2_REG		0x1d	/* R: Status 2 reg */
6950787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT2_PROMOUT		(1 << 0)
7050787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT2_OUTA1		(1 << 1)
7150787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define STAT2_FIFONHF		(1 << 2)
7250787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define INTERVAL_COUNT_REG	0x1e	/* W: Interval Counter Data reg */
7350787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#define INTERVAL_STROBE_REG	0x1f	/* W: Interval Counter Strobe reg */
7450787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott
7550787fa99d80e86c9a22b7af16fd9827f733f3abIan Abbott#endif /* _NI_LABPC_REGS_H */
76