1 /* 2 * vac.h: Various VIC controller defines. The VIC is a VME controller 3 * used in Baget/MIPS series. 4 * 5 * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov 6 */ 7 #ifndef _ASM_VAC_H 8 #define _ASM_VAC_H 9 10 #define VAC_SLSEL1_MASK 0x000 11 #define VAC_SLSEL1_BASE 0x100 12 #define VAC_SLSEL0_MASK 0x200 13 #define VAC_SLSEL0_BASE 0x300 14 #define VAC_ICFSEL_BASE 0x400 15 #define VAC_ICFSEL_GLOBAL_VAL(x) (((x)>>8)&0xff) 16 #define VAC_ICFSEL_MODULE_VAL(x) ((x)&0xff) 17 #define VAC_DRAM_MASK 0x500 18 #define VAC_BNDR2 0x600 19 #define VAC_BNDR3 0x700 20 #define VAC_A24_BASE 0x800 21 #define VAC_A24_MASK (0x3f<<9) 22 #define VAC_A24_D32_ENABLE (1<<8) 23 #define VAC_A24_A24_CACHINH (1<<7) 24 #define VAC_A24_A16D32_ENABLE (1<<6) 25 #define VAC_A24_A16D32 (1<<5) 26 #define VAC_A24_DATAPATH (1<<4) 27 #define VAC_A24_IO_CACHINH (1<<3) 28 #define VAC_REG1 0x900 29 #define VAC_REG2 0xA00 30 #define VAC_REG3 0xB00 31 #define VAC_REG_WORD (1<<15) 32 #define VAC_REG_ASIZ1 (1<<14) 33 #define VAC_REG_ASIZ0 (1<<13) 34 #define VAC_REG_ASIZ_VAL(x) (((x)>>13)&3) 35 #define VAC_REG_CACHINH (1<<12) 36 #define VAC_REG_INACTIVE (0<<10) 37 #define VAC_REG_SHARED (1<<10) 38 #define VAC_REG_VSB (2<<10) 39 #define VAC_REG_MWB (3<<10) 40 #define VAC_REG_MASK (3<<10) 41 #define VAC_REG_MODE(x) (((x)>>10)&3) 42 #define VAC_IOSEL4_CTRL 0xC00 43 #define VAC_IOSEL5_CTRL 0xD00 44 #define VAC_SHRCS_CTRL 0xE00 45 #define VAC_EPROMCS_CTRL 0xF00 46 #define VAC_IOSEL0_CTRL 0x1000 47 #define VAC_IOSEL1_CTRL 0x1100 48 #define VAC_IOSEL2_CTRL 0x1200 49 #define VAC_IOSEL3_CTRL 0x1300 50 #define VAC_CTRL_IOWR (1<<0) 51 #define VAC_CTRL_IORD (1<<1) 52 #define VAC_CTRL_DELAY_IOSELI(x) (((x)&3)<<2) 53 #define VAC_CTRL_DELAY_IOSELI_VAL(x) (((x)>>2)&3) 54 #define VAC_CTRL_DELAY_IOWR(x) (((x)&3)<<4) 55 #define VAC_CTRL_DELAY_IOWR_VAL(x) (((x)>>4)&3) 56 #define VAC_CTRL_DELAY_IORD(x) (((x)&3)<<6) 57 #define VAC_CTRL_DELAY_IORD_VAL(x) (((x)>>6)&3) 58 #define VAC_CTRL_RECOVERY_IOSELI(x) ((((x)-1)&7)<<8) 59 #define VAC_CTRL_RECOVERY_IOSELI_VAL(x) ((((x)>>8)&7)+1) 60 #define VAC_CTRL_DSACK0 (1<<11) 61 #define VAC_CTRL_DSACK1 (1<<12) 62 #define VAC_CTRL_DELAY_DSACKI(x) ((((x)-1)&7)<<13) 63 #define VAC_CTRL_DELAY_DSACKI_VAL(x) ((((x)>>13)&7)+1) 64 #define VAC_DECODE_CTRL 0x1400 65 #define VAC_DECODE_FPUCS (1<<0) 66 #define VAC_DECODE_CPUCLK(x) (((x)&3)<<1) 67 #define VAC_DECODE_CPUCLK_VAL(x) (((x)>>1)&3) 68 #define VAC_DECODE_RDR_SLSEL0 (1<<3) 69 #define VAC_DECODE_RDR_SLSEL1 (1<<4) 70 #define VAC_DECODE_DSACK (1<<5) 71 #define VAC_DECODE_QFY_BNDR (1<<6) 72 #define VAC_DECODE_QFY_ICFSEL (1<<7) 73 #define VAC_DECODE_QFY_SLSEL1 (1<<8) 74 #define VAC_DECODE_QFY_SLSEL0 (1<<9) 75 #define VAC_DECODE_CMP_SLSEL1_LO (1<<10) 76 #define VAC_DECODE_CMP_SLSEL1_HI (1<<11) 77 #define VAC_DECODE_CMP_SLSEL1_VAL(x) (((x)>>10)&3) 78 #define VAC_DECODE_DRAMCS (3<<12) 79 #define VAC_DECODE_SHRCS (2<<12) 80 #define VAC_DECODE_VSBSEL (1<<12) 81 #define VAC_DECODE_EPROMCS (0<<12) 82 #define VAC_DECODE_MODE_VAL(x) (((x)>>12)&3) 83 #define VAC_DECODE_QFY_DRAMCS (1<<14) 84 #define VAC_DECODE_DSACKI (1<<15) 85 #define VAC_INT_STATUS 0x1500 86 #define VAC_INT_CTRL 0x1600 87 #define VAC_INT_CTRL_TIMER_PIO11 (3<<0) 88 #define VAC_INT_CTRL_TIMER_PIO10 (2<<0) 89 #define VAC_INT_CTRL_TIMER_PIO7 (1<<0) 90 #define VAC_INT_CTRL_TIMER_DISABLE (0<<0) 91 #define VAC_INT_CTRL_TIMER_MASK (3<<0) 92 #define VAC_INT_CTRL_UART_B_PIO11 (3<<2) 93 #define VAC_INT_CTRL_UART_B_PIO10 (2<<2) 94 #define VAC_INT_CTRL_UART_B_PIO7 (1<<2) 95 #define VAC_INT_CTRL_UART_B_DISABLE (0<<2) 96 #define VAC_INT_CTRL_UART_A_PIO11 (3<<4) 97 #define VAC_INT_CTRL_UART_A_PIO10 (2<<4) 98 #define VAC_INT_CTRL_UART_A_PIO7 (1<<4) 99 #define VAC_INT_CTRL_UART_A_DISABLE (0<<4) 100 #define VAC_INT_CTRL_MBOX_PIO11 (3<<6) 101 #define VAC_INT_CTRL_MBOX_PIO10 (2<<6) 102 #define VAC_INT_CTRL_MBOX_PIO7 (1<<6) 103 #define VAC_INT_CTRL_MBOX_DISABLE (0<<6) 104 #define VAC_INT_CTRL_PIO4_PIO11 (3<<8) 105 #define VAC_INT_CTRL_PIO4_PIO10 (2<<8) 106 #define VAC_INT_CTRL_PIO4_PIO7 (1<<8) 107 #define VAC_INT_CTRL_PIO4_DISABLE (0<<8) 108 #define VAC_INT_CTRL_PIO7_PIO11 (3<<10) 109 #define VAC_INT_CTRL_PIO7_PIO10 (2<<10) 110 #define VAC_INT_CTRL_PIO7_PIO7 (1<<10) 111 #define VAC_INT_CTRL_PIO7_DISABLE (0<<10) 112 #define VAC_INT_CTRL_PIO8_PIO11 (3<<12) 113 #define VAC_INT_CTRL_PIO8_PIO10 (2<<12) 114 #define VAC_INT_CTRL_PIO8_PIO7 (1<<12) 115 #define VAC_INT_CTRL_PIO8_DISABLE (0<<12) 116 #define VAC_INT_CTRL_PIO9_PIO11 (3<<14) 117 #define VAC_INT_CTRL_PIO9_PIO10 (2<<14) 118 #define VAC_INT_CTRL_PIO9_PIO7 (1<<14) 119 #define VAC_INT_CTRL_PIO9_DISABLE (0<<14) 120 #define VAC_DEV_LOC 0x1700 121 #define VAC_DEV_LOC_IOSEL(x) (1<<(x)) 122 #define VAC_PIO_DATA_OUT 0x1800 123 #define VAC_PIO_PIN 0x1900 124 #define VAC_PIO_DIRECTION 0x1A00 125 #define VAC_PIO_DIR_OUT(x) (1<<(x)) 126 #define VAC_PIO_DIR_IN(x) (0<<(x)) 127 #define VAC_PIO_DIR_FCIACK (1<<14) 128 #define VAC_PIO_FUNC 0x1B00 129 #define VAC_PIO_FUNC_UART_A_TX (1<<0) 130 #define VAC_PIO_FUNC_UART_A_RX (1<<1) 131 #define VAC_PIO_FUNC_UART_B_TX (1<<2) 132 #define VAC_PIO_FUNC_UART_B_RX (1<<3) 133 #define VAC_PIO_FUNC_IORD (1<<4) 134 #define VAC_PIO_FUNC_IOWR (1<<5) 135 #define VAC_PIO_FUNC_IOSEL3 (1<<6) 136 #define VAC_PIO_FUNC_IRQ7 (1<<7) 137 #define VAC_PIO_FUNC_IOSEL4 (1<<8) 138 #define VAC_PIO_FUNC_IOSEL5 (1<<9) 139 #define VAC_PIO_FUNC_IRQ10 (1<<10) 140 #define VAC_PIO_FUNC_IRQ11 (1<<11) 141 #define VAC_PIO_FUNC_OUT (1<<12) 142 #define VAC_PIO_FUNC_IOSEL2 (1<<13) 143 #define VAC_PIO_FUNC_DELAY (1<<14) 144 #define VAC_PIO_FUNC_FCIACK (1<<15) 145 #define VAC_CPU_CLK_DIV 0x1C00 146 #define VAC_UART_A_MODE 0x1D00 147 #define VAC_UART_MODE_PARITY_ENABLE (1<<15) /* Inversed in manual ? */ 148 #define VAC_UART_MODE_PARITY_ODD (1<<14) /* Inversed in manual ? */ 149 #define VAC_UART_MODE_8BIT_CHAR (1<<13) 150 #define VAC_UART_MODE_BAUD(x) (((x)&7)<<10) 151 #define VAC_UART_MODE_CHAR_RX_ENABLE (1<<9) 152 #define VAC_UART_MODE_CHAR_TX_ENABLE (1<<8) 153 #define VAC_UART_MODE_TX_ENABLE (1<<7) 154 #define VAC_UART_MODE_RX_ENABLE (1<<6) 155 #define VAC_UART_MODE_SEND_BREAK (1<<5) 156 #define VAC_UART_MODE_LOOPBACK (1<<4) 157 #define VAC_UART_MODE_INITIAL (VAC_UART_MODE_8BIT_CHAR | \ 158 VAC_UART_MODE_TX_ENABLE | \ 159 VAC_UART_MODE_RX_ENABLE | \ 160 VAC_UART_MODE_CHAR_TX_ENABLE | \ 161 VAC_UART_MODE_CHAR_RX_ENABLE | \ 162 VAC_UART_MODE_BAUD(5)) /* 9600/4 */ 163 #define VAC_UART_A_TX 0x1E00 164 #define VAC_UART_B_MODE 0x1F00 165 #define VAC_UART_A_RX 0x2000 166 #define VAC_UART_RX_ERR_BREAK (1<<10) 167 #define VAC_UART_RX_ERR_FRAME (1<<9) 168 #define VAC_UART_RX_ERR_PARITY (1<<8) 169 #define VAC_UART_RX_DATA_MASK (0xff) 170 #define VAC_UART_B_RX 0x2100 171 #define VAC_UART_B_TX 0x2200 172 #define VAC_UART_A_INT_MASK 0x2300 173 #define VAC_UART_INT_RX_READY (1<<15) 174 #define VAC_UART_INT_RX_FULL (1<<14) 175 #define VAC_UART_INT_RX_BREAK_CHANGE (1<<13) 176 #define VAC_UART_INT_RX_ERRS (1<<12) 177 #define VAC_UART_INT_TX_READY (1<<11) 178 #define VAC_UART_INT_TX_EMPTY (1<<10) 179 #define VAC_UART_B_INT_MASK 0x2400 180 #define VAC_UART_A_INT_STATUS 0x2500 181 #define VAC_UART_STATUS_RX_READY (1<<15) 182 #define VAC_UART_STATUS_RX_FULL (1<<14) 183 #define VAC_UART_STATUS_RX_BREAK_CHANGE (1<<13) 184 #define VAC_UART_STATUS_RX_ERR_PARITY (1<<12) 185 #define VAC_UART_STATUS_RX_ERR_FRAME (1<<11) 186 #define VAC_UART_STATUS_RX_ERR_OVERRUN (1<<10) 187 #define VAC_UART_STATUS_TX_READY (1<<9) 188 #define VAC_UART_STATUS_TX_EMPTY (1<<8) 189 #define VAC_UART_STATUS_INTS (0xff<<8) 190 #define VAC_UART_B_INT_STATUS 0x2600 191 #define VAC_TIMER_DATA 0x2700 192 #define VAC_TIMER_CTRL 0x2800 193 #define VAC_TIMER_ONCE (1<<15) 194 #define VAC_TIMER_ENABLE (1<<14) 195 #define VAC_TIMER_PRESCALE(x) (((x)&0x3F)<<8) 196 #define VAC_ID 0x2900 197 198 199 #ifndef __ASSEMBLY__ 200 201 #define vac_inb(p) (*(volatile unsigned char *)(VAC_BASE + (p))) 202 #define vac_outb(v,p) (*((volatile unsigned char *)(VAC_BASE + (p))) = v) 203 #define vac_inw(p) (*(volatile unsigned short*)(VAC_BASE + (p))) 204 #define vac_outw(v,p) (*((volatile unsigned short*)(VAC_BASE + (p))) = v) 205 206 #endif /* !__ASSEMBLY__ */ 207 208 #endif /* _ASM_VAC_H */ 209