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

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/include/asm-arm/arch-pxa/cerf.h
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License version 2 as
  6.  *  published by the Free Software Foundation.
  7.  */
  8. /*
  9.  * Add CerfBoard Specifics here...
  10.  */
  11. /*
  12.  * Memory sizes
  13.  */
  14. #define CERF_RAM_BASE 0xa0000000
  15. #ifdef CONFIG_PXA_CERF_RAM_128MB
  16. #define CERF_RAM_SIZE 128*1024*1024
  17. #elif defined (CONFIG_PXA_CERF_RAM_64MB)
  18. #define CERF_RAM_SIZE 64*1024*1024
  19. #elif defined (CONFIG_PXA_CERF_RAM_32MB)
  20. #define CERF_RAM_SIZE 32*1024*1024
  21. #elif defined (CONFIG_PXA_CERF_RAM_16MB)
  22. #define CERF_RAM_SIZE 16*1024*1024
  23. #endif
  24. /*
  25.  * CS memory timing via Static Memory Control Register (MSC0-2)
  26.  */
  27. #define MSC_CS(cs,val) ((val)<<((cs&1)<<4))
  28. #define MSC_RBUFF_SHIFT 15 
  29. #define MSC_RBUFF_SLOW (0)
  30. #define MSC_RBUFF_FAST (1)
  31. #define MSC_RBUFF(x) ((x)<<MSC_RBUFF_SHIFT)
  32. #define MSC_RRR_SHIFT 12
  33. #define MSC_RRR(x) ((x)<<MSC_RRR_SHIFT)
  34. #define MSC_RDN_SHIFT 8
  35. #define MSC_RDN(x) ((x)<<MSC_RDN_SHIFT)
  36. #define MSC_RDF_SHIFT 4
  37. #define MSC_RDF(x) ((x)<<MSC_RDF_SHIFT)
  38. #define MSC_RBW_SHIFT 3
  39. #define MSC_RBW(x) ((x)<<MSC_RBW_SHIFT)
  40. #define MSC_RT_SHIFT  0
  41. #define MSC_RT(x) ((x)<<MSC_RT_SHIFT)
  42. /*
  43.  * IO Pins for devices
  44.  */
  45. #define CERF_FLASH_BASE 0xe8000000
  46. #define CERF_FLASH_SIZE 0x02000000
  47. #define CERF_FLASH_PHYS PXA_CS0_PHYS
  48. #define CERF_ETH_BASE 0xf0000000
  49. #define CERF_ETH_SIZE 0x00100000
  50. #define CERF_ETH_PHYS PXA_CS1_PHYS
  51. #define CERF_BT_BASE 0xf2000000
  52. #define CERF_BT_SIZE 0x00100000
  53. #define CERF_BT_PHYS PXA_CS2_PHYS
  54. #define CERF_SERIAL_BASE 0xf3000000
  55. #define CERF_SERIAL_SIZE 0x00100000
  56. #define CERF_SERIAL_PHYS PXA_CS3_PHYS
  57. #define CERF_CPLD_BASE 0xf1000000
  58. #define CERF_CPLD_SIZE 0x00100000
  59. #define CERF_CPLD_PHYS PXA_CS4_PHYS
  60. #define CERF_PDA_CPLD_WRCLRINT (0x0)
  61. #define CERF_PDA_CPLD_BRIGHTNESS (0x2)
  62. #define CERF_PDA_CPLD_KEYPAD_A (0x6)
  63. #define CERF_PDA_CPLD_BATTFAULT (0x8)
  64. #define CERF_PDA_CPLD_KEYPAD_B (0xa)
  65. #define CERF_PDA_CPLD_SOUND_ENA (0xc)
  66. #define CERF_PDA_SOUND_ENABLE 0x1
  67. #define CERF_PDA_DEFAULT_BRIGHTNESS 0x9
  68. /*
  69.  * Access functions (registers are 4-bit wide)
  70.  */
  71. #define CERF_PDA_CPLD CERF_CPLD_BASE
  72. #define CERF_PDA_CPLD_Get(x, y)      (*((char*)(CERF_PDA_CPLD + (x))) & (y))
  73. #define CERF_PDA_CPLD_Set(x, y, z)   (*((char*)(CERF_PDA_CPLD + (x))) = (*((char*)(CERF_PDA_CPLD + (x))) & ~(z)) | (y))
  74. #define CERF_PDA_CPLD_UnSet(x, y, z) (*((char*)(CERF_PDA_CPLD + (x))) = (*((char*)(CERF_PDA_CPLD + (x))) & ~(z)) & ~(y))
  75. /* 
  76.  * IO and IRQ settings for cs8900 ethernet chip
  77.  */
  78. #define CERF_ETH_IO CERF_ETH_BASE
  79. #define CERF_ETH_IRQ  GPIO_2_80_TO_IRQ(21)
  80. /*
  81.  * We only have one LED on the XScale CerfPDA so only the
  82.  * time or idle should ever be selected.
  83.  */
  84. #define CERF_HEARTBEAT_LED 0x1
  85. #define CERF_SYS_BUSY_LED  0x2
  86. #define CERF_HEARTBEAT_LED_GPIO 16 // GPIO 4
  87. #define CERF_SYS_BUSY_LED_GPIO 16 // GPIO 4
  88. #define CERF_HEARTBEAT_LED_ON  (GPSR0 = CERF_HEARTBEAT_LED_GPIO)
  89. #define CERF_HEARTBEAT_LED_OFF (GPCR0 = CERF_HEARTBEAT_LED_GPIO)
  90. #define CERF_SYS_BUSY_LED_ON  (GPSR0 = CERF_SYS_BUSY_LED_GPIO)
  91. #define CERF_SYS_BUSY_LED_OFF (GPCR0 = CERF_SYS_BUSY_LED_GPIO)
  92. /*
  93.  * UCB 1400 gpio
  94.  */
  95. #define CERF_GPIO_UCB1400_IRQ 32
  96. #define UCB_IO_0                (1 << 0)
  97. #define UCB_IO_1                (1 << 1)
  98. #define UCB_IO_2                (1 << 2)
  99. #define UCB_IO_3                (1 << 3)
  100. #define UCB_IO_4                (1 << 4)
  101. #define UCB_IO_5                (1 << 5)
  102. #define UCB_IO_6                (1 << 6)
  103. #define UCB_IO_7                (1 << 7)
  104. #define UCB_IO_8                (1 << 8)
  105. #define UCB_IO_9                (1 << 9)
  106. #define UCB1400_GPIO_CONT_CS      UCB_IO_0
  107. #define UCB1400_GPIO_CONT_DOWN    UCB_IO_1
  108. #define UCB1400_GPIO_CONT_INC     UCB_IO_2
  109. #define UCB1400_GPIO_CONT_ENA     UCB_IO_3
  110. #define UCB1400_GPIO_LCD_RESET    UCB_IO_4
  111. #define UCB1400_GPIO_IRDA_ENABLE  UCB_IO_5
  112. #define UCB1400_GPIO_BT_ENABLE    UCB_IO_6
  113. #define UCB1400_GPIO_TEST_P1      UCB_IO_7
  114. #define UCB1400_GPIO_TEST_P2      UCB_IO_8
  115. #define UCB1400_GPIO_TEST_P3      UCB_IO_9
  116. /*
  117.  * IRQ for devices
  118.  */
  119. #define UCB1400_IRQ(x)          (NR_IRQS + 1 + (x))
  120. #define IRQ_UCB1400_IO0         UCB1400_IRQ(0)
  121. #define IRQ_UCB1400_IO1         UCB1400_IRQ(1)
  122. #define IRQ_UCB1400_IO2         UCB1400_IRQ(2)
  123. #define IRQ_UCB1400_IO3         UCB1400_IRQ(3)
  124. #define IRQ_UCB1400_IO4         UCB1400_IRQ(4)
  125. #define IRQ_UCB1400_IO5         UCB1400_IRQ(5)
  126. #define IRQ_UCB1400_IO6         UCB1400_IRQ(6)
  127. #define IRQ_UCB1400_IO7         UCB1400_IRQ(7)
  128. #define IRQ_UCB1400_IO8         UCB1400_IRQ(8)
  129. #define IRQ_UCB1400_IO9         UCB1400_IRQ(9)
  130. #define IRQ_UCB1400_CONT_CS     IRQ_UCB1400_IO0
  131. #define IRQ_UCB1400_CONT_DOWN   IRQ_UCB1400_IO1
  132. #define IRQ_UCB1400_CONT_INC    IRQ_UCB1400_IO2
  133. #define IRQ_UCB1400_CONT_ENA    IRQ_UCB1400_IO3
  134. #define IRQ_UCB1400_LCD_RESET   IRQ_UCB1400_IO4
  135. #define IRQ_UCB1400_IRDA_ENABLE IRQ_UCB1400_IO5
  136. #define IRQ_UCB1400_BT_ENABLE   IRQ_UCB1400_IO6
  137. #define IRQ_UCB1400_TEST_P1     IRQ_UCB1400_IO7
  138. #define IRQ_UCB1400_TEST_P2     IRQ_UCB1400_IO8
  139. #define IRQ_UCB1400_TEST_P3     IRQ_UCB1400_IO9