hc
2023-08-30 862c27fc9920c83318c784bfdadf43a65df1ec8f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// SPDX-License-Identifier: GPL-2.0+
/*
 * Definitions for the PLX-9052 PCI interface chip
 *
 * Copyright (C) 2002 MEV Ltd. <http://www.mev.co.uk/>
 *
 * COMEDI - Linux Control and Measurement Device Interface
 * Copyright (C) 2000 David A. Schleef <ds@schleef.org>
 */
 
#ifndef _PLX9052_H_
#define _PLX9052_H_
 
/*
 * INTCSR - Interrupt Control/Status register
 */
#define PLX9052_INTCSR            0x4c
#define PLX9052_INTCSR_LI1ENAB        BIT(0)    /* LI1 enabled */
#define PLX9052_INTCSR_LI1POL        BIT(1)    /* LI1 active high */
#define PLX9052_INTCSR_LI1STAT        BIT(2)    /* LI1 active */
#define PLX9052_INTCSR_LI2ENAB        BIT(3)    /* LI2 enabled */
#define PLX9052_INTCSR_LI2POL        BIT(4)    /* LI2 active high */
#define PLX9052_INTCSR_LI2STAT        BIT(5)    /* LI2 active */
#define PLX9052_INTCSR_PCIENAB        BIT(6)    /* PCIINT enabled */
#define PLX9052_INTCSR_SOFTINT        BIT(7)    /* generate soft int */
#define PLX9052_INTCSR_LI1SEL        BIT(8)    /* LI1 edge */
#define PLX9052_INTCSR_LI2SEL        BIT(9)    /* LI2 edge */
#define PLX9052_INTCSR_LI1CLRINT    BIT(10)    /* LI1 clear int */
#define PLX9052_INTCSR_LI2CLRINT    BIT(11)    /* LI2 clear int */
#define PLX9052_INTCSR_ISAMODE        BIT(12)    /* ISA interface mode */
 
/*
 * CNTRL - User I/O, Direct Slave Response, Serial EEPROM, and
 * Initialization Control register
 */
#define PLX9052_CNTRL            0x50
#define PLX9052_CNTRL_WAITO        BIT(0)    /* UIO0 or WAITO# select */
#define PLX9052_CNTRL_UIO0_DIR        BIT(1)    /* UIO0 direction */
#define PLX9052_CNTRL_UIO0_DATA        BIT(2)    /* UIO0 data */
#define PLX9052_CNTRL_LLOCKO        BIT(3)    /* UIO1 or LLOCKo# select */
#define PLX9052_CNTRL_UIO1_DIR        BIT(4)    /* UIO1 direction */
#define PLX9052_CNTRL_UIO1_DATA        BIT(5)    /* UIO1 data */
#define PLX9052_CNTRL_CS2        BIT(6)    /* UIO2 or CS2# select */
#define PLX9052_CNTRL_UIO2_DIR        BIT(7)    /* UIO2 direction */
#define PLX9052_CNTRL_UIO2_DATA        BIT(8)    /* UIO2 data */
#define PLX9052_CNTRL_CS3        BIT(9)    /* UIO3 or CS3# select */
#define PLX9052_CNTRL_UIO3_DIR        BIT(10)    /* UIO3 direction */
#define PLX9052_CNTRL_UIO3_DATA        BIT(11)    /* UIO3 data */
#define PLX9052_CNTRL_PCIBAR(x)        (((x) & 0x3) << 12)
#define PLX9052_CNTRL_PCIBAR01        PLX9052_CNTRL_PCIBAR(0)    /* mem and IO */
#define PLX9052_CNTRL_PCIBAR0        PLX9052_CNTRL_PCIBAR(1)    /* mem only */
#define PLX9052_CNTRL_PCIBAR1        PLX9052_CNTRL_PCIBAR(2)    /* IO only */
#define PLX9052_CNTRL_PCI2_1_FEATURES    BIT(14)    /* PCI v2.1 features enabled */
#define PLX9052_CNTRL_PCI_R_W_FLUSH    BIT(15)    /* read w/write flush mode */
#define PLX9052_CNTRL_PCI_R_NO_FLUSH    BIT(16)    /* read no flush mode */
#define PLX9052_CNTRL_PCI_R_NO_WRITE    BIT(17)    /* read no write mode */
#define PLX9052_CNTRL_PCI_W_RELEASE    BIT(18)    /* write release bus mode */
#define PLX9052_CNTRL_RETRY_CLKS(x)    (((x) & 0xf) << 19) /* retry clks */
#define PLX9052_CNTRL_LOCK_ENAB        BIT(23)    /* slave LOCK# enable */
#define PLX9052_CNTRL_EEPROM_MASK    (0x1f << 24) /* EEPROM bits */
#define PLX9052_CNTRL_EEPROM_CLK    BIT(24)    /* EEPROM clock */
#define PLX9052_CNTRL_EEPROM_CS        BIT(25)    /* EEPROM chip select */
#define PLX9052_CNTRL_EEPROM_DOUT    BIT(26)    /* EEPROM write bit */
#define PLX9052_CNTRL_EEPROM_DIN    BIT(27)    /* EEPROM read bit */
#define PLX9052_CNTRL_EEPROM_PRESENT    BIT(28)    /* EEPROM present */
#define PLX9052_CNTRL_RELOAD_CFG    BIT(29)    /* reload configuration */
#define PLX9052_CNTRL_PCI_RESET        BIT(30)    /* PCI adapter reset */
#define PLX9052_CNTRL_MASK_REV        BIT(31)    /* mask revision */
 
#endif /* _PLX9052_H_ */