source: svn/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/asm/jmr3927/tx3927.h @ 22

Last change on this file since 22 was 22, checked in by phkim, 11 years ago
  1. phkim
  2. newcon3sk 를 kctv 로 브랜치 함
  • Property svn:executable set to *
File size: 11.0 KB
Line 
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License.  See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2000 Toshiba Corporation
7 */
8#ifndef __ASM_TX3927_H
9#define __ASM_TX3927_H
10
11#include <asm/jmr3927/txx927.h>
12
13#define TX3927_SDRAMC_REG       0xfffe8000
14#define TX3927_ROMC_REG         0xfffe9000
15#define TX3927_DMA_REG          0xfffeb000
16#define TX3927_IRC_REG          0xfffec000
17#define TX3927_PCIC_REG         0xfffed000
18#define TX3927_CCFG_REG         0xfffee000
19#define TX3927_NR_TMR   3
20#define TX3927_TMR_REG(ch)      (0xfffef000 + (ch) * 0x100)
21#define TX3927_NR_SIO   2
22#define TX3927_SIO_REG(ch)      (0xfffef300 + (ch) * 0x100)
23#define TX3927_PIO_REG          0xfffef500
24
25#ifndef __ASSEMBLY__
26
27struct tx3927_sdramc_reg {
28        volatile unsigned long cr[8];
29        volatile unsigned long tr[3];
30        volatile unsigned long cmd;
31        volatile unsigned long smrs[2];
32};
33
34struct tx3927_romc_reg {
35        volatile unsigned long cr[8];
36};
37
38struct tx3927_dma_reg {
39        struct tx3927_dma_ch_reg {
40                volatile unsigned long cha;
41                volatile unsigned long sar;
42                volatile unsigned long dar;
43                volatile unsigned long cntr;
44                volatile unsigned long sair;
45                volatile unsigned long dair;
46                volatile unsigned long ccr;
47                volatile unsigned long csr;
48        } ch[4];
49        volatile unsigned long dbr[8];
50        volatile unsigned long tdhr;
51        volatile unsigned long mcr;
52        volatile unsigned long unused0;
53};
54
55struct tx3927_irc_reg {
56        volatile unsigned long cer;
57        volatile unsigned long cr[2];
58        volatile unsigned long unused0;
59        volatile unsigned long ilr[8];
60        volatile unsigned long unused1[4];
61        volatile unsigned long imr;
62        volatile unsigned long unused2[7];
63        volatile unsigned long scr;
64        volatile unsigned long unused3[7];
65        volatile unsigned long ssr;
66        volatile unsigned long unused4[7];
67        volatile unsigned long csr;
68};
69
70#include <asm/byteorder.h>
71
72#ifdef __BIG_ENDIAN
73#define endian_def_s2(e1,e2)    \
74        volatile unsigned short e1,e2
75#define endian_def_sb2(e1,e2,e3)        \
76        volatile unsigned short e1;volatile unsigned char e2,e3
77#define endian_def_b2s(e1,e2,e3)        \
78        volatile unsigned char e1,e2;volatile unsigned short e3
79#define endian_def_b4(e1,e2,e3,e4)      \
80        volatile unsigned char e1,e2,e3,e4
81#else
82#define endian_def_s2(e1,e2)    \
83        volatile unsigned short e2,e1
84#define endian_def_sb2(e1,e2,e3)        \
85        volatile unsigned char e3,e2;volatile unsigned short e1
86#define endian_def_b2s(e1,e2,e3)        \
87        volatile unsigned short e3;volatile unsigned char e2,e1
88#define endian_def_b4(e1,e2,e3,e4)      \
89        volatile unsigned char e4,e3,e2,e1
90#endif
91
92struct tx3927_pcic_reg {
93        endian_def_s2(did, vid);
94        endian_def_s2(pcistat, pcicmd);
95        endian_def_b4(cc, scc, rpli, rid);
96        endian_def_b4(unused0, ht, mlt, cls);
97        volatile unsigned long ioba;            /* +10 */
98        volatile unsigned long mba;
99        volatile unsigned long unused1[5];
100        endian_def_s2(svid, ssvid);
101        volatile unsigned long unused2;         /* +30 */
102        endian_def_sb2(unused3, unused4, capptr);
103        volatile unsigned long unused5;
104        endian_def_b4(ml, mg, ip, il);
105        volatile unsigned long unused6;         /* +40 */
106        volatile unsigned long istat;
107        volatile unsigned long iim;
108        volatile unsigned long rrt;
109        volatile unsigned long unused7[3];              /* +50 */
110        volatile unsigned long ipbmma;
111        volatile unsigned long ipbioma;         /* +60 */
112        volatile unsigned long ilbmma;
113        volatile unsigned long ilbioma;
114        volatile unsigned long unused8[9];
115        volatile unsigned long tc;              /* +90 */
116        volatile unsigned long tstat;
117        volatile unsigned long tim;
118        volatile unsigned long tccmd;
119        volatile unsigned long pcirrt;          /* +a0 */
120        volatile unsigned long pcirrt_cmd;
121        volatile unsigned long pcirrdt;
122        volatile unsigned long unused9[3];
123        volatile unsigned long tlboap;
124        volatile unsigned long tlbiap;
125        volatile unsigned long tlbmma;          /* +c0 */
126        volatile unsigned long tlbioma;
127        volatile unsigned long sc_msg;
128        volatile unsigned long sc_be;
129        volatile unsigned long tbl;             /* +d0 */
130        volatile unsigned long unused10[3];
131        volatile unsigned long pwmng;           /* +e0 */
132        volatile unsigned long pwmngs;
133        volatile unsigned long unused11[6];
134        volatile unsigned long req_trace;               /* +100 */
135        volatile unsigned long pbapmc;
136        volatile unsigned long pbapms;
137        volatile unsigned long pbapmim;
138        volatile unsigned long bm;              /* +110 */
139        volatile unsigned long cpcibrs;
140        volatile unsigned long cpcibgs;
141        volatile unsigned long pbacs;
142        volatile unsigned long iobas;           /* +120 */
143        volatile unsigned long mbas;
144        volatile unsigned long lbc;
145        volatile unsigned long lbstat;
146        volatile unsigned long lbim;            /* +130 */
147        volatile unsigned long pcistatim;
148        volatile unsigned long ica;
149        volatile unsigned long icd;
150        volatile unsigned long iiadp;           /* +140 */
151        volatile unsigned long iscdp;
152        volatile unsigned long mmas;
153        volatile unsigned long iomas;
154        volatile unsigned long ipciaddr;                /* +150 */
155        volatile unsigned long ipcidata;
156        volatile unsigned long ipcibe;
157};
158
159struct tx3927_ccfg_reg {
160        volatile unsigned long ccfg;
161        volatile unsigned long crir;
162        volatile unsigned long pcfg;
163        volatile unsigned long tear;
164        volatile unsigned long pdcr;
165};
166
167#endif /* !__ASSEMBLY__ */
168
169/*
170 * SDRAMC
171 */
172
173/*
174 * ROMC
175 */
176
177/*
178 * DMA
179 */
180/* bits for MCR */
181#define TX3927_DMA_MCR_EIS(ch)  (0x10000000<<(ch))
182#define TX3927_DMA_MCR_DIS(ch)  (0x01000000<<(ch))
183#define TX3927_DMA_MCR_RSFIF    0x00000080
184#define TX3927_DMA_MCR_FIFUM(ch)        (0x00000008<<(ch))
185#define TX3927_DMA_MCR_LE       0x00000004
186#define TX3927_DMA_MCR_RPRT     0x00000002
187#define TX3927_DMA_MCR_MSTEN    0x00000001
188
189/* bits for CCRn */
190#define TX3927_DMA_CCR_DBINH    0x04000000
191#define TX3927_DMA_CCR_SBINH    0x02000000
192#define TX3927_DMA_CCR_CHRST    0x01000000
193#define TX3927_DMA_CCR_RVBYTE   0x00800000
194#define TX3927_DMA_CCR_ACKPOL   0x00400000
195#define TX3927_DMA_CCR_REQPL    0x00200000
196#define TX3927_DMA_CCR_EGREQ    0x00100000
197#define TX3927_DMA_CCR_CHDN     0x00080000
198#define TX3927_DMA_CCR_DNCTL    0x00060000
199#define TX3927_DMA_CCR_EXTRQ    0x00010000
200#define TX3927_DMA_CCR_INTRQD   0x0000e000
201#define TX3927_DMA_CCR_INTENE   0x00001000
202#define TX3927_DMA_CCR_INTENC   0x00000800
203#define TX3927_DMA_CCR_INTENT   0x00000400
204#define TX3927_DMA_CCR_CHNEN    0x00000200
205#define TX3927_DMA_CCR_XFACT    0x00000100
206#define TX3927_DMA_CCR_SNOP     0x00000080
207#define TX3927_DMA_CCR_DSTINC   0x00000040
208#define TX3927_DMA_CCR_SRCINC   0x00000020
209#define TX3927_DMA_CCR_XFSZ(order)      (((order) << 2) & 0x0000001c)
210#define TX3927_DMA_CCR_XFSZ_1W  TX3927_DMA_CCR_XFSZ(2)
211#define TX3927_DMA_CCR_XFSZ_4W  TX3927_DMA_CCR_XFSZ(4)
212#define TX3927_DMA_CCR_XFSZ_8W  TX3927_DMA_CCR_XFSZ(5)
213#define TX3927_DMA_CCR_XFSZ_16W TX3927_DMA_CCR_XFSZ(6)
214#define TX3927_DMA_CCR_XFSZ_32W TX3927_DMA_CCR_XFSZ(7)
215#define TX3927_DMA_CCR_MEMIO    0x00000002
216#define TX3927_DMA_CCR_ONEAD    0x00000001
217
218/* bits for CSRn */
219#define TX3927_DMA_CSR_CHNACT   0x00000100
220#define TX3927_DMA_CSR_ABCHC    0x00000080
221#define TX3927_DMA_CSR_NCHNC    0x00000040
222#define TX3927_DMA_CSR_NTRNFC   0x00000020
223#define TX3927_DMA_CSR_EXTDN    0x00000010
224#define TX3927_DMA_CSR_CFERR    0x00000008
225#define TX3927_DMA_CSR_CHERR    0x00000004
226#define TX3927_DMA_CSR_DESERR   0x00000002
227#define TX3927_DMA_CSR_SORERR   0x00000001
228
229/*
230 * IRC
231 */
232#define TX3927_IR_MAX_LEVEL     7
233
234/* IRCER : Int. Control Enable */
235#define TX3927_IRCER_ICE        0x00000001
236
237/* IRCR : Int. Control */
238#define TX3927_IRCR_LOW 0x00000000
239#define TX3927_IRCR_HIGH        0x00000001
240#define TX3927_IRCR_DOWN        0x00000002
241#define TX3927_IRCR_UP  0x00000003
242
243/* IRSCR : Int. Status Control */
244#define TX3927_IRSCR_EIClrE     0x00000100
245#define TX3927_IRSCR_EIClr_MASK 0x0000000f
246
247/* IRCSR : Int. Current Status */
248#define TX3927_IRCSR_IF 0x00010000
249#define TX3927_IRCSR_ILV_MASK   0x00000700
250#define TX3927_IRCSR_IVL_MASK   0x0000001f
251
252#define TX3927_IR_INT0  0
253#define TX3927_IR_INT1  1
254#define TX3927_IR_INT2  2
255#define TX3927_IR_INT3  3
256#define TX3927_IR_INT4  4
257#define TX3927_IR_INT5  5
258#define TX3927_IR_SIO0  6
259#define TX3927_IR_SIO1  7
260#define TX3927_IR_SIO(ch)       (6 + (ch))
261#define TX3927_IR_DMA   8
262#define TX3927_IR_PIO   9
263#define TX3927_IR_PCI   10
264#define TX3927_IR_TMR0  13
265#define TX3927_IR_TMR1  14
266#define TX3927_IR_TMR2  15
267#define TX3927_NUM_IR   16
268
269/*
270 * PCIC
271 */
272/* bits for PCICMD */
273/* see PCI_COMMAND_XXX in linux/pci.h */
274
275/* bits for PCISTAT */
276/* see PCI_STATUS_XXX in linux/pci.h */
277#define PCI_STATUS_NEW_CAP      0x0010
278
279/* bits for TC */
280#define TX3927_PCIC_TC_OF16E    0x00000020
281#define TX3927_PCIC_TC_IF8E     0x00000010
282#define TX3927_PCIC_TC_OF8E     0x00000008
283
284/* bits for IOBA/MBA */
285/* see PCI_BASE_ADDRESS_XXX in linux/pci.h */
286
287/* bits for PBAPMC */
288#define TX3927_PCIC_PBAPMC_RPBA 0x00000004
289#define TX3927_PCIC_PBAPMC_PBAEN        0x00000002
290#define TX3927_PCIC_PBAPMC_BMCEN        0x00000001
291
292/* bits for LBSTAT/LBIM */
293#define TX3927_PCIC_LBIM_ALL    0x0000003e
294
295/* bits for PCISTATIM (see also PCI_STATUS_XXX in linux/pci.h */
296#define TX3927_PCIC_PCISTATIM_ALL       0x0000f900
297
298/* bits for LBC */
299#define TX3927_PCIC_LBC_IBSE    0x00004000
300#define TX3927_PCIC_LBC_TIBSE   0x00002000
301#define TX3927_PCIC_LBC_TMFBSE  0x00001000
302#define TX3927_PCIC_LBC_HRST    0x00000800
303#define TX3927_PCIC_LBC_SRST    0x00000400
304#define TX3927_PCIC_LBC_EPCAD   0x00000200
305#define TX3927_PCIC_LBC_MSDSE   0x00000100
306#define TX3927_PCIC_LBC_CRR     0x00000080
307#define TX3927_PCIC_LBC_ILMDE   0x00000040
308#define TX3927_PCIC_LBC_ILIDE   0x00000020
309
310#define TX3927_PCIC_IDSEL_AD_TO_SLOT(ad)        ((ad) - 11)
311#define TX3927_PCIC_MAX_DEVNU   TX3927_PCIC_IDSEL_AD_TO_SLOT(32)
312
313/*
314 * CCFG
315 */
316/* CCFG : Chip Configuration */
317#define TX3927_CCFG_TLBOFF      0x00020000
318#define TX3927_CCFG_BEOW        0x00010000
319#define TX3927_CCFG_WR  0x00008000
320#define TX3927_CCFG_TOE 0x00004000
321#define TX3927_CCFG_PCIXARB     0x00002000
322#define TX3927_CCFG_PCI3        0x00001000
323#define TX3927_CCFG_PSNP        0x00000800
324#define TX3927_CCFG_PPRI        0x00000400
325#define TX3927_CCFG_PLLM        0x00000030
326#define TX3927_CCFG_ENDIAN      0x00000004
327#define TX3927_CCFG_HALT        0x00000002
328#define TX3927_CCFG_ACEHOLD     0x00000001
329
330/* PCFG : Pin Configuration */
331#define TX3927_PCFG_SYSCLKEN    0x08000000
332#define TX3927_PCFG_SDRCLKEN_ALL        0x07c00000
333#define TX3927_PCFG_SDRCLKEN(ch)        (0x00400000<<(ch))
334#define TX3927_PCFG_PCICLKEN_ALL        0x003c0000
335#define TX3927_PCFG_PCICLKEN(ch)        (0x00040000<<(ch))
336#define TX3927_PCFG_SELALL      0x0003ffff
337#define TX3927_PCFG_SELCS       0x00020000
338#define TX3927_PCFG_SELDSF      0x00010000
339#define TX3927_PCFG_SELSIOC_ALL 0x0000c000
340#define TX3927_PCFG_SELSIOC(ch) (0x00004000<<(ch))
341#define TX3927_PCFG_SELSIO_ALL  0x00003000
342#define TX3927_PCFG_SELSIO(ch)  (0x00001000<<(ch))
343#define TX3927_PCFG_SELTMR_ALL  0x00000e00
344#define TX3927_PCFG_SELTMR(ch)  (0x00000200<<(ch))
345#define TX3927_PCFG_SELDONE     0x00000100
346#define TX3927_PCFG_INTDMA_ALL  0x000000f0
347#define TX3927_PCFG_INTDMA(ch)  (0x00000010<<(ch))
348#define TX3927_PCFG_SELDMA_ALL  0x0000000f
349#define TX3927_PCFG_SELDMA(ch)  (0x00000001<<(ch))
350
351#ifndef __ASSEMBLY__
352
353#define tx3927_sdramcptr        ((struct tx3927_sdramc_reg *)TX3927_SDRAMC_REG)
354#define tx3927_romcptr          ((struct tx3927_romc_reg *)TX3927_ROMC_REG)
355#define tx3927_dmaptr           ((struct tx3927_dma_reg *)TX3927_DMA_REG)
356#define tx3927_ircptr           ((struct tx3927_irc_reg *)TX3927_IRC_REG)
357#define tx3927_pcicptr          ((struct tx3927_pcic_reg *)TX3927_PCIC_REG)
358#define tx3927_ccfgptr          ((struct tx3927_ccfg_reg *)TX3927_CCFG_REG)
359#define tx3927_tmrptr(ch)       ((struct txx927_tmr_reg *)TX3927_TMR_REG(ch))
360#define tx3927_sioptr(ch)       ((struct txx927_sio_reg *)TX3927_SIO_REG(ch))
361#define tx3927_pioptr           ((struct txx927_pio_reg *)TX3927_PIO_REG)
362
363#endif /* !__ASSEMBLY__ */
364
365#endif /* __ASM_TX3927_H */
Note: See TracBrowser for help on using the repository browser.