ev96100.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. *
  3. */
  4. #ifndef _MIPS_EV96100_H
  5. #define _MIPS_EV96100_H
  6. #include <asm/addrspace.h>
  7. /*
  8. * GT64120 config space base address
  9. */
  10. #define GT64120_BASE (KSEG1ADDR(0x14000000))
  11. #define MIPS_GT_BASE GT64120_BASE
  12. /*
  13. * PCI Bus allocation
  14. */
  15. #define GT_PCI_MEM_BASE 0x12000000UL
  16. #define GT_PCI_MEM_SIZE 0x02000000UL
  17. #define GT_PCI_IO_BASE 0x10000000UL
  18. #define GT_PCI_IO_SIZE 0x02000000UL
  19. #define GT_ISA_IO_BASE PCI_IO_BASE
  20. /*
  21. * Duart I/O ports.
  22. */
  23. #define EV96100_COM1_BASE_ADDR (0xBD000000 + 0x20)
  24. #define EV96100_COM2_BASE_ADDR (0xBD000000 + 0x00)
  25. /*
  26. * EV96100 interrupt controller register base.
  27. */
  28. #define EV96100_ICTRL_REGS_BASE (KSEG1ADDR(0x1f000000))
  29. /*
  30. * EV96100 UART register base.
  31. */
  32. #define EV96100_UART0_REGS_BASE EV96100_COM1_BASE_ADDR
  33. #define EV96100_UART1_REGS_BASE EV96100_COM2_BASE_ADDR
  34. #define EV96100_BASE_BAUD ( 3686400 / 16 )
  35. /*
  36. * Because of an error/peculiarity in the Galileo chip, we need to swap the
  37. * bytes when running bigendian.
  38. */
  39. #define __GT_READ(ofs) \
  40. (*(volatile u32 *)(GT64120_BASE+(ofs)))
  41. #define __GT_WRITE(ofs, data) \
  42. do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
  43. #define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
  44. #define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
  45. #endif /* !(_MIPS_EV96100_H) */