Annotation of margi2/l64021.h, revision 1.1.1.1
1.1 cvs 1: /*
2: l64021.h
3:
4: Copyright (C) Christian Wolff for convergence integrated media.
5:
6: This program is free software; you can redistribute it and/or modify
7: it under the terms of the GNU General Public License as published by
8: the Free Software Foundation; either version 2 of the License, or
9: (at your option) any later version.
10:
11: This program is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU General Public License for more details.
15:
16: You should have received a copy of the GNU General Public License
17: along with this program; if not, write to the Free Software
18: Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19: */
20:
21: #ifndef _L64021_H_
22: #define _L64021_H_
23:
24: #include "margi.h"
25: #include "l64014.h"
26: // L64021 DRAM definitions
27:
28: #define DRAMMaxSize 0x00200000 // 2 MWords of DRAM
29:
30: // definitions for the L64021
31:
32: #define DECODER_OFFSET 0x400
33:
34: #define L21INTR0 0x000
35: #define L21INTR1 0x001
36: #define L21INTR2 0x002
37: #define L21INTR3 0x003
38: #define L21INTR4 0x004
39:
40:
41: // Host interface registers
42:
43: // Video Decoder Registers
44:
45: // CSS Regs
46:
47: // Memory Interface
48:
49: // Microcontroller
50:
51: // Video Interface
52:
53: // Audio Decoder
54:
55: // RAM Test
56:
57: // SPU Decoder
58:
59:
60:
61:
62: ////////////////////////////////////////////////////
63: // //
64: // Access to the L64021 registers (0x400-0x7FF) //
65: // //
66: ////////////////////////////////////////////////////
67:
68: #define DecoderWriteByte(card,where,what) WriteByte(card,where,what)
69: #define DecoderReadByte(card,where) ReadByte(card,where)
70: #define DecoderMaskByte(card,where,mask,bits) MaskByte(card,where,mask,bits)
71: #define DecoderSetByte(card,addr,bits) DecoderWriteByte(card,addr,DecoderReadByte(card,addr)|(bits))
72: #define DecoderDelByte(card,addr,mask) DecoderWriteByte(card,addr,DecoderReadByte(card,addr)&~(mask))
73:
74: #define DecoderReadWord(card,addr) ((u16)DecoderReadByte(card,addr)|\
75: ((u16)DecoderReadByte(card,(addr)+1)<<8))
76:
77: #define DecoderWriteWord(card,addr,data) {\
78: DecoderWriteByte(card,addr,(data) & 0xFF);\
79: DecoderWriteByte(card,(addr)+1,((data)>>8) & 0xFF);}
80:
81:
82: #define DecoderReadMWord(card, addr)(\
83: (u32)DecoderReadByte(card,addr)|\
84: ((u32)DecoderReadByte(card,(addr)+1)<<8)|\
85: ((u32)DecoderReadByte(card,(addr)+2)<<16))
86:
87: #define DecoderWriteMWord(card,addr,data) {\
88: DecoderWriteByte(card,addr,(data) & 0xFF);\
89: DecoderWriteByte(card,(addr)+1,((data)>>8) & 0xFF);\
90: DecoderWriteByte(card,(addr)+2,((data)>>16) & 0xFF);}
91:
92: #define DecoderReadDWord(card,addr) (\
93: (u32)DecoderReadByte(card,addr)|\
94: ((u32)DecoderReadByte(card,(addr)+1)<<8)|\
95: ((u32)DecoderReadByte(card,(addr)+2)<<16)|\
96: ((u32)DecoderReadByte(card,(addr)+3)<<24))
97:
98: #define DecoderWriteDWord(card,addr,data) {\
99: DecoderWriteByte(card,addr,(data) & 0xFF);\
100: DecoderWriteByte(card,(addr)+1,((data)>>8) & 0xFF);\
101: DecoderWriteByte(card,(addr)+2,((data)>>16) & 0xFF);\
102: DecoderWriteByte(card,(addr)+3,((data)>>24) & 0xFF);}
103:
104:
105: void l64020Reset(struct cvdv_cards *card);
106:
107:
108: #endif // _L64021_H_
LinuxTV legacy CVS <linuxtv.org/cvs>