aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/defxx.h
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2007-02-05 19:28:27 -0500
committerRalf Baechle <ralf@linux-mips.org>2007-02-09 11:23:17 -0500
commite89a2cfb7d7b5a658295fef9be84b12e813163bd (patch)
tree2e5e3efd3f27b58965b4e47aaa079bbd13ed6d20 /drivers/net/defxx.h
parent33cf45b90eb73e1f3b784b50691d74f7ea381b21 (diff)
[TC] defxx: TURBOchannel support
This is a set of changes to add TURBOchannel support to the defxx driver. As at this point the EISA support in the driver has become the only not having been converted to the driver model, I took the opportunity to convert it as well. Plus support for MMIO in addition to PIO operation as TURBOchannel requires it anyway. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'drivers/net/defxx.h')
-rw-r--r--drivers/net/defxx.h58
1 files changed, 36 insertions, 22 deletions
diff --git a/drivers/net/defxx.h b/drivers/net/defxx.h
index 2ce8f97253eb..19a6f64df198 100644
--- a/drivers/net/defxx.h
+++ b/drivers/net/defxx.h
@@ -26,6 +26,7 @@
26 * 12-Sep-96 LVS Removed packet request header pointers. 26 * 12-Sep-96 LVS Removed packet request header pointers.
27 * 04 Aug 2003 macro Converted to the DMA API. 27 * 04 Aug 2003 macro Converted to the DMA API.
28 * 23 Oct 2006 macro Big-endian host support. 28 * 23 Oct 2006 macro Big-endian host support.
29 * 14 Dec 2006 macro TURBOchannel support.
29 */ 30 */
30 31
31#ifndef _DEFXX_H_ 32#ifndef _DEFXX_H_
@@ -1471,9 +1472,17 @@ typedef union
1471 1472
1472#endif /* __BIG_ENDIAN */ 1473#endif /* __BIG_ENDIAN */
1473 1474
1475/* Define TC PDQ CSR offset and length */
1476
1477#define PI_TC_K_CSR_OFFSET 0x100000
1478#define PI_TC_K_CSR_LEN 0x40 /* 64 bytes */
1479
1474/* Define EISA controller register offsets */ 1480/* Define EISA controller register offsets */
1475 1481
1476#define PI_ESIC_K_BURST_HOLDOFF 0x040 1482#define PI_ESIC_K_CSR_IO_LEN 0x80 /* 128 bytes */
1483
1484#define PI_DEFEA_K_BURST_HOLDOFF 0x040
1485
1477#define PI_ESIC_K_SLOT_ID 0xC80 1486#define PI_ESIC_K_SLOT_ID 0xC80
1478#define PI_ESIC_K_SLOT_CNTRL 0xC84 1487#define PI_ESIC_K_SLOT_CNTRL 0xC84
1479#define PI_ESIC_K_MEM_ADD_CMP_0 0xC85 1488#define PI_ESIC_K_MEM_ADD_CMP_0 0xC85
@@ -1488,14 +1497,14 @@ typedef union
1488#define PI_ESIC_K_MEM_ADD_LO_CMP_0 0xC8E 1497#define PI_ESIC_K_MEM_ADD_LO_CMP_0 0xC8E
1489#define PI_ESIC_K_MEM_ADD_LO_CMP_1 0xC8F 1498#define PI_ESIC_K_MEM_ADD_LO_CMP_1 0xC8F
1490#define PI_ESIC_K_MEM_ADD_LO_CMP_2 0xC90 1499#define PI_ESIC_K_MEM_ADD_LO_CMP_2 0xC90
1491#define PI_ESIC_K_IO_CMP_0_0 0xC91 1500#define PI_ESIC_K_IO_ADD_CMP_0_0 0xC91
1492#define PI_ESIC_K_IO_CMP_0_1 0xC92 1501#define PI_ESIC_K_IO_ADD_CMP_0_1 0xC92
1493#define PI_ESIC_K_IO_CMP_1_0 0xC93 1502#define PI_ESIC_K_IO_ADD_CMP_1_0 0xC93
1494#define PI_ESIC_K_IO_CMP_1_1 0xC94 1503#define PI_ESIC_K_IO_ADD_CMP_1_1 0xC94
1495#define PI_ESIC_K_IO_CMP_2_0 0xC95 1504#define PI_ESIC_K_IO_ADD_CMP_2_0 0xC95
1496#define PI_ESIC_K_IO_CMP_2_1 0xC96 1505#define PI_ESIC_K_IO_ADD_CMP_2_1 0xC96
1497#define PI_ESIC_K_IO_CMP_3_0 0xC97 1506#define PI_ESIC_K_IO_ADD_CMP_3_0 0xC97
1498#define PI_ESIC_K_IO_CMP_3_1 0xC98 1507#define PI_ESIC_K_IO_ADD_CMP_3_1 0xC98
1499#define PI_ESIC_K_IO_ADD_MASK_0_0 0xC99 1508#define PI_ESIC_K_IO_ADD_MASK_0_0 0xC99
1500#define PI_ESIC_K_IO_ADD_MASK_0_1 0xC9A 1509#define PI_ESIC_K_IO_ADD_MASK_0_1 0xC9A
1501#define PI_ESIC_K_IO_ADD_MASK_1_0 0xC9B 1510#define PI_ESIC_K_IO_ADD_MASK_1_0 0xC9B
@@ -1518,11 +1527,16 @@ typedef union
1518#define PI_ESIC_K_INPUT_PORT 0xCAC 1527#define PI_ESIC_K_INPUT_PORT 0xCAC
1519#define PI_ESIC_K_OUTPUT_PORT 0xCAD 1528#define PI_ESIC_K_OUTPUT_PORT 0xCAD
1520#define PI_ESIC_K_FUNCTION_CNTRL 0xCAE 1529#define PI_ESIC_K_FUNCTION_CNTRL 0xCAE
1521#define PI_ESIC_K_CSR_IO_LEN PI_ESIC_K_FUNCTION_CNTRL+1 /* always last reg + 1 */
1522 1530
1523/* Define the value all drivers must write to the function control register. */ 1531/* Define the bits in the function control register. */
1524 1532
1525#define PI_ESIC_K_FUNCTION_CNTRL_IO_ENB 0x03 1533#define PI_FUNCTION_CNTRL_M_IOCS0 0x01
1534#define PI_FUNCTION_CNTRL_M_IOCS1 0x02
1535#define PI_FUNCTION_CNTRL_M_IOCS2 0x04
1536#define PI_FUNCTION_CNTRL_M_IOCS3 0x08
1537#define PI_FUNCTION_CNTRL_M_MEMCS0 0x10
1538#define PI_FUNCTION_CNTRL_M_MEMCS1 0x20
1539#define PI_FUNCTION_CNTRL_M_DMA 0x80
1526 1540
1527/* Define the bits in the slot control register. */ 1541/* Define the bits in the slot control register. */
1528 1542
@@ -1540,6 +1554,10 @@ typedef union
1540#define PI_BURST_HOLDOFF_V_RESERVED 1 1554#define PI_BURST_HOLDOFF_V_RESERVED 1
1541#define PI_BURST_HOLDOFF_V_MEM_MAP 0 1555#define PI_BURST_HOLDOFF_V_MEM_MAP 0
1542 1556
1557/* Define the implicit mask of the Memory Address Mask Register. */
1558
1559#define PI_MEM_ADD_MASK_M 0x3ff
1560
1543/* 1561/*
1544 * Define the fields in the IO Compare registers. 1562 * Define the fields in the IO Compare registers.
1545 * The driver must initialize the slot field with the slot ID shifted by the 1563 * The driver must initialize the slot field with the slot ID shifted by the
@@ -1577,6 +1595,7 @@ typedef union
1577#define DEFEA_PROD_ID_1 0x0130A310 /* DEC product 300, rev 1 */ 1595#define DEFEA_PROD_ID_1 0x0130A310 /* DEC product 300, rev 1 */
1578#define DEFEA_PROD_ID_2 0x0230A310 /* DEC product 300, rev 2 */ 1596#define DEFEA_PROD_ID_2 0x0230A310 /* DEC product 300, rev 2 */
1579#define DEFEA_PROD_ID_3 0x0330A310 /* DEC product 300, rev 3 */ 1597#define DEFEA_PROD_ID_3 0x0330A310 /* DEC product 300, rev 3 */
1598#define DEFEA_PROD_ID_4 0x0430A310 /* DEC product 300, rev 4 */
1580 1599
1581/**********************************************/ 1600/**********************************************/
1582/* Digital PFI Specification v1.0 Definitions */ 1601/* Digital PFI Specification v1.0 Definitions */
@@ -1633,12 +1652,6 @@ typedef union
1633#define PFI_STATUS_V_FIFO_EMPTY 1 1652#define PFI_STATUS_V_FIFO_EMPTY 1
1634#define PFI_STATUS_V_DMA_IN_PROGRESS 0 1653#define PFI_STATUS_V_DMA_IN_PROGRESS 0
1635 1654
1636#define DFX_MAX_EISA_SLOTS 16 /* maximum number of EISA slots to scan */
1637#define DFX_MAX_NUM_BOARDS 8 /* maximum number of adapters supported */
1638
1639#define DFX_BUS_TYPE_PCI 0 /* type code for DEC FDDIcontroller/PCI */
1640#define DFX_BUS_TYPE_EISA 1 /* type code for DEC FDDIcontroller/EISA */
1641
1642#define DFX_FC_PRH2_PRH1_PRH0 0x54003820 /* Packet Request Header bytes + FC */ 1655#define DFX_FC_PRH2_PRH1_PRH0 0x54003820 /* Packet Request Header bytes + FC */
1643#define DFX_PRH0_BYTE 0x20 /* Packet Request Header byte 0 */ 1656#define DFX_PRH0_BYTE 0x20 /* Packet Request Header byte 0 */
1644#define DFX_PRH1_BYTE 0x38 /* Packet Request Header byte 1 */ 1657#define DFX_PRH1_BYTE 0x38 /* Packet Request Header byte 1 */
@@ -1756,10 +1769,11 @@ typedef struct DFX_board_tag
1756 /* Store device, bus-specific, and parameter information for this adapter */ 1769 /* Store device, bus-specific, and parameter information for this adapter */
1757 1770
1758 struct net_device *dev; /* pointer to device structure */ 1771 struct net_device *dev; /* pointer to device structure */
1759 struct net_device *next; 1772 union {
1760 u32 bus_type; /* bus type (0 == PCI, 1 == EISA) */ 1773 void __iomem *mem;
1761 u16 base_addr; /* base I/O address (same as dev->base_addr) */ 1774 int port;
1762 struct pci_dev * pci_dev; 1775 } base; /* base address */
1776 struct device *bus_dev;
1763 u32 full_duplex_enb; /* FDDI Full Duplex enable (1 == on, 2 == off) */ 1777 u32 full_duplex_enb; /* FDDI Full Duplex enable (1 == on, 2 == off) */
1764 u32 req_ttrt; /* requested TTRT value (in 80ns units) */ 1778 u32 req_ttrt; /* requested TTRT value (in 80ns units) */
1765 u32 burst_size; /* adapter burst size (enumerated) */ 1779 u32 burst_size; /* adapter burst size (enumerated) */