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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * BK Id: SCCS/s.keylargo.h 1.17 01/20/02 23:53:12 benh
  3.  */
  4. /*
  5.  * keylargo.h: definitions for using the "KeyLargo" I/O controller chip.
  6.  *
  7.  */
  8. /* "Pangea" chipset has keylargo device-id 0x25 while core99
  9.  * has device-id 0x22. The rev. of the pangea one is 0, so we
  10.  * fake an artificial rev. in keylargo_rev by oring 0x100
  11.  */
  12. #define KL_PANGEA_REV 0x100
  13. /* offset from base for feature control registers */
  14. #define KEYLARGO_MBCR 0x34 /* Media bay control/status */
  15. #define KEYLARGO_FCR0 0x38
  16. #define KEYLARGO_FCR1 0x3c
  17. #define KEYLARGO_FCR2 0x40
  18. #define KEYLARGO_FCR3 0x44
  19. #define KEYLARGO_FCR4 0x48
  20. /* GPIO registers */
  21. #define KEYLARGO_GPIO_LEVELS0 0x50
  22. #define KEYLARGO_GPIO_LEVELS1 0x54
  23. #define KEYLARGO_GPIO_EXTINT_0 0x58
  24. #define KEYLARGO_GPIO_EXTINT_CNT 18
  25. #define KEYLARGO_GPIO_0 0x6A
  26. #define KEYLARGO_GPIO_CNT 17
  27. #define KEYLARGO_GPIO_EXTINT_DUAL_EDGE 0x80
  28. #define KEYLARGO_GPIO_OUTPUT_ENABLE 0x04
  29. #define KEYLARGO_GPIO_OUTOUT_DATA 0x01
  30. #define KEYLARGO_GPIO_INPUT_DATA 0x02
  31. /* Specific GPIO regs */
  32. #define KL_GPIO_MODEM_RESET (KEYLARGO_GPIO_0+0x03)
  33. #define KL_GPIO_MODEM_POWER (KEYLARGO_GPIO_0+0x02) /* Pangea */
  34. #define KL_GPIO_SOUND_POWER (KEYLARGO_GPIO_0+0x05)
  35. /* Hrm... this one is only to be used on Pismo. It seeem to also
  36.  * control the timebase enable on other machines. Still to be
  37.  * experimented... --BenH.
  38.  */
  39. #define KL_GPIO_FW_CABLE_POWER (KEYLARGO_GPIO_0+0x09)
  40. #define KL_GPIO_TB_ENABLE (KEYLARGO_GPIO_0+0x09)
  41. #define KL_GPIO_ETH_PHY_RESET (KEYLARGO_GPIO_0+0x10)
  42. #define KL_GPIO_EXTINT_CPU1 (KEYLARGO_GPIO_0+0x0a)
  43. #define KL_GPIO_EXTINT_CPU1_ASSERT 0x04
  44. #define KL_GPIO_EXTINT_CPU1_RELEASE 0x38
  45. #define KL_GPIO_RESET_CPU0 (KEYLARGO_GPIO_EXTINT_0+0x03)
  46. #define KL_GPIO_RESET_CPU1 (KEYLARGO_GPIO_EXTINT_0+0x04)
  47. #define KL_GPIO_RESET_CPU2 (KEYLARGO_GPIO_EXTINT_0+0x0f)
  48. #define KL_GPIO_RESET_CPU3 (KEYLARGO_GPIO_EXTINT_0+0x10)
  49. #define KL_GPIO_PMU_MESSAGE_IRQ (KEYLARGO_GPIO_EXTINT_0+0x09)
  50. #define KL_GPIO_PMU_MESSAGE_BIT KEYLARGO_GPIO_INPUT_DATA
  51. #define KL_GPIO_MEDIABAY_IRQ (KEYLARGO_GPIO_EXTINT_0+0x0e)
  52. #define KL_GPIO_AIRPORT_0 (KEYLARGO_GPIO_EXTINT_0+0x0a)
  53. #define KL_GPIO_AIRPORT_1 (KEYLARGO_GPIO_EXTINT_0+0x0d)
  54. #define KL_GPIO_AIRPORT_2 (KEYLARGO_GPIO_0+0x0d)
  55. #define KL_GPIO_AIRPORT_3 (KEYLARGO_GPIO_0+0x0e)
  56. #define KL_GPIO_AIRPORT_4 (KEYLARGO_GPIO_0+0x0f)
  57. /*
  58.  * Bits in feature control register
  59.  */
  60. #define KL_MBCR_MB0_PCI_ENABLE 0x00000800 /* exist ? */
  61. #define KL_MBCR_MB0_IDE_ENABLE 0x00001000
  62. #define KL_MBCR_MB0_FLOPPY_ENABLE 0x00002000 /* exist ? */
  63. #define KL_MBCR_MB0_SOUND_ENABLE 0x00004000 /* hrm... */
  64. #define KL_MBCR_MB0_DEV_MASK 0x00007800
  65. #define KL_MBCR_MB0_DEV_POWER 0x00000400
  66. #define KL_MBCR_MB0_DEV_RESET 0x00000200
  67. #define KL_MBCR_MB0_ENABLE 0x00000100
  68. #define KL_MBCR_MB1_PCI_ENABLE 0x08000000 /* exist ? */
  69. #define KL_MBCR_MB1_IDE_ENABLE 0x10000000
  70. #define KL_MBCR_MB1_FLOPPY_ENABLE 0x20000000 /* exist ? */
  71. #define KL_MBCR_MB1_SOUND_ENABLE 0x40000000 /* hrm... */
  72. #define KL_MBCR_MB1_DEV_MASK 0x78000000
  73. #define KL_MBCR_MB1_DEV_POWER 0x04000000
  74. #define KL_MBCR_MB1_DEV_RESET 0x02000000
  75. #define KL_MBCR_MB1_ENABLE 0x01000000
  76. #define KL0_SCC_B_INTF_ENABLE 0x00000001
  77. #define KL0_SCC_A_INTF_ENABLE 0x00000002
  78. #define KL0_SCC_SLOWPCLK 0x00000004
  79. #define KL0_SCC_RESET 0x00000008
  80. #define KL0_SCCA_ENABLE 0x00000010
  81. #define KL0_SCCB_ENABLE 0x00000020
  82. #define KL0_SCC_CELL_ENABLE 0x00000040
  83. #define KL0_IRDA_HIGH_BAND 0x00000100
  84. #define KL0_IRDA_SOURCE2_SEL 0x00000200
  85. #define KL0_IRDA_SOURCE1_SEL 0x00000400
  86. #define KL0_IRDA_RESET 0x00000800
  87. #define KL0_IRDA_DEFAULT1 0x00001000
  88. #define KL0_IRDA_DEFAULT0 0x00002000
  89. #define KL0_IRDA_FAST_CONNECT 0x00004000
  90. #define KL0_IRDA_ENABLE 0x00008000
  91. #define KL0_IRDA_CLK32_ENABLE 0x00010000
  92. #define KL0_IRDA_CLK19_ENABLE 0x00020000
  93. #define KL0_USB0_PAD_SUSPEND0 0x00040000
  94. #define KL0_USB0_PAD_SUSPEND1 0x00080000
  95. #define KL0_USB0_CELL_ENABLE 0x00100000
  96. #define KL0_USB1_PAD_SUSPEND0 0x00400000
  97. #define KL0_USB1_PAD_SUSPEND1 0x00800000
  98. #define KL0_USB1_CELL_ENABLE 0x01000000
  99. #define KL0_USB_REF_SUSPEND 0x10000000
  100. #define KL0_SERIAL_ENABLE (KL0_SCC_B_INTF_ENABLE | 
  101. KL0_SCC_SLOWPCLK | 
  102. KL0_SCC_CELL_ENABLE | KL0_SCCA_ENABLE)
  103. #define KL1_AUDIO_SEL_22MCLK 0x00000002
  104. #define KL1_AUDIO_CLK_ENABLE_BIT 0x00000008
  105. #define KL1_AUDIO_CLK_OUT_ENABLE 0x00000020 /* Burgundy only ? */
  106. #define KL1_AUDIO_CELL_ENABLE 0x00000040
  107. #define KL1_AUDIO_CHOOSE 0x00000080 /* Burgundy only ? */
  108. #define KL1_I2S0_CELL_ENABLE 0x00000400
  109. #define KL1_I2S0_CLK_ENABLE_BIT 0x00001000
  110. #define KL1_I2S0_ENABLE 0x00002000
  111. #define KL1_I2S1_CELL_ENABLE 0x00020000
  112. #define KL1_I2S1_CLK_ENABLE_BIT 0x00080000
  113. #define KL1_I2S1_ENABLE 0x00100000
  114. #define KL1_EIDE0_ENABLE 0x00800000
  115. #define KL1_EIDE0_RESET_N 0x01000000
  116. #define KL1_EIDE1_ENABLE 0x04000000
  117. #define KL1_EIDE1_RESET_N 0x08000000
  118. #define KL1_UIDE_ENABLE 0x20000000
  119. #define KL1_UIDE_RESET_N 0x40000000
  120. #define KL2_IOBUS_ENABLE 0x00000002
  121. #define KL2_SLEEP_STATE_BIT 0x00000100
  122. #define KL2_MPIC_ENABLE 0x00020000
  123. #define KL2_ALT_DATA_OUT 0x02000000
  124. #define KL2_MEM_IS_BIG 0x04000000
  125. #define KL2_CARDSEL_16 0x08000000
  126. #define KL3_SHUTDOWN_PLL_TOTAL 0x00000001
  127. #define KL3_SHUTDOWN_PLLKW6 0x00000002
  128. #define KL3_SHUTDOWN_PLLKW4 0x00000004
  129. #define KL3_SHUTDOWN_PLLKW35 0x00000008
  130. #define KL3_SHUTDOWN_PLLKW12 0x00000010
  131. #define KL3_PLL_RESET 0x00000020
  132. #define KL3_SHUTDOWN_PLL2X 0x00000080
  133. #define KL3_CLK66_ENABLE 0x00000100
  134. #define KL3_CLK49_ENABLE 0x00000200
  135. #define KL3_CLK45_ENABLE 0x00000400
  136. #define KL3_CLK31_ENABLE 0x00000800
  137. #define KL3_TIMER_CLK18_ENABLE 0x00001000
  138. #define KL3_I2S1_CLK18_ENABLE 0x00002000
  139. #define KL3_I2S0_CLK18_ENABLE 0x00004000
  140. #define KL3_VIA_CLK16_ENABLE 0x00008000
  141. #define KL3_STOPPING33_ENABLED 0x00080000
  142. /* Port 0,1 : bus 0, port 2,3 : bus 1 */
  143. #define KL4_PORT_WAKEUP_ENABLE(p) (0x00000008 << ((p)<<3))
  144. #define KL4_PORT_RESUME_WAKE_EN(p) (0x00000004 << ((p)<<3))
  145. #define KL4_PORT_CONNECT_WAKE_EN(p) (0x00000002 << ((p)<<3))
  146. #define KL4_PORT_DISCONNECT_WAKE_EN(p) (0x00000001 << ((p)<<3))
  147. #define KL4_PORT_RESUME_STAT(p) (0x00000040 << ((p)<<3))
  148. #define KL4_PORT_CONNECT_STAT(p) (0x00000020 << ((p)<<3))
  149. #define KL4_PORT_DISCONNECT_STAT(p) (0x00000010 << ((p)<<3))