sa1111.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:19k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * linux/include/asm-arm/hardware/SA-1111.h
  3.  *
  4.  * Copyright (C) 2000 John G Dorsey <john+@cs.cmu.edu>
  5.  *
  6.  * This file contains definitions for the SA-1111 Companion Chip.
  7.  * (Structure and naming borrowed from SA-1101.h, by Peter Danielsson.)
  8.  *
  9.  * Macro that calculates real address for registers in the SA-1111
  10.  */
  11. #ifndef _ASM_ARCH_SA1111
  12. #define _ASM_ARCH_SA1111
  13. #include <asm/arch/bitfield.h>
  14. /*
  15.  * The SA1111 is always located at virtual 0xf4000000, and is always
  16.  * "native" endian.
  17.  */
  18. #define SA1111_VBASE 0xf4000000
  19. /* Don't use these! */
  20. #define SA1111_p2v( x )         ((x) - SA1111_BASE + SA1111_VBASE)
  21. #define SA1111_v2p( x )         ((x) - SA1111_VBASE + SA1111_BASE)
  22. #ifndef __ASSEMBLY__
  23. extern struct resource sa1111_resource;
  24. #define _SA1111(x) ((x) + sa1111_resource.start)
  25. #endif
  26. /*
  27.  * 26 bits of the SA-1110 address bus are available to the SA-1111.
  28.  * Use these when feeding target addresses to the DMA engines.
  29.  */
  30. #define SA1111_ADDR_WIDTH (26)
  31. #define SA1111_ADDR_MASK ((1<<SA1111_ADDR_WIDTH)-1)
  32. #define SA1111_DMA_ADDR(x) ((x)&SA1111_ADDR_MASK)
  33. /*
  34.  * Don't ask the (SAC) DMA engines to move less than this amount.
  35.  */
  36. #define SA1111_SAC_DMA_MIN_XFER (0x800)
  37. /*
  38.  * SA1111 register definitions.
  39.  */
  40. #define __CCREG(x) __REGP(SA1111_VBASE + (x))
  41. /* System Bus Interface (SBI)
  42.  *
  43.  * Registers
  44.  *    SKCR Control Register
  45.  *    SMCR Shared Memory Controller Register
  46.  *    SKID ID Register
  47.  */
  48. #define SA1111_SKCR 0x0000
  49. #define SA1111_SMCR 0x0004
  50. #define SA1111_SKID 0x0008
  51. #define _SBI_SKCR _SA1111(SA1111_SKCR)
  52. #define _SBI_SMCR _SA1111(SA1111_SMCR)
  53. #define _SBI_SKID _SA1111(SA1111_SKID)
  54. #if LANGUAGE == C
  55. #define SBI_SKCR __CCREG(SA1111_SKCR)
  56. #define SBI_SMCR __CCREG(SA1111_SMCR)
  57. #define SBI_SKID __CCREG(SA1111_SKID)
  58. #endif  /* LANGUAGE == C */
  59. #define SKCR_PLL_BYPASS (1<<0)
  60. #define SKCR_RCLKEN (1<<1)
  61. #define SKCR_SLEEP (1<<2)
  62. #define SKCR_DOZE (1<<3)
  63. #define SKCR_VCO_OFF (1<<4)
  64. #define SKCR_SCANTSTEN (1<<5)
  65. #define SKCR_CLKTSTEN (1<<6)
  66. #define SKCR_RDYEN (1<<7)
  67. #define SKCR_SELAC (1<<8)
  68. #define SKCR_OPPC (1<<9)
  69. #define SKCR_PLLTSTEN (1<<10)
  70. #define SKCR_USBIOTSTEN (1<<11)
  71. /*
  72.  * Don't believe the specs!  Take them, throw them outside.  Leave them
  73.  * there for a week.  Spit on them.  Walk on them.  Stamp on them.
  74.  * Pour gasoline over them and finally burn them.  Now think about coding.
  75.  *  - The October 1999 errata (278260-007) says its bit 13, 1 to enable.
  76.  *  - The Feb 2001 errata (278260-010) says that the previous errata
  77.  *    (278260-009) is wrong, and its bit actually 12, fixed in spec
  78.  *    278242-003.
  79.  *  - The SA1111 manual (278242) says bit 12, but 0 to enable.
  80.  *  - Reality is bit 13, 1 to enable.
  81.  *      -- rmk
  82.  */
  83. #define SKCR_OE_EN (1<<13)
  84. #define SMCR_DTIM (1<<0)
  85. #define SMCR_MBGE (1<<1)
  86. #define SMCR_DRAC_0 (1<<2)
  87. #define SMCR_DRAC_1 (1<<3)
  88. #define SMCR_DRAC_2 (1<<4)
  89. #define SMCR_DRAC Fld(3, 2)
  90. #define SMCR_CLAT (1<<5)
  91. #define SKID_SIREV_MASK (0x000000f0)
  92. #define SKID_MTREV_MASK (0x0000000f)
  93. #define SKID_ID_MASK (0xffffff00)
  94. #define SKID_SA1111_ID (0x690cc200)
  95. /*
  96.  * System Controller
  97.  *
  98.  * Registers
  99.  *    SKPCR Power Control Register
  100.  *    SKCDR Clock Divider Register
  101.  *    SKAUD Audio Clock Divider Register
  102.  *    SKPMC PS/2 Mouse Clock Divider Register
  103.  *    SKPTC PS/2 Track Pad Clock Divider Register
  104.  *    SKPEN0 PWM0 Enable Register
  105.  *    SKPWM0 PWM0 Clock Register
  106.  *    SKPEN1 PWM1 Enable Register
  107.  *    SKPWM1 PWM1 Clock Register
  108.  */
  109. #define _SKPCR _SA1111(0x0200)
  110. #define _SKCDR _SA1111(0x0204)
  111. #define _SKAUD _SA1111(0x0208)
  112. #define _SKPMC _SA1111(0x020c)
  113. #define _SKPTC _SA1111(0x0210)
  114. #define _SKPEN0 _SA1111(0x0214)
  115. #define _SKPWM0 _SA1111(0x0218)
  116. #define _SKPEN1 _SA1111(0x021c)
  117. #define _SKPWM1 _SA1111(0x0220)
  118. #if LANGUAGE == C
  119. #define SKPCR __CCREG(0x0200)
  120. #define SKCDR __CCREG(0x0204)
  121. #define SKAUD __CCREG(0x0208)
  122. #define SKPMC __CCREG(0x020c)
  123. #define SKPTC __CCREG(0x0210)
  124. #define SKPEN0 __CCREG(0x0214)
  125. #define SKPWM0 __CCREG(0x0218)
  126. #define SKPEN1 __CCREG(0x021c)
  127. #define SKPWM1 __CCREG(0x0220)
  128. #endif  /* LANGUAGE == C */
  129. #define SKPCR_UCLKEN (1<<0)
  130. #define SKPCR_ACCLKEN (1<<1)
  131. #define SKPCR_I2SCLKEN (1<<2)
  132. #define SKPCR_L3CLKEN (1<<3)
  133. #define SKPCR_SCLKEN (1<<4)
  134. #define SKPCR_PMCLKEN (1<<5)
  135. #define SKPCR_PTCLKEN (1<<6)
  136. #define SKPCR_DCLKEN (1<<7)
  137. #define SKPCR_PWMCLKEN (1<<8)
  138. /*
  139.  * USB Host controller
  140.  */
  141. #define _USB_OHCI_OP_BASE _SA1111( 0x400 )
  142. #define _USB_STATUS _SA1111( 0x518 )
  143. #define _USB_RESET _SA1111( 0x51c )
  144. #define _USB_INTERRUPTEST _SA1111( 0x520 )
  145. #define _USB_EXTENT (_USB_INTERRUPTEST - _USB_OHCI_OP_BASE + 4)
  146. #if LANGUAGE == C
  147. #define USB_OHCI_OP_BASE __CCREG(0x0400)
  148. #define USB_STATUS __CCREG(0x0518)
  149. #define USB_RESET __CCREG(0x051c)
  150. #define USB_INTERRUPTEST __CCReG(0x0520)
  151. #endif  /* LANGUAGE == C */
  152. #define USB_RESET_FORCEIFRESET (1 << 0)
  153. #define USB_RESET_FORCEHCRESET (1 << 1)
  154. #define USB_RESET_CLKGENRESET (1 << 2)
  155. #define USB_RESET_SIMSCALEDOWN (1 << 3)
  156. #define USB_RESET_USBINTTEST (1 << 4)
  157. #define USB_RESET_SLEEPSTBYEN (1 << 5)
  158. #define USB_RESET_PWRSENSELOW (1 << 6)
  159. #define USB_RESET_PWRCTRLLOW (1 << 7)
  160. /*
  161.  * Serial Audio Controller
  162.  *
  163.  * Registers
  164.  *    SACR0             Serial Audio Common Control Register
  165.  *    SACR1             Serial Audio Alternate Mode (I2C/MSB) Control Register
  166.  *    SACR2             Serial Audio AC-link Control Register
  167.  *    SASR0             Serial Audio I2S/MSB Interface & FIFO Status Register
  168.  *    SASR1             Serial Audio AC-link Interface & FIFO Status Register
  169.  *    SASCR             Serial Audio Status Clear Register
  170.  *    L3_CAR            L3 Control Bus Address Register
  171.  *    L3_CDR            L3 Control Bus Data Register
  172.  *    ACCAR             AC-link Command Address Register
  173.  *    ACCDR             AC-link Command Data Register
  174.  *    ACSAR             AC-link Status Address Register
  175.  *    ACSDR             AC-link Status Data Register
  176.  *    SADTCS            Serial Audio DMA Transmit Control/Status Register
  177.  *    SADTSA            Serial Audio DMA Transmit Buffer Start Address A
  178.  *    SADTCA            Serial Audio DMA Transmit Buffer Count Register A
  179.  *    SADTSB            Serial Audio DMA Transmit Buffer Start Address B
  180.  *    SADTCB            Serial Audio DMA Transmit Buffer Count Register B
  181.  *    SADRCS            Serial Audio DMA Receive Control/Status Register
  182.  *    SADRSA            Serial Audio DMA Receive Buffer Start Address A
  183.  *    SADRCA            Serial Audio DMA Receive Buffer Count Register A
  184.  *    SADRSB            Serial Audio DMA Receive Buffer Start Address B
  185.  *    SADRCB            Serial Audio DMA Receive Buffer Count Register B
  186.  *    SAITR             Serial Audio Interrupt Test Register
  187.  *    SADR              Serial Audio Data Register (16 x 32-bit)
  188.  */
  189. #define _SACR0          _SA1111( 0x0600 )
  190. #define _SACR1          _SA1111( 0x0604 )
  191. #define _SACR2          _SA1111( 0x0608 )
  192. #define _SASR0          _SA1111( 0x060c )
  193. #define _SASR1          _SA1111( 0x0610 )
  194. #define _SASCR          _SA1111( 0x0618 )
  195. #define _L3_CAR         _SA1111( 0x061c )
  196. #define _L3_CDR         _SA1111( 0x0620 )
  197. #define _ACCAR          _SA1111( 0x0624 )
  198. #define _ACCDR          _SA1111( 0x0628 )
  199. #define _ACSAR          _SA1111( 0x062c )
  200. #define _ACSDR          _SA1111( 0x0630 )
  201. #define _SADTCS         _SA1111( 0x0634 )
  202. #define _SADTSA         _SA1111( 0x0638 )
  203. #define _SADTCA         _SA1111( 0x063c )
  204. #define _SADTSB         _SA1111( 0x0640 )
  205. #define _SADTCB         _SA1111( 0x0644 )
  206. #define _SADRCS         _SA1111( 0x0648 )
  207. #define _SADRSA         _SA1111( 0x064c )
  208. #define _SADRCA         _SA1111( 0x0650 )
  209. #define _SADRSB         _SA1111( 0x0654 )
  210. #define _SADRCB         _SA1111( 0x0658 )
  211. #define _SAITR          _SA1111( 0x065c )
  212. #define _SADR           _SA1111( 0x0680 )
  213. #if LANGUAGE == C
  214. #define SACR0 __CCREG(0x0600)
  215. #define SACR1 __CCREG(0x0604)
  216. #define SACR2 __CCREG(0x0608)
  217. #define SASR0 __CCREG(0x060c)
  218. #define SASR1 __CCREG(0x0610)
  219. #define SASCR __CCREG(0x0618)
  220. #define L3_CAR __CCREG(0x061c)
  221. #define L3_CDR __CCREG(0x0620)
  222. #define ACCAR __CCREG(0x0624)
  223. #define ACCDR __CCREG(0x0628)
  224. #define ACSAR __CCREG(0x062c)
  225. #define ACSDR __CCREG(0x0630)
  226. #define SADTCS __CCREG(0x0634)
  227. #define SADTSA __CCREG(0x0638)
  228. #define SADTCA __CCREG(0x063c)
  229. #define SADTSB __CCREG(0x0640)
  230. #define SADTCB __CCREG(0x0644)
  231. #define SADRCS __CCREG(0x0648)
  232. #define SADRSA __CCREG(0x064c)
  233. #define SADRCA __CCREG(0x0650)
  234. #define SADRSB __CCREG(0x0654)
  235. #define SADRCB __CCREG(0x0658)
  236. #define SAITR __CCREG(0x065c)
  237. #define SADR __CCREG(0x0680)
  238. #endif  /* LANGUAGE == C */
  239. #define SACR0_ENB (1<<0)
  240. #define SACR0_BCKD (1<<2)
  241. #define SACR0_RST (1<<3)
  242. #define SACR1_AMSL (1<<0)
  243. #define SACR1_L3EN (1<<1)
  244. #define SACR1_L3MB (1<<2)
  245. #define SACR1_DREC (1<<3)
  246. #define SACR1_DRPL (1<<4)
  247. #define SACR1_ENLBF (1<<5)
  248. #define SACR2_TS3V (1<<0)
  249. #define SACR2_TS4V (1<<1)
  250. #define SACR2_WKUP (1<<2)
  251. #define SACR2_DREC (1<<3)
  252. #define SACR2_DRPL (1<<4)
  253. #define SACR2_ENLBF (1<<5)
  254. #define SACR2_RESET (1<<6)
  255. #define SASR0_TNF (1<<0)
  256. #define SASR0_RNE (1<<1)
  257. #define SASR0_BSY (1<<2)
  258. #define SASR0_TFS (1<<3)
  259. #define SASR0_RFS (1<<4)
  260. #define SASR0_TUR (1<<5)
  261. #define SASR0_ROR (1<<6)
  262. #define SASR0_L3WD (1<<16)
  263. #define SASR0_L3RD (1<<17)
  264. #define SASR1_TNF (1<<0)
  265. #define SASR1_RNE (1<<1)
  266. #define SASR1_BSY (1<<2)
  267. #define SASR1_TFS (1<<3)
  268. #define SASR1_RFS (1<<4)
  269. #define SASR1_TUR (1<<5)
  270. #define SASR1_ROR (1<<6)
  271. #define SASR1_CADT (1<<16)
  272. #define SASR1_SADR (1<<17)
  273. #define SASR1_RSTO (1<<18)
  274. #define SASR1_CLPM (1<<19)
  275. #define SASR1_CRDY (1<<20)
  276. #define SASR1_RS3V (1<<21)
  277. #define SASR1_RS4V (1<<22)
  278. #define SASCR_TUR (1<<5)
  279. #define SASCR_ROR (1<<6)
  280. #define SASCR_DTS (1<<16)
  281. #define SASCR_RDD (1<<17)
  282. #define SASCR_STO (1<<18)
  283. #define SADTCS_TDEN (1<<0)
  284. #define SADTCS_TDIE (1<<1)
  285. #define SADTCS_TDBDA (1<<3)
  286. #define SADTCS_TDSTA (1<<4)
  287. #define SADTCS_TDBDB (1<<5)
  288. #define SADTCS_TDSTB (1<<6)
  289. #define SADTCS_TBIU (1<<7)
  290. #define SADRCS_RDEN (1<<0)
  291. #define SADRCS_RDIE (1<<1)
  292. #define SADRCS_RDBDA (1<<3)
  293. #define SADRCS_RDSTA (1<<4)
  294. #define SADRCS_RDBDB (1<<5)
  295. #define SADRCS_RDSTB (1<<6)
  296. #define SADRCS_RBIU (1<<7)
  297. #define SAD_CS_DEN (1<<0)
  298. #define SAD_CS_DIE (1<<1) /* Not functional on metal 1 */
  299. #define SAD_CS_DBDA (1<<3) /* Not functional on metal 1 */
  300. #define SAD_CS_DSTA (1<<4)
  301. #define SAD_CS_DBDB (1<<5) /* Not functional on metal 1 */
  302. #define SAD_CS_DSTB (1<<6)
  303. #define SAD_CS_BIU (1<<7) /* Not functional on metal 1 */
  304. #define SAITR_TFS (1<<0)
  305. #define SAITR_RFS (1<<1)
  306. #define SAITR_TUR (1<<2)
  307. #define SAITR_ROR (1<<3)
  308. #define SAITR_CADT (1<<4)
  309. #define SAITR_SADR (1<<5)
  310. #define SAITR_RSTO (1<<6)
  311. #define SAITR_TDBDA (1<<8)
  312. #define SAITR_TDBDB (1<<9)
  313. #define SAITR_RDBDA (1<<10)
  314. #define SAITR_RDBDB (1<<11)
  315. /*
  316.  * General-Purpose I/O Interface
  317.  *
  318.  * Registers
  319.  *    PA_DDR GPIO Block A Data Direction
  320.  *    PA_DRR/PA_DWR GPIO Block A Data Value Register (read/write)
  321.  *    PA_SDR GPIO Block A Sleep Direction
  322.  *    PA_SSR GPIO Block A Sleep State
  323.  *    PB_DDR GPIO Block B Data Direction
  324.  *    PB_DRR/PB_DWR GPIO Block B Data Value Register (read/write)
  325.  *    PB_SDR GPIO Block B Sleep Direction
  326.  *    PB_SSR GPIO Block B Sleep State
  327.  *    PC_DDR GPIO Block C Data Direction
  328.  *    PC_DRR/PC_DWR GPIO Block C Data Value Register (read/write)
  329.  *    PC_SDR GPIO Block C Sleep Direction
  330.  *    PC_SSR GPIO Block C Sleep State
  331.  */
  332. #define _PA_DDR _SA1111( 0x1000 )
  333. #define _PA_DRR _SA1111( 0x1004 )
  334. #define _PA_DWR _SA1111( 0x1004 )
  335. #define _PA_SDR _SA1111( 0x1008 )
  336. #define _PA_SSR _SA1111( 0x100c )
  337. #define _PB_DDR _SA1111( 0x1010 )
  338. #define _PB_DRR _SA1111( 0x1014 )
  339. #define _PB_DWR _SA1111( 0x1014 )
  340. #define _PB_SDR _SA1111( 0x1018 )
  341. #define _PB_SSR _SA1111( 0x101c )
  342. #define _PC_DDR _SA1111( 0x1020 )
  343. #define _PC_DRR _SA1111( 0x1024 )
  344. #define _PC_DWR _SA1111( 0x1024 )
  345. #define _PC_SDR _SA1111( 0x1028 )
  346. #define _PC_SSR _SA1111( 0x102c )
  347. #if LANGUAGE == C
  348. #define PA_DDR __CCREG(0x1000)
  349. #define PA_DRR __CCREG(0x1004)
  350. #define PA_DWR __CCREG(0x1004)
  351. #define PA_SDR __CCREG(0x1008)
  352. #define PA_SSR __CCREG(0x100c)
  353. #define PB_DDR __CCREG(0x1010)
  354. #define PB_DRR __CCREG(0x1014)
  355. #define PB_DWR __CCREG(0x1014)
  356. #define PB_SDR __CCREG(0x1018)
  357. #define PB_SSR __CCREG(0x101c)
  358. #define PC_DDR __CCREG(0x1020)
  359. #define PC_DRR __CCREG(0x1024)
  360. #define PC_DWR __CCREG(0x1024)
  361. #define PC_SDR __CCREG(0x1028)
  362. #define PC_SSR __CCREG(0x102c)
  363. #endif  /* LANGUAGE == C */
  364. /*
  365.  * Interrupt Controller
  366.  *
  367.  * Registers
  368.  *    INTTEST0 Test register 0
  369.  *    INTTEST1 Test register 1
  370.  *    INTEN0 Interrupt Enable register 0
  371.  *    INTEN1 Interrupt Enable register 1
  372.  *    INTPOL0 Interrupt Polarity selection 0
  373.  *    INTPOL1 Interrupt Polarity selection 1
  374.  *    INTTSTSEL Interrupt source selection
  375.  *    INTSTATCLR0 Interrupt Status/Clear 0
  376.  *    INTSTATCLR1 Interrupt Status/Clear 1
  377.  *    INTSET0 Interrupt source set 0
  378.  *    INTSET1 Interrupt source set 1
  379.  *    WAKE_EN0 Wake-up source enable 0
  380.  *    WAKE_EN1 Wake-up source enable 1
  381.  *    WAKE_POL0 Wake-up polarity selection 0
  382.  *    WAKE_POL1 Wake-up polarity selection 1
  383.  */
  384. #define SA1111_INTTEST0 0x1600
  385. #define SA1111_INTTEST1 0x1604
  386. #define SA1111_INTEN0 0x1608
  387. #define SA1111_INTEN1 0x160c
  388. #define SA1111_INTPOL0 0x1610
  389. #define SA1111_INTPOL1 0x1614
  390. #define SA1111_INTTSTSEL 0x1618
  391. #define SA1111_INTSTATCLR0 0x161c
  392. #define SA1111_INTSTATCLR1 0x1620
  393. #define SA1111_INTSET0 0x1624
  394. #define SA1111_INTSET1 0x1628
  395. #define SA1111_WAKE_EN0 0x162c
  396. #define SA1111_WAKE_EN1 0x1630
  397. #define SA1111_WAKE_POL0 0x1634
  398. #define SA1111_WAKE_POL1 0x1638
  399. #define _INTTEST0 _SA1111(SA1111_INTTEST0)
  400. #define _INTTEST1 _SA1111(SA1111_INTTEST1)
  401. #define _INTEN0 _SA1111(SA1111_INTEN0)
  402. #define _INTEN1 _SA1111(SA1111_INTEN1)
  403. #define _INTPOL0 _SA1111(SA1111_INTPOL0)
  404. #define _INTPOL1 _SA1111(SA1111_INTPOL1)
  405. #define _INTTSTSEL _SA1111(SA1111_INTTSTSEL)
  406. #define _INTSTATCLR0 _SA1111(SA1111_INTSTATCLR0)
  407. #define _INTSTATCLR1 _SA1111(SA1111_INTSTATCLR1)
  408. #define _INTSET0 _SA1111(SA1111_INTSET0)
  409. #define _INTSET1 _SA1111(SA1111_INTSET1)
  410. #define _WAKE_EN0 _SA1111(SA1111_WAKE_EN0)
  411. #define _WAKE_EN1 _SA1111(SA1111_WAKE_EN1)
  412. #define _WAKE_POL0 _SA1111(SA1111_WAKE_POL0)
  413. #define _WAKE_POL1 _SA1111(SA1111_WAKE_POL1)
  414. #if LANGUAGE == C
  415. #define INTTEST0 __CCREG(SA1111_INTTEST0)
  416. #define INTTEST1 __CCREG(SA1111_INTTEST1)
  417. #define INTEN0 __CCREG(SA1111_INTEN0)
  418. #define INTEN1 __CCREG(SA1111_INTEN1)
  419. #define INTPOL0 __CCREG(SA1111_INTPOL0)
  420. #define INTPOL1 __CCREG(SA1111_INTPOL1)
  421. #define INTTSTSEL __CCREG(SA1111_INTTSTSEL)
  422. #define INTSTATCLR0 __CCREG(SA1111_INTSTATCLR0)
  423. #define INTSTATCLR1 __CCREG(SA1111_INTSTATCLR1)
  424. #define INTSET0 __CCREG(SA1111_INTSET0)
  425. #define INTSET1 __CCREG(SA1111_INTSET1)
  426. #define WAKE_EN0 __CCREG(SA1111_WAKE_EN0)
  427. #define WAKE_EN1 __CCREG(SA1111_WAKE_EN1)
  428. #define WAKE_POL0 __CCREG(SA1111_WAKE_POL0)
  429. #define WAKE_POL1 __CCREG(SA1111_WAKE_POL1)
  430. #endif  /* LANGUAGE == C */
  431. /*
  432.  * PS/2 Trackpad and Mouse Interfaces
  433.  *
  434.  * Registers   (prefix kbd applies to trackpad interface, mse to mouse)
  435.  *    KBDCR     Control Register
  436.  *    KBDSTAT       Status Register
  437.  *    KBDDATA       Transmit/Receive Data register
  438.  *    KBDCLKDIV     Clock Division Register
  439.  *    KBDPRECNT     Clock Precount Register
  440.  *    KBDTEST1      Test register 1
  441.  *    KBDTEST2      Test register 2
  442.  *    KBDTEST3      Test register 3
  443.  *    KBDTEST4      Test register 4
  444.  *    MSECR
  445.  *    MSESTAT
  446.  *    MSEDATA
  447.  *    MSECLKDIV
  448.  *    MSEPRECNT
  449.  *    MSETEST1
  450.  *    MSETEST2
  451.  *    MSETEST3
  452.  *    MSETEST4
  453.  *
  454.  */
  455. #define _KBD( x )   _SA1111( 0x0A00 )
  456. #define _MSE( x )   _SA1111( 0x0C00 )
  457. #define _KBDCR     _SA1111( 0x0A00 )
  458. #define _KBDSTAT    _SA1111( 0x0A04 )
  459. #define _KBDDATA    _SA1111( 0x0A08 )
  460. #define _KBDCLKDIV  _SA1111( 0x0A0C )
  461. #define _KBDPRECNT  _SA1111( 0x0A10 )
  462. #define _MSECR     _SA1111( 0x0C00 )
  463. #define _MSESTAT    _SA1111( 0x0C04 )
  464. #define _MSEDATA    _SA1111( 0x0C08 )
  465. #define _MSECLKDIV  _SA1111( 0x0C0C )
  466. #define _MSEPRECNT  _SA1111( 0x0C10 )
  467. #if ( LANGUAGE == C )
  468. #define KBDCR __CCREG(0x0a00)
  469. #define KBDSTAT __CCREG(0x0a04)
  470. #define KBDDATA __CCREG(0x0a08)
  471. #define KBDCLKDIV __CCREG(0x0a0c)
  472. #define KBDPRECNT __CCREG(0x0a10)
  473. #define MSECR __CCREG(0x0c00)
  474. #define MSESTAT __CCREG(0x0c04)
  475. #define MSEDATA __CCREG(0x0c08)
  476. #define MSECLKDIV __CCREG(0x0c0c)
  477. #define MSEPRECNT __CCREG(0x0c10)
  478. #define KBDCR_ENA        0x08
  479. #define KBDCR_FKD        0x02
  480. #define KBDCR_FKC        0x01
  481. #define KBDSTAT_TXE      0x80
  482. #define KBDSTAT_TXB      0x40
  483. #define KBDSTAT_RXF      0x20
  484. #define KBDSTAT_RXB      0x10
  485. #define KBDSTAT_ENA      0x08
  486. #define KBDSTAT_RXP      0x04
  487. #define KBDSTAT_KBD      0x02
  488. #define KBDSTAT_KBC      0x01
  489. #define KBDCLKDIV_DivVal     Fld(4,0)
  490. #define MSECR_ENA        0x08
  491. #define MSECR_FKD        0x02
  492. #define MSECR_FKC        0x01
  493. #define MSESTAT_TXE      0x80
  494. #define MSESTAT_TXB      0x40
  495. #define MSESTAT_RXF      0x20
  496. #define MSESTAT_RXB      0x10
  497. #define MSESTAT_ENA      0x08
  498. #define MSESTAT_RXP      0x04
  499. #define MSESTAT_MSD      0x02
  500. #define MSESTAT_MSC      0x01
  501. #define MSECLKDIV_DivVal     Fld(4,0)
  502. #define KBDTEST1_CD      0x80
  503. #define KBDTEST1_RC1         0x40
  504. #define KBDTEST1_MC      0x20
  505. #define KBDTEST1_C       Fld(2,3)
  506. #define KBDTEST1_T2      0x40
  507. #define KBDTEST1_T1      0x20
  508. #define KBDTEST1_T0      0x10
  509. #define KBDTEST2_TICBnRES    0x08
  510. #define KBDTEST2_RKC         0x04
  511. #define KBDTEST2_RKD         0x02
  512. #define KBDTEST2_SEL         0x01
  513. #define KBDTEST3_ms_16       0x80
  514. #define KBDTEST3_us_64       0x40
  515. #define KBDTEST3_us_16       0x20
  516. #define KBDTEST3_DIV8        0x10
  517. #define KBDTEST3_DIn         0x08
  518. #define KBDTEST3_CIn         0x04
  519. #define KBDTEST3_KD      0x02
  520. #define KBDTEST3_KC      0x01
  521. #define KBDTEST4_BC12        0x80
  522. #define KBDTEST4_BC11        0x40
  523. #define KBDTEST4_TRES        0x20
  524. #define KBDTEST4_CLKOE       0x10
  525. #define KBDTEST4_CRES        0x08
  526. #define KBDTEST4_RXB         0x04
  527. #define KBDTEST4_TXB         0x02
  528. #define KBDTEST4_SRX         0x01
  529. #define MSETEST1_CD      0x80
  530. #define MSETEST1_RC1         0x40
  531. #define MSETEST1_MC      0x20
  532. #define MSETEST1_C       Fld(2,3)
  533. #define MSETEST1_T2      0x40
  534. #define MSETEST1_T1      0x20
  535. #define MSETEST1_T0      0x10
  536. #define MSETEST2_TICBnRES    0x08
  537. #define MSETEST2_RKC         0x04
  538. #define MSETEST2_RKD         0x02
  539. #define MSETEST2_SEL         0x01
  540. #define MSETEST3_ms_16       0x80
  541. #define MSETEST3_us_64       0x40
  542. #define MSETEST3_us_16       0x20
  543. #define MSETEST3_DIV8        0x10
  544. #define MSETEST3_DIn         0x08
  545. #define MSETEST3_CIn         0x04
  546. #define MSETEST3_KD      0x02
  547. #define MSETEST3_KC      0x01
  548. #define MSETEST4_BC12        0x80
  549. #define MSETEST4_BC11        0x40
  550. #define MSETEST4_TRES        0x20
  551. #define MSETEST4_CLKOE       0x10
  552. #define MSETEST4_CRES        0x08
  553. #define MSETEST4_RXB         0x04
  554. #define MSETEST4_TXB         0x02
  555. #define MSETEST4_SRX         0x01
  556. #endif  /* LANGUAGE == C */
  557. /*
  558.  * PCMCIA Interface
  559.  *
  560.  * Registers
  561.  *    PCSR Status Register
  562.  *    PCCR Control Register
  563.  *    PCSSR Sleep State Register
  564.  */
  565. #define _PCCR _SA1111( 0x1800 )
  566. #define _PCSSR _SA1111( 0x1804 )
  567. #define _PCSR _SA1111( 0x1808 )
  568. #if LANGUAGE == C
  569. #define PCCR __CCREG(0x1800)
  570. #define PCSSR __CCREG(0x1804)
  571. #define PCSR __CCREG(0x1808)
  572. #endif  /* LANGUAGE == C */
  573. #define PCSR_S0_READY (1<<0)
  574. #define PCSR_S1_READY (1<<1)
  575. #define PCSR_S0_DETECT (1<<2)
  576. #define PCSR_S1_DETECT (1<<3)
  577. #define PCSR_S0_VS1 (1<<4)
  578. #define PCSR_S0_VS2 (1<<5)
  579. #define PCSR_S1_VS1 (1<<6)
  580. #define PCSR_S1_VS2 (1<<7)
  581. #define PCSR_S0_WP (1<<8)
  582. #define PCSR_S1_WP (1<<9)
  583. #define PCSR_S0_BVD1 (1<<10)
  584. #define PCSR_S0_BVD2 (1<<11)
  585. #define PCSR_S1_BVD1 (1<<12)
  586. #define PCSR_S1_BVD2 (1<<13)
  587. #define PCCR_S0_RST (1<<0)
  588. #define PCCR_S1_RST (1<<1)
  589. #define PCCR_S0_FLT (1<<2)
  590. #define PCCR_S1_FLT (1<<3)
  591. #define PCCR_S0_PWAITEN (1<<4)
  592. #define PCCR_S1_PWAITEN (1<<5)
  593. #define PCCR_S0_PSE (1<<6)
  594. #define PCCR_S1_PSE (1<<7)
  595. #define PCSSR_S0_SLEEP (1<<0)
  596. #define PCSSR_S1_SLEEP (1<<1)
  597. #endif  /* _ASM_ARCH_SA1111 */