db1200.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /*
  2. * AMD Alchemy DBAu1200 Reference Board
  3. * Board register defines.
  4. *
  5. * ########################################################################
  6. *
  7. * This program is free software; you can distribute it and/or modify it
  8. * under the terms of the GNU General Public License (Version 2) as
  9. * published by the Free Software Foundation.
  10. *
  11. * This program is distributed in the hope it will be useful, but WITHOUT
  12. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  14. * for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License along
  17. * with this program; if not, write to the Free Software Foundation, Inc.,
  18. * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
  19. *
  20. * ########################################################################
  21. *
  22. *
  23. */
  24. #ifndef __ASM_DB1200_H
  25. #define __ASM_DB1200_H
  26. #include <linux/types.h>
  27. #include <asm/mach-au1x00/au1xxx_psc.h>
  28. #define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
  29. #define DBDMA_AC97_RX_CHAN DSCR_CMD0_PSC1_RX
  30. #define DBDMA_I2S_TX_CHAN DSCR_CMD0_PSC1_TX
  31. #define DBDMA_I2S_RX_CHAN DSCR_CMD0_PSC1_RX
  32. /*
  33. * SPI and SMB are muxed on the DBAu1200 board.
  34. * Refer to board documentation.
  35. */
  36. #define SPI_PSC_BASE PSC0_BASE_ADDR
  37. #define SMBUS_PSC_BASE PSC0_BASE_ADDR
  38. /*
  39. * AC'97 and I2S are muxed on the DBAu1200 board.
  40. * Refer to board documentation.
  41. */
  42. #define AC97_PSC_BASE PSC1_BASE_ADDR
  43. #define I2S_PSC_BASE PSC1_BASE_ADDR
  44. /* Bit positions for the different interrupt sources */
  45. #define BCSR_INT_IDE 0x0001
  46. #define BCSR_INT_ETH 0x0002
  47. #define BCSR_INT_PC0 0x0004
  48. #define BCSR_INT_PC0STSCHG 0x0008
  49. #define BCSR_INT_PC1 0x0010
  50. #define BCSR_INT_PC1STSCHG 0x0020
  51. #define BCSR_INT_DC 0x0040
  52. #define BCSR_INT_FLASHBUSY 0x0080
  53. #define BCSR_INT_PC0INSERT 0x0100
  54. #define BCSR_INT_PC0EJECT 0x0200
  55. #define BCSR_INT_PC1INSERT 0x0400
  56. #define BCSR_INT_PC1EJECT 0x0800
  57. #define BCSR_INT_SD0INSERT 0x1000
  58. #define BCSR_INT_SD0EJECT 0x2000
  59. #define SMC91C111_PHYS_ADDR 0x19000300
  60. #define SMC91C111_INT DB1200_ETH_INT
  61. #define IDE_PHYS_ADDR 0x18800000
  62. #define IDE_REG_SHIFT 5
  63. #define IDE_PHYS_LEN (16 << IDE_REG_SHIFT)
  64. #define IDE_INT DB1200_IDE_INT
  65. #define IDE_DDMA_REQ DSCR_CMD0_DMA_REQ1
  66. #define IDE_RQSIZE 128
  67. #define NAND_PHYS_ADDR 0x20000000
  68. /*
  69. * External Interrupts for DBAu1200 as of 8/6/2004.
  70. * Bit positions in the CPLD registers can be calculated by taking
  71. * the interrupt define and subtracting the DB1200_INT_BEGIN value.
  72. *
  73. * Example: IDE bis pos is = 64 - 64
  74. * ETH bit pos is = 65 - 64
  75. */
  76. enum external_pb1200_ints {
  77. DB1200_INT_BEGIN = AU1000_MAX_INTR + 1,
  78. DB1200_IDE_INT = DB1200_INT_BEGIN,
  79. DB1200_ETH_INT,
  80. DB1200_PC0_INT,
  81. DB1200_PC0_STSCHG_INT,
  82. DB1200_PC1_INT,
  83. DB1200_PC1_STSCHG_INT,
  84. DB1200_DC_INT,
  85. DB1200_FLASHBUSY_INT,
  86. DB1200_PC0_INSERT_INT,
  87. DB1200_PC0_EJECT_INT,
  88. DB1200_PC1_INSERT_INT,
  89. DB1200_PC1_EJECT_INT,
  90. DB1200_SD0_INSERT_INT,
  91. DB1200_SD0_EJECT_INT,
  92. DB1200_INT_END = DB1200_INT_BEGIN + 15,
  93. };
  94. /*
  95. * DBAu1200 specific PCMCIA defines for drivers/pcmcia/au1000_db1x00.c
  96. */
  97. #define PCMCIA_MAX_SOCK 1
  98. #define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
  99. /* VPP/VCC */
  100. #define SET_VCC_VPP(VCC, VPP, SLOT) \
  101. ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
  102. #define BOARD_PC0_INT DB1200_PC0_INT
  103. #define BOARD_PC1_INT DB1200_PC1_INT
  104. #define BOARD_CARD_INSERTED(SOCKET) (bcsr_read(BCSR_SIGSTAT) & (1 << (8 + (2 * SOCKET))))
  105. /* NAND chip select */
  106. #define NAND_CS 1
  107. #endif /* __ASM_DB1200_H */