56 lines
1.3 KiB
C
56 lines
1.3 KiB
C
/*
|
|
*
|
|
*/
|
|
#ifndef _MIPS_EV96100_H
|
|
#define _MIPS_EV96100_H
|
|
|
|
#include <asm/addrspace.h>
|
|
|
|
/*
|
|
* GT64120 config space base address
|
|
*/
|
|
#define GT64120_BASE (KSEG1ADDR(0x14000000))
|
|
#define MIPS_GT_BASE GT64120_BASE
|
|
|
|
/*
|
|
* PCI Bus allocation
|
|
*/
|
|
#define GT_PCI_MEM_BASE 0x12000000UL
|
|
#define GT_PCI_MEM_SIZE 0x02000000UL
|
|
#define GT_PCI_IO_BASE 0x10000000UL
|
|
#define GT_PCI_IO_SIZE 0x02000000UL
|
|
#define GT_ISA_IO_BASE PCI_IO_BASE
|
|
|
|
/*
|
|
* Duart I/O ports.
|
|
*/
|
|
#define EV96100_COM1_BASE_ADDR (0xBD000000 + 0x20)
|
|
#define EV96100_COM2_BASE_ADDR (0xBD000000 + 0x00)
|
|
|
|
|
|
/*
|
|
* EV96100 interrupt controller register base.
|
|
*/
|
|
#define EV96100_ICTRL_REGS_BASE (KSEG1ADDR(0x1f000000))
|
|
|
|
/*
|
|
* EV96100 UART register base.
|
|
*/
|
|
#define EV96100_UART0_REGS_BASE EV96100_COM1_BASE_ADDR
|
|
#define EV96100_UART1_REGS_BASE EV96100_COM2_BASE_ADDR
|
|
#define EV96100_BASE_BAUD ( 3686400 / 16 )
|
|
|
|
|
|
/*
|
|
* Because of an error/peculiarity in the Galileo chip, we need to swap the
|
|
* bytes when running bigendian.
|
|
*/
|
|
#define __GT_READ(ofs) \
|
|
(*(volatile u32 *)(GT64120_BASE+(ofs)))
|
|
#define __GT_WRITE(ofs, data) \
|
|
do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
|
|
#define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
|
|
#define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
|
|
|
|
#endif /* !(_MIPS_EV96100_H) */
|