soc3210.h 6.2 KB
Newer Older
B
Bernard Xiong 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
#ifndef __SOC3210_H__
#define __SOC3210_H__

#include "../common/mipsregs.h"

/* registers */
#define __REG8(addr)		*((volatile unsigned char *)(addr))
#define __REG16(addr)		*((volatile unsigned short *)(addr))
#define __REG32(addr)		*((volatile unsigned int *)(addr))

#define EMI_BASE			0xBF000000
#define NN_BASE				0xBF000040
#define LCD_BASE			0xBF001000
#define HSB_MISC_BASE		0xBF003200
#define SPI_BASE			0xBF004000
#define PS2_BASE			0xBF004040
#define UART0_BASE			0xBF004080
#define UART1_BASE			0xBF004090
#define I2C_BASE			0xBF0040D0
#define LPB_MISC_BASE		0xBF004100
#define AC97_BASE			0xBF004200
#define AC97_DMA_BASE		0xBF004280
#define CAN1_BASE			0xBF004300
#define CAN0_BASE			0xBF004400
#define MAC0_BASE			0xBF005200
#define MAC1_BASE			0xBF005300

/* LCD registers */
#define LCD_CTRL			__REG32(LCD_BASE + 0x000)
#define LCD_STAT			__REG32(LCD_BASE + 0x004)
#define LCD_HTIM			__REG32(LCD_BASE + 0x008)
#define LCD_VTIM			__REG32(LCD_BASE + 0x00C)
#define LCD_HVLEN			__REG32(LCD_BASE + 0x010)
#define LCD_VBARA			__REG32(LCD_BASE + 0x014)
#define LCD_VBARB			__REG32(LCD_BASE + 0x018)
#define LCD_PCLT			__REG32(LCD_BASE + 0x800)

/* HSB misc registers */
#define HSB_MISC_REG		__REG32(HSB_MISC_BASE + 0x00)
#define INT_EDGE			__REG32(HSB_MISC_BASE + 0x04)
#define INT_STEER			__REG32(HSB_MISC_BASE + 0x08)
#define INT_POL				__REG32(HSB_MISC_BASE + 0x0C)
#define INT_SET				__REG32(HSB_MISC_BASE + 0x10)
#define INT_CLR				__REG32(HSB_MISC_BASE + 0x14)
#define INT_EN				__REG32(HSB_MISC_BASE + 0x18)
#define INT_ISR				__REG32(HSB_MISC_BASE + 0x1C)
#define GPIO_OE_60_29		__REG32(HSB_MISC_BASE + 0x20)
#define GPIO_I_60_29		__REG32(HSB_MISC_BASE + 0x24)
#define GPIO_O_60_29		__REG32(HSB_MISC_BASE + 0x28)
#define HSB_ARB_CFG			__REG32(HSB_MISC_BASE + 0x2C)
#define WD_TIMER			__REG32(HSB_MISC_BASE + 0x30)
#define WD_CTRL				__REG32(HSB_MISC_BASE + 0x34)

/* SPI registers */
#define SPI_SPCR			__REG8(SPI_BASE + 0x00)
#define SPI_SPSR			__REG8(SPI_BASE + 0x01)
#define SPI_TX_FIFO			__REG8(SPI_BASE + 0x02)
#define SPI_SPER			__REG8(SPI_BASE + 0x03)

/* PS/2 registers */
#define PS2_RIBUF			__REG8(PS2_BASE + 0x00)
#define PS2_WOBUF			__REG8(PS2_BASE + 0x00)
#define PS2_RSR				__REG8(PS2_BASE + 0x04)
#define PS2_WSC				__REG8(PS2_BASE + 0x04)
#define PS2_DLL				__REG8(PS2_BASE + 0x08)
#define PS2_DLH				__REG8(PS2_BASE + 0x09)
#define PS2_DL_KBD			__REG8(PS2_BASE + 0x0A)
#define PS2_DL_AUX			__REG8(PS2_BASE + 0x0B)

/* UART registers */
#define UART_DAT(base)		__REG8(base + 0x00)
#define UART_IER(base)		__REG8(base + 0x01)
#define UART_IIR(base)		__REG8(base + 0x02)
#define UART_FCR(base)		__REG8(base + 0x02)
#define UART_LCR(base)		__REG8(base + 0x03)
#define UART_MCR(base)		__REG8(base + 0x04)
#define UART_LSR(base)		__REG8(base + 0x05)
#define UART_MSR(base)		__REG8(base + 0x06)

#define UART_LSB(base)		__REG8(base + 0x00)
#define UART_MSB(base)		__REG8(base + 0x01)

/* UART0 registers */
#define UART0_DAT			__REG8(UART0_BASE + 0x00)
#define UART0_IER			__REG8(UART0_BASE + 0x01)
#define UART0_IIR			__REG8(UART0_BASE + 0x02)
#define UART0_FCR			__REG8(UART0_BASE + 0x02)
#define UART0_LCR			__REG8(UART0_BASE + 0x03)
#define UART0_MCR			__REG8(UART0_BASE + 0x04)
#define UART0_LSR			__REG8(UART0_BASE + 0x05)
#define UART0_MSR			__REG8(UART0_BASE + 0x06)

#define UART0_LSB			__REG8(UART0_BASE + 0x00)
#define UART0_MSB			__REG8(UART0_BASE + 0x01)

/* UART1 registers */
#define UART1_DAT			__REG8(UART1_BASE + 0x00)
#define UART1_IER			__REG8(UART1_BASE + 0x01)
#define UART1_IIR			__REG8(UART1_BASE + 0x02)
#define UART1_FCR			__REG8(UART1_BASE + 0x02)
#define UART1_LCR			__REG8(UART1_BASE + 0x03)
#define UART1_MCR			__REG8(UART1_BASE + 0x04)
#define UART1_LSR			__REG8(UART1_BASE + 0x05)
#define UART1_MSR			__REG8(UART1_BASE + 0x06)

#define UART1_LSB			__REG8(UART1_BASE + 0x00)
#define UART1_MSB			__REG8(UART1_BASE + 0x01)

/* LPB misc registers */
#define GPIO_OE_7_0			__REG8(LPB_MISC_BASE + 0x00)
#define GPIO_OE_15_8		__REG8(LPB_MISC_BASE + 0x01)
#define GPIO_OE_23_16		__REG8(LPB_MISC_BASE + 0x02)
#define GPIO_OE_28_24		__REG8(LPB_MISC_BASE + 0x03)
#define GPIO_I_7_0			__REG8(LPB_MISC_BASE + 0x10)
#define GPIO_I_15_8			__REG8(LPB_MISC_BASE + 0x11)
#define GPIO_I_23_16		__REG8(LPB_MISC_BASE + 0x12)
#define GPIO_I_28_24		__REG8(LPB_MISC_BASE + 0x13)
#define GPIO_O_7_0			__REG8(LPB_MISC_BASE + 0x20)
#define GPIO_O_15_8			__REG8(LPB_MISC_BASE + 0x21)
#define GPIO_O_23_16		__REG8(LPB_MISC_BASE + 0x22)
#define GPIO_O_28_24		__REG8(LPB_MISC_BASE + 0x23)
#define LPB_MISC_CFG		__REG8(LPB_MISC_BASE + 0x40)

/* MAC0 registers */
#define MAC0_BUS_MODE		__REG32(MAC0_BASE + 0x00)
#define MAC0_TX_POLL_REQ	__REG32(MAC0_BASE + 0x08)
#define MAC0_RX_POLL_REQ	__REG32(MAC0_BASE + 0x10)
#define MAC0_RX_LIST_BASE_ADDR	__REG32(MAC0_BASE + 0x18)
#define MAC0_TX_LIST_BASE_ADDR	__REG32(MAC0_BASE + 0x20)
#define MAC0_STATUS			__REG32(MAC0_BASE + 0x28)
#define MAC0_OP_MODE		__REG32(MAC0_BASE + 0x30)
#define MAC0_INTERRUPT_EN	__REG32(MAC0_BASE + 0x38)
#define MAC0_MISSED_FRAME_STATISTIC	__REG32(MAC0_BASE + 0x40)
#define MAC0_SMI_EEPROM_CTL	__REG32(MAC0_BASE + 0x48)
#define MAC0_BYTE_ALIGN		__REG32(MAC0_BASE + 0x50)
#define MAC0_GPT_IM_CTL		__REG32(MAC0_BASE + 0x58)

/* MAC1 registers */
#define MAC1_BUS_MODE		__REG32(MAC1_BASE + 0x00)
#define MAC1_TX_POLL_REQ	__REG32(MAC1_BASE + 0x08)
#define MAC1_RX_POLL_REQ	__REG32(MAC1_BASE + 0x10)
#define MAC1_RX_LIST_BASE_ADDR	__REG32(MAC1_BASE + 0x18)
#define MAC1_TX_LIST_BASE_ADDR	__REG32(MAC1_BASE + 0x20)
#define MAC1_STATUS			__REG32(MAC1_BASE + 0x28)
#define MAC1_OP_MODE		__REG32(MAC1_BASE + 0x30)
#define MAC1_INTERRUPT_EN	__REG32(MAC1_BASE + 0x38)
#define MAC1_MISSED_FRAME_STATISTIC	__REG32(MAC1_BASE + 0x40)
#define MAC1_SMI_EEPROM_CTL	__REG32(MAC1_BASE + 0x48)
#define MAC1_BYTE_ALIGN		__REG32(MAC1_BASE + 0x50)
#define MAC1_GPT_IM_CTL		__REG32(MAC1_BASE + 0x58)

/* Peripheral Interrupt Number */
#define IRQ_LCD				0
#define IRQ_MAC1			1
#define IRQ_MAC2			2
#define IRQ_AC97			3
#define IRQ_SPI				8
#define IRQ_KEY				9
#define IRQ_MOUSE			10
#define IRQ_UART0			11
#define IRQ_UART1			12
#define IRQ_I2C				13
#define IRQ_CAN0			14
#define IRQ_CAN1			15
#define IRQ_GPIO15			20
#define IRQ_GPIO14			21
#define IRQ_GPIO13			22
#define IRQ_GPIO12			23

#define SYSTEM_STACK		0x80003fe8		/* the kernel system stack address */

#endif