Annotation of margi2/l64021.h, revision 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>