pcic.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:4k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* pcic.h - Intel 82365SL PCMCIA Host Bus Adaptor chip header */
  2. /* Copyright 1984-1996 Wind River Systems, Inc. */
  3. /* Copyright (c) 1994 David A. Hinds -- All Rights Reserved */
  4. /*
  5. modification history
  6. --------------------
  7. 01d,01apr98,hdn  added PCIC_ENA_MEMCS16 macro.
  8. 01c,19jan98,hdn  changed PCIC_VPP_XX macros.
  9. 01b,22feb96,hdn  cleaned up.
  10. 01a,19jan95,hdn  written based on David Hinds's version 2.2.3.
  11. */
  12. #ifndef __INCpcich
  13. #define __INCpcich
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #ifndef _ASMLANGUAGE
  18. #define PCIC_MAX_SOCKS 8 /* number of sockets */
  19. #define PCIC_MEM_WINDOWS 5 /* number of memory windows */
  20. #define PCIC_IO_WINDOWS 2 /* number of io windows */
  21. /* PCIC compatible chips */
  22. #define PCIC_I82365 0x10 /* Intel 82365 */
  23. #define PCIC_PD672X 0x20 /* Cirrus clone */
  24. #define PCIC_PD6710 0x30 /* Cirrus clone */
  25. #define PCIC_VLSI 0x40 /* VLSI clone */
  26. #define PCIC_IBM 0x50 /* IBM clone */
  27. #define PCIC_VG468 0x60 /* Vadem clone */
  28. #define PCIC_RICOH 0x70 /* Ricoh clone */
  29. /* Offsets for PCIC registers */
  30. #define PCIC_IDENT 0x00 /* Identification and revision */
  31. #define PCIC_STATUS 0x01 /* Interface status */
  32. #define PCIC_POWER 0x02 /* Power and RESETDRV control */
  33. #define PCIC_INTCTL 0x03 /* Interrupt and general control */
  34. #define PCIC_CSC 0x04 /* Card status change */
  35. #define PCIC_CSCINT 0x05 /* Card status change int control */
  36. #define PCIC_ADDRWIN 0x06 /* Address window enable */
  37. #define PCIC_IOCTL 0x07 /* I/O control */
  38. #define PCIC_GENCTL 0x16 /* Card detect and general control */
  39. #define PCIC_GBLCTL 0x1E /* Global control register */
  40. /* Offsets for I/O and memory window registers */
  41. #define PCIC_IO(win) (0x08+((win)<<2))
  42. #define PCIC_MEM(win) (0x10+((win)<<3))
  43. #define PCIC_W_START 0
  44. #define PCIC_W_STOP 2
  45. #define PCIC_W_OFF 4
  46. /* Flags for PCIC_STATUS */
  47. #define PCIC_CS_BVD1 0x01
  48. #define PCIC_CS_STSCHG 0x01
  49. #define PCIC_CS_BVD2 0x02
  50. #define PCIC_CS_SPKR 0x02
  51. #define PCIC_CS_DETECT 0x0c
  52. #define PCIC_CS_WRPROT 0x10
  53. #define PCIC_CS_READY 0x20
  54. #define PCIC_CS_POWERON 0x40
  55. #define PCIC_CS_GPI 0x80
  56. /* Flags for PCIC_POWER */
  57. #define PCIC_PWR_OFF 0x00 /* Turn off the socket */
  58. #define PCIC_VPP_5V 0x05 /* Vpp = 5.0v */
  59. #define PCIC_VPP_12V 0x0a /* Vpp = 12.0v */
  60. #define PCIC_VPP_MASK 0x0f /* Mask for turning off Vpp */
  61. #define PCIC_VCC_5V 0x10 /* Vcc = 5.0v */
  62. #define PCIC_VCC_3V 0x18 /* Vcc = 3.3v */
  63. #define PCIC_VCC_MASK 0x18 /* Mask for turning off Vcc */
  64. #define PCIC_PWR_AUTO 0x20 /* Auto pwr switch enable */
  65. #define PCIC_PWR_NORESET 0x40 /* Disable RESETDRV on resume */
  66. #define PCIC_PWR_OUT 0x80 /* Output enable */
  67. /* Flags for PCIC_INTCTL */
  68. #define PCIC_IRQ_MASK 0x0F
  69. #define PCIC_INTR_ENA 0x10
  70. #define PCIC_PC_IOCARD 0x20
  71. #define PCIC_PC_RESET 0x40
  72. #define PCIC_RING_ENA 0x80
  73. /* Flags for PCIC_CSC and PCIC_CSCINT*/
  74. #define PCIC_CSC_BVD1 0x01
  75. #define PCIC_CSC_STSCHG 0x01
  76. #define PCIC_CSC_BVD2 0x02
  77. #define PCIC_CSC_READY 0x04
  78. #define PCIC_CSC_DETECT 0x08
  79. #define PCIC_CSC_ANY 0x0F
  80. #define PCIC_CSC_GPI 0x10
  81. /* Flags for PCIC_ADDRWIN */
  82. #define PCIC_ENA_IO(win) (0x40 << (win))
  83. #define PCIC_ENA_MEM(win) (0x01 << (win))
  84. #define PCIC_ENA_ALL 0xdf
  85. #define PCIC_ENA_MEMCS16 0x20
  86. /* Flags for PCIC_IOCTL */
  87. #define PCIC_IOCTL_MASK(win) (0x0F << (win<<2))
  88. #define PCIC_IOCTL_WAIT(win) (0x08 << (win<<2))
  89. #define PCIC_IOCTL_0WS(win) (0x04 << (win<<2))
  90. #define PCIC_IOCTL_CS16(win) (0x02 << (win<<2))
  91. #define PCIC_IOCTL_16BIT(win) (0x01 << (win<<2))
  92. /* Flags for PCIC_GENCTL */
  93. #define PCIC_CTL_16DELAY 0x01
  94. #define PCIC_CTL_RESET_ENA 0x02
  95. #define PCIC_CTL_GPI_ENA 0x04
  96. #define PCIC_CTL_GPI_CTL 0x08
  97. #define PCIC_CTL_RESUME 0x10
  98. #define PCIC_CTL_SW_IRQ 0x20
  99. /* Flags for PCIC_GBLCTL */
  100. #define PCIC_GBL_PWRDOWN 0x01
  101. #define PCIC_GBL_CSC_LEV 0x02
  102. #define PCIC_GBL_WRBACK 0x04
  103. #define PCIC_GBL_IRQ_0_LEV 0x08
  104. #define PCIC_GBL_IRQ_1_LEV 0x10
  105. /* Flags for memory window registers */
  106. #define PCIC_MEM_16BIT 0x8000 /* In memory start high byte */
  107. #define PCIC_MEM_0WS 0x4000
  108. #define PCIC_MEM_WS1 0x8000 /* In memory stop high byte */
  109. #define PCIC_MEM_WS0 0x4000
  110. #define PCIC_MEM_WRPROT 0x8000 /* In offset high byte */
  111. #define PCIC_MEM_REG 0x4000
  112. /* function declarations */
  113. #if defined(__STDC__) || defined(__cplusplus)
  114. extern int pcicInit (int ioBase, int intVec, int intLevel, 
  115.  FUNCPTR showRtn);
  116. extern void pcicShow (int sock);
  117. #else
  118. extern int pcicInit ();
  119. extern void pcicShow ();
  120. #endif  /* __STDC__ */
  121. #endif /* _ASMLANGUAGE */
  122. #ifdef __cplusplus
  123. }
  124. #endif
  125. #endif /* __INCpcich */