blob: 02f60492639c6159f1c3f874e862414986083ac8 [file] [log] [blame]
wdenka21ad7b2005-05-19 22:39:42 +00001/*
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02002 * SPDX-License-Identifier: GPL-2.0+
wdenka21ad7b2005-05-19 22:39:42 +00003 */
4#ifndef __address_h
5#define __address_h 1
6
7#define KS8695_SDRAM_START 0x00000000
8#define KS8695_SDRAM_SIZE 0x01000000
9#define KS8695_MEM_SIZE KS8695_SDRAM_SIZE
10#define KS8695_MEM_START KS8695_SDRAM_START
11
12#define KS8695_PCMCIA_IO_BASE 0x03800000
13#define KS8695_PCMCIA_IO_SIZE 0x00040000
14
15#define KS8695_IO_BASE 0x03FF0000
16#define KS8695_IO_SIZE 0x00010000
17
18#define KS8695_SYSTEN_CONFIG 0x00
19#define KS8695_SYSTEN_BUS_CLOCK 0x04
20
21#define KS8695_FLASH_START 0x02800000
22#define KS8695_FLASH_SIZE 0x00400000
23
24/*i/o control registers offset difinitions*/
25#define KS8695_IO_CTRL0 0x4000
26#define KS8695_IO_CTRL1 0x4004
27#define KS8695_IO_CTRL2 0x4008
28#define KS8695_IO_CTRL3 0x400C
29
30/*memory control registers offset difinitions*/
31#define KS8695_MEM_CTRL0 0x4010
32#define KS8695_MEM_CTRL1 0x4014
33#define KS8695_MEM_CTRL2 0x4018
34#define KS8695_MEM_CTRL3 0x401C
35#define KS8695_MEM_GENERAL 0x4020
36#define KS8695_SDRAM_CTRL0 0x4030
37#define KS8695_SDRAM_CTRL1 0x4034
38#define KS8695_SDRAM_GENERAL 0x4038
39#define KS8695_SDRAM_BUFFER 0x403C
40#define KS8695_SDRAM_REFRESH 0x4040
41
42/*WAN control registers offset difinitions*/
43#define KS8695_WAN_DMA_TX 0x6000
44#define KS8695_WAN_DMA_RX 0x6004
45#define KS8695_WAN_DMA_TX_START 0x6008
46#define KS8695_WAN_DMA_RX_START 0x600C
47#define KS8695_WAN_TX_LIST 0x6010
48#define KS8695_WAN_RX_LIST 0x6014
49#define KS8695_WAN_MAC_LOW 0x6018
50#define KS8695_WAN_MAC_HIGH 0x601C
51#define KS8695_WAN_MAC_ELOW 0x6080
52#define KS8695_WAN_MAC_EHIGH 0x6084
53
54/*LAN control registers offset difinitions*/
55#define KS8695_LAN_DMA_TX 0x8000
56#define KS8695_LAN_DMA_RX 0x8004
57#define KS8695_LAN_DMA_TX_START 0x8008
58#define KS8695_LAN_DMA_RX_START 0x800C
59#define KS8695_LAN_TX_LIST 0x8010
60#define KS8695_LAN_RX_LIST 0x8014
61#define KS8695_LAN_MAC_LOW 0x8018
62#define KS8695_LAN_MAC_HIGH 0x801C
63#define KS8695_LAN_MAC_ELOW 0X8080
64#define KS8695_LAN_MAC_EHIGH 0X8084
65
66/*HPNA control registers offset difinitions*/
67#define KS8695_HPNA_DMA_TX 0xA000
68#define KS8695_HPNA_DMA_RX 0xA004
69#define KS8695_HPNA_DMA_TX_START 0xA008
70#define KS8695_HPNA_DMA_RX_START 0xA00C
71#define KS8695_HPNA_TX_LIST 0xA010
72#define KS8695_HPNA_RX_LIST 0xA014
73#define KS8695_HPNA_MAC_LOW 0xA018
74#define KS8695_HPNA_MAC_HIGH 0xA01C
75#define KS8695_HPNA_MAC_ELOW 0xA080
76#define KS8695_HPNA_MAC_EHIGH 0xA084
77
78/*UART control registers offset difinitions*/
79#define KS8695_UART_RX_BUFFER 0xE000
80#define KS8695_UART_TX_HOLDING 0xE004
81
82#define KS8695_UART_FIFO_CTRL 0xE008
83#define KS8695_UART_FIFO_TRIG01 0x00
84#define KS8695_UART_FIFO_TRIG04 0x80
85#define KS8695_UART_FIFO_TXRST 0x03
86#define KS8695_UART_FIFO_RXRST 0x02
87#define KS8695_UART_FIFO_FEN 0x01
88
89#define KS8695_UART_LINE_CTRL 0xE00C
90#define KS8695_UART_LINEC_BRK 0x40
91#define KS8695_UART_LINEC_EPS 0x10
92#define KS8695_UART_LINEC_PEN 0x08
93#define KS8695_UART_LINEC_STP2 0x04
94#define KS8695_UART_LINEC_WLEN8 0x03
95#define KS8695_UART_LINEC_WLEN7 0x02
96#define KS8695_UART_LINEC_WLEN6 0x01
97#define KS8695_UART_LINEC_WLEN5 0x00
98
99#define KS8695_UART_MODEM_CTRL 0xE010
100#define KS8695_UART_MODEMC_RTS 0x02
101#define KS8695_UART_MODEMC_DTR 0x01
102
103#define KS8695_UART_LINE_STATUS 0xE014
104#define KS8695_UART_LINES_TXFE 0x20
105#define KS8695_UART_LINES_BE 0x10
106#define KS8695_UART_LINES_FE 0x08
107#define KS8695_UART_LINES_PE 0x04
108#define KS8695_UART_LINES_OE 0x02
109#define KS8695_UART_LINES_RXFE 0x01
110#define KS8695_UART_LINES_ANY (KS8695_UART_LINES_OE|KS8695_UART_LINES_BE|KS8695_UART_LINES_PE|KS8695_UART_LINES_FE)
111
112#define KS8695_UART_MODEM_STATUS 0xE018
113#define KS8695_UART_MODEM_DCD 0x80
114#define KS8695_UART_MODEM_DSR 0x20
115#define KS8695_UART_MODEM_CTS 0x10
116#define KS8695_UART_MODEM_DDCD 0x08
117#define KS8695_UART_MODEM_DDSR 0x02
118#define KS8695_UART_MODEM_DCTS 0x01
119#define UART8695_MODEM_ANY 0xFF
120
121#define KS8695_UART_DIVISOR 0xE01C
122#define KS8695_UART_STATUS 0xE020
123
124/*Interrupt controlller registers offset difinitions*/
125#define KS8695_INT_CONTL 0xE200
126#define KS8695_INT_ENABLE 0xE204
127#define KS8695_INT_ENABLE_MODEM 0x0800
128#define KS8695_INT_ENABLE_ERR 0x0400
129#define KS8695_INT_ENABLE_RX 0x0200
130#define KS8695_INT_ENABLE_TX 0x0100
131
132#define KS8695_INT_STATUS 0xE208
133#define KS8695_INT_WAN_PRIORITY 0xE20C
134#define KS8695_INT_HPNA_PRIORITY 0xE210
135#define KS8695_INT_LAN_PRIORITY 0xE214
136#define KS8695_INT_TIMER_PRIORITY 0xE218
137#define KS8695_INT_UART_PRIORITY 0xE21C
138#define KS8695_INT_EXT_PRIORITY 0xE220
139#define KS8695_INT_CHAN_PRIORITY 0xE224
140#define KS8695_INT_BUSERROR_PRO 0xE228
141#define KS8695_INT_MASK_STATUS 0xE22C
142#define KS8695_FIQ_PEND_PRIORITY 0xE230
143#define KS8695_IRQ_PEND_PRIORITY 0xE234
144
145/*timer registers offset difinitions*/
146#define KS8695_TIMER_CTRL 0xE400
147#define KS8695_TIMER1 0xE404
148#define KS8695_TIMER0 0xE408
149#define KS8695_TIMER1_PCOUNT 0xE40C
150#define KS8695_TIMER0_PCOUNT 0xE410
151
152/*GPIO registers offset difinitions*/
153#define KS8695_GPIO_MODE 0xE600
154#define KS8695_GPIO_CTRL 0xE604
155#define KS8695_GPIO_DATA 0xE608
156
157/*SWITCH registers offset difinitions*/
158#define KS8695_SWITCH_CTRL0 0xE800
159#define KS8695_SWITCH_CTRL1 0xE804
160#define KS8695_SWITCH_PORT1 0xE808
161#define KS8695_SWITCH_PORT2 0xE80C
162#define KS8695_SWITCH_PORT3 0xE810
163#define KS8695_SWITCH_PORT4 0xE814
164#define KS8695_SWITCH_PORT5 0xE818
165#define KS8695_SWITCH_AUTO0 0xE81C
166#define KS8695_SWITCH_AUTO1 0xE820
167#define KS8695_SWITCH_LUE_CTRL 0xE824
168#define KS8695_SWITCH_LUE_HIGH 0xE828
169#define KS8695_SWITCH_LUE_LOW 0xE82C
170#define KS8695_SWITCH_ADVANCED 0xE830
171
172#define KS8695_SWITCH_LPPM12 0xE874
173#define KS8695_SWITCH_LPPM34 0xE878
174
175/*host communication registers difinitions*/
176#define KS8695_DSCP_HIGH 0xE834
177#define KS8695_DSCP_LOW 0xE838
178#define KS8695_SWITCH_MAC_HIGH 0xE83C
179#define KS8695_SWITCH_MAC_LOW 0xE840
180
181/*miscellaneours registers difinitions*/
182#define KS8695_MANAGE_COUNTER 0xE844
183#define KS8695_MANAGE_DATA 0xE848
184#define KS8695_LAN12_POWERMAGR 0xE84C
185#define KS8695_LAN34_POWERMAGR 0xE850
186
187#define KS8695_DEVICE_ID 0xEA00
188#define KS8695_REVISION_ID 0xEA04
189
190#define KS8695_MISC_CONTROL 0xEA08
191#define KS8695_WAN_CONTROL 0xEA0C
192#define KS8695_WAN_POWERMAGR 0xEA10
193#define KS8695_WAN_PHY_CONTROL 0xEA14
194#define KS8695_WAN_PHY_STATUS 0xEA18
195
196/* bus clock definitions*/
197#define KS8695_BUS_CLOCK_125MHZ 0x0
198#define KS8695_BUS_CLOCK_100MHZ 0x1
199#define KS8695_BUS_CLOCK_62MHZ 0x2
200#define KS8695_BUS_CLOCK_50MHZ 0x3
201#define KS8695_BUS_CLOCK_41MHZ 0x4
202#define KS8695_BUS_CLOCK_33MHZ 0x5
203#define KS8695_BUS_CLOCK_31MHZ 0x6
204#define KS8695_BUS_CLOCK_25MHZ 0x7
205
206/* -------------------------------------------------------------------------------
207 * definations for IRQ
208 * -------------------------------------------------------------------------------*/
209
210#define KS8695_INT_EXT_INT0 2
211#define KS8695_INT_EXT_INT1 3
212#define KS8695_INT_EXT_INT2 4
213#define KS8695_INT_EXT_INT3 5
214#define KS8695_INT_TIMERINT0 6
215#define KS8695_INT_TIMERINT1 7
216#define KS8695_INT_UART_TX 8
217#define KS8695_INT_UART_RX 9
218#define KS8695_INT_UART_LINE_ERR 10
219#define KS8695_INT_UART_MODEMS 11
220#define KS8695_INT_LAN_STOP_RX 12
221#define KS8695_INT_LAN_STOP_TX 13
222#define KS8695_INT_LAN_BUF_RX_STATUS 14
223#define KS8695_INT_LAN_BUF_TX_STATUS 15
224#define KS8695_INT_LAN_RX_STATUS 16
225#define KS8695_INT_LAN_TX_STATUS 17
226#define KS8695_INT_HPAN_STOP_RX 18
227#define KS8695_INT_HPNA_STOP_TX 19
228#define KS8695_INT_HPNA_BUF_RX_STATUS 20
229#define KS8695_INT_HPNA_BUF_TX_STATUS 21
230#define KS8695_INT_HPNA_RX_STATUS 22
231#define KS8695_INT_HPNA_TX_STATUS 23
232#define KS8695_INT_BUS_ERROR 24
233#define KS8695_INT_WAN_STOP_RX 25
234#define KS8695_INT_WAN_STOP_TX 26
235#define KS8695_INT_WAN_BUF_RX_STATUS 27
236#define KS8695_INT_WAN_BUF_TX_STATUS 28
237#define KS8695_INT_WAN_RX_STATUS 29
238#define KS8695_INT_WAN_TX_STATUS 30
239
240#define KS8695_INT_UART KS8695_INT_UART_TX
241
242/* -------------------------------------------------------------------------------
243 * Interrupt bit positions
244 *
245 * -------------------------------------------------------------------------------
246 */
247
248#define KS8695_INTMASK_EXT_INT0 ( 1 << KS8695_INT_EXT_INT0 )
249#define KS8695_INTMASK_EXT_INT1 ( 1 << KS8695_INT_EXT_INT1 )
250#define KS8695_INTMASK_EXT_INT2 ( 1 << KS8695_INT_EXT_INT2 )
251#define KS8695_INTMASK_EXT_INT3 ( 1 << KS8695_INT_EXT_INT3 )
252#define KS8695_INTMASK_TIMERINT0 ( 1 << KS8695_INT_TIMERINT0 )
253#define KS8695_INTMASK_TIMERINT1 ( 1 << KS8695_INT_TIMERINT1 )
254#define KS8695_INTMASK_UART_TX ( 1 << KS8695_INT_UART_TX )
255#define KS8695_INTMASK_UART_RX ( 1 << KS8695_INT_UART_RX )
256#define KS8695_INTMASK_UART_LINE_ERR ( 1 << KS8695_INT_UART_LINE_ERR )
257#define KS8695_INTMASK_UART_MODEMS ( 1 << KS8695_INT_UART_MODEMS )
258#define KS8695_INTMASK_LAN_STOP_RX ( 1 << KS8695_INT_LAN_STOP_RX )
259#define KS8695_INTMASK_LAN_STOP_TX ( 1 << KS8695_INT_LAN_STOP_TX )
260#define KS8695_INTMASK_LAN_BUF_RX_STATUS ( 1 << KS8695_INT_LAN_BUF_RX_STATUS )
261#define KS8695_INTMASK_LAN_BUF_TX_STATUS ( 1 << KS8695_INT_LAN_BUF_TX_STATUS )
262#define KS8695_INTMASK_LAN_RX_STATUS ( 1 << KS8695_INT_LAN_RX_STATUS )
263#define KS8695_INTMASK_LAN_TX_STATUS ( 1 << KS8695_INT_LAN_RX_STATUS )
264#define KS8695_INTMASK_HPAN_STOP_RX ( 1 << KS8695_INT_HPAN_STOP_RX )
265#define KS8695_INTMASK_HPNA_STOP_TX ( 1 << KS8695_INT_HPNA_STOP_TX )
266#define KS8695_INTMASK_HPNA_BUF_RX_STATUS ( 1 << KS8695_INT_HPNA_BUF_RX_STATUS )
267#define KS8695_INTMAKS_HPNA_BUF_TX_STATUS ( 1 << KS8695_INT_HPNA_BUF_TX_STATUS
268#define KS8695_INTMASK_HPNA_RX_STATUS ( 1 << KS8695_INT_HPNA_RX_STATUS )
269#define KS8695_INTMASK_HPNA_TX_STATUS ( 1 << KS8695_INT_HPNA_TX_STATUS )
270#define KS8695_INTMASK_BUS_ERROR ( 1 << KS8695_INT_BUS_ERROR )
271#define KS8695_INTMASK_WAN_STOP_RX ( 1 << KS8695_INT_WAN_STOP_RX )
272#define KS8695_INTMASK_WAN_STOP_TX ( 1 << KS8695_INT_WAN_STOP_TX )
273#define KS8695_INTMASK_WAN_BUF_RX_STATUS ( 1 << KS8695_INT_WAN_BUF_RX_STATUS )
274#define KS8695_INTMASK_WAN_BUF_TX_STATUS ( 1 << KS8695_INT_WAN_BUF_TX_STATUS )
275#define KS8695_INTMASK_WAN_RX_STATUS ( 1 << KS8695_INT_WAN_RX_STATUS )
276#define KS8695_INTMASK_WAN_TX_STATUS ( 1 << KS8695_INT_WAN_TX_STATUS )
277
278#define KS8695_SC_VALID_INT 0xFFFFFFFF
279#define MAXIRQNUM 31
280
281/*
282 * Timer definitions
283 *
284 * Use timer 1 & 2
285 * (both run at 25MHz).
286 *
287 */
288#define TICKS_PER_uSEC 25
289#define mSEC_1 1000
290#define mSEC_10 (mSEC_1 * 10)
291
292#endif
293
294/* END */