| Open Sound System |
| Do you have problems with sound/audio application development? Don't panic! Click here for help! |
Confidential & Proprietary Private & Confidential Creative Confidential
Copyright (C) Creative Technology, Ltd., 2007. All rights reserved.
#ifndef _201kreg_H
#define _20k1reg_H
// PCI config registers
#define PCI_CFGHDR_VENDORID 0x00
#define PCI_CFGHDR_DEVICEID 0x02
#define PCI_CFGHDR_CMDREG 0x04
#define PCI_CFGHDR_STATUSREG 0x06
#define PCI_CFGHDR_REVID 0x08
#define PCI_CFGHDR_DEVCLASS 0x09
#define PCI_CFGHDR_CACHESIZE 0x0C
#define PCI_CFGHDR_LATENCY 0x0D
#define PCI_CFGHDR_HEADERTYPE 0x0E
#define PCI_CFGHDR_BIST 0x0F
#define PCI_CFGHDR_BASEREG0 0x10
#define PCI_CFGHDR_BASEREG1 0x14
#define PCI_CFGHDR_BASEREG2 0x18
#define PCI_CFGHDR_BASEREG3 0x1C
#define PCI_CFGHDR_BASEREG4 0x20
#define PCI_CFGHDR_BASEREG5 0x24
#define PCI_CFGHDR_RESERVED1 0x28
#define PCI_CFGHDR_SUBVENDORID 0x2C
#define PCI_CFGHDR_SUBSYSTEMID 0x2E
#define PCI_CFGHDR_EXPANDROM 0x30
#define PCI_CFGHDR_RESERVED2 0x34
#define PCI_CFGHDR_CAPS_PTR 0x34
#define PCI_CFGHDR_IRQLINE 0x3C
#define PCI_CFGHDR_IRQPIN 0x3D
#define PCI_CFGHDR_MINGRANT 0x3E
#define PCI_CFGHDR_MAXLATENCY 0x3F
#define PCI_CFGHDR_LACR1 0x40
#define PCI_CFGHDR_LACR2 0x41
#define PCI_CFGHDR_LACR3 0x42
#define PCI_CFGHDR_LACR4 0x43
// 20k1 registers
#define DSPXRAM_START 0x000000
#define DSPXRAM_END 0x013FFC
#define DSPAXRAM_START 0x020000
#define DSPAXRAM_END 0x023FFC
#define DSPYRAM_START 0x040000
#define DSPYRAM_END 0x04FFFC
#define DSPAYRAM_START 0x020000
#define DSPAYRAM_END 0x063FFC
#define DSPMICRO_START 0x080000
#define DSPMICRO_END 0x0B3FFC
#define DSP0IO_START 0x100000
#define DSP0IO_END 0x101FFC
#define AUDIORINGIPDSP0_START 0x100000
#define AUDIORINGIPDSP0_END 0x1003FC
#define AUDIORINGOPDSP0_START 0x100400
#define AUDIORINGOPDSP0_END 0x1007FC
#define AUDPARARINGIODSP0_START 0x100800
#define AUDPARARINGIODSP0_END 0x100BFC
#define DSP0LOCALHWREG_START 0x100C00
#define DSP0LOCALHWREG_END 0x100C3C
#define DSP0XYRAMAGINDEX_START 0x100C40
#define DSP0XYRAMAGINDEX_END 0x100C5C
#define DSP0XYRAMAGMDFR_START 0x100C60
#define DSP0XYRAMAGMDFR_END 0x100C7C
#define DSP0INTCONTLVEC_START 0x100C80
#define DSP0INTCONTLVEC_END 0x100CD8
#define INTCONTLGLOBALREG_START 0x100D1C
#define INTCONTLGLOBALREG_END 0x100D3C
#define HOSTINTFPORTADDRCONTDSP0 0x100D40
#define HOSTINTFPORTDATADSP0 0x100D44
#define TIME0PERENBDSP0 0x100D60
#define TIME0COUNTERDSP0 0x100D64
#define TIME1PERENBDSP0 0x100D68
#define TIME1COUNTERDSP0 0x100D6C
#define TIME2PERENBDSP0 0x100D70
#define TIME2COUNTERDSP0 0x100D74
#define TIME3PERENBDSP0 0x100D78
#define TIME3COUNTERDSP0 0x100D7C
#define XRAMINDOPERREFNOUP_STARTDSP0 0x100D80
#define XRAMINDOPERREFNOUP_ENDDSP0 0x100D9C
#define XRAMINDOPERREFUP_STARTDSP0 0x100DA0
#define XRAMINDOPERREFUP_ENDDSP0 0x100DBC
#define YRAMINDOPERREFNOUP_STARTDSP0 0x100DC0
#define YRAMINDOPERREFNOUP_ENDDSP0 0x100DDC
#define YRAMINDOPERREFUP_STARTDSP0 0x100DE0
#define YRAMINDOPERREFUP_ENDDSP0 0x100DFC
#define DSP0CONDCODE 0x100E00
#define DSP0STACKFLAG 0x100E04
#define DSP0PROGCOUNTSTACKPTREG 0x100E08
#define DSP0PROGCOUNTSTACKDATAREG 0x100E0C
#define DSP0CURLOOPADDRREG 0x100E10
#define DSP0CURLOOPCOUNT 0x100E14
#define DSP0TOPLOOPCOUNTSTACK 0x100E18
#define DSP0TOPLOOPADDRSTACK 0x100E1C
#define DSP0LOOPSTACKPTR 0x100E20
#define DSP0STASSTACKDATAREG 0x100E24
#define DSP0STASSTACKPTR 0x100E28
#define DSP0PROGCOUNT 0x100E2C
#define GLOBDSPDEBGREG 0x100E30
#define GLOBDSPBREPTRREG 0x100E30
#define DSP0XYRAMBASE_START 0x100EA0
#define DSP0XYRAMBASE_END 0x100EBC
#define DSP0XYRAMLENG_START 0x100EC0
#define DSP0XYRAMLENG_END 0x100EDC
#define SEMAPHOREREGDSP0 0x100EE0
#define DSP0INTCONTMASKREG 0x100EE4
#define DSP0INTCONTPENDREG 0x100EE8
#define DSP0INTCONTSERVINT 0x100EEC
#define DSPINTCONTEXTINTMODREG 0x100EEC
#define GPIODSP0 0x100EFC
#define DMADSPBASEADDRREG_STARTDSP0 0x100F00
#define DMADSPBASEADDRREG_ENDDSP0 0x100F1C
#define DMAHOSTBASEADDRREG_STARTDSP0 0x100F20
#define DMAHOSTBASEADDRREG_ENDDSP0 0x100F3C
#define DMADSPCURADDRREG_STARTDSP0 0x100F40
#define DMADSPCURADDRREG_ENDDSP0 0x100F5C
#define DMAHOSTCURADDRREG_STARTDSP0 0x100F60
#define DMAHOSTCURADDRREG_ENDDSP0 0x100F7C
#define DMATANXCOUNTREG_STARTDSP0 0x100F80
#define DMATANXCOUNTREG_ENDDSP0 0x100F9C
#define DMATIMEBUGREG_STARTDSP0 0x100FA0
#define DMATIMEBUGREG_ENDDSP0 0x100FAC
#define DMACNTLMODFREG_STARTDSP0 0x100FA0
#define DMACNTLMODFREG_ENDDSP0 0x100FAC
#define DMAGLOBSTATSREGDSP0 0x100FEC
#define DSP0XGPRAM_START 0x101000
#define DSP0XGPRAM_END 0x1017FC
#define DSP0YGPRAM_START 0x101800
#define DSP0YGPRAM_END 0x101FFC
#define AUDIORINGIPDSP1_START 0x102000
#define AUDIORINGIPDSP1_END 0x1023FC
#define AUDIORINGOPDSP1_START 0x102400
#define AUDIORINGOPDSP1_END 0x1027FC
#define AUDPARARINGIODSP1_START 0x102800
#define AUDPARARINGIODSP1_END 0x102BFC
#define DSP1LOCALHWREG_START 0x102C00
#define DSP1LOCALHWREG_END 0x102C3C
#define DSP1XYRAMAGINDEX_START 0x102C40
#define DSP1XYRAMAGINDEX_END 0x102C5C
#define DSP1XYRAMAGMDFR_START 0x102C60
#define DSP1XYRAMAGMDFR_END 0x102C7C
#define DSP1INTCONTLVEC_START 0x102C80
#define DSP1INTCONTLVEC_END 0x102CD8
#define HOSTINTFPORTADDRCONTDSP1 0x102D40
#define HOSTINTFPORTDATADSP1 0x102D44
#define TIME0PERENBDSP1 0x102D60
#define TIME0COUNTERDSP1 0x102D64
#define TIME1PERENBDSP1 0x102D68
#define TIME1COUNTERDSP1 0x102D6C
#define TIME2PERENBDSP1 0x102D70
#define TIME2COUNTERDSP1 0x102D74
#define TIME3PERENBDSP1 0x102D78
#define TIME3COUNTERDSP1 0x102D7C
#define XRAMINDOPERREFNOUP_STARTDSP1 0x102D80
#define XRAMINDOPERREFNOUP_ENDDSP1 0x102D9C
#define XRAMINDOPERREFUP_STARTDSP1 0x102DA0
#define XRAMINDOPERREFUP_ENDDSP1 0x102DBC
#define YRAMINDOPERREFNOUP_STARTDSP1 0x102DC0
#define YRAMINDOPERREFNOUP_ENDDSP1 0x102DDC
#define YRAMINDOPERREFUP_STARTDSP1 0x102DE0
#define YRAMINDOPERREFUP_ENDDSP1 0x102DFC
#define DSP1CONDCODE 0x102E00
#define DSP1STACKFLAG 0x102E04
#define DSP1PROGCOUNTSTACKPTREG 0x102E08
#define DSP1PROGCOUNTSTACKDATAREG 0x102E0C
#define DSP1CURLOOPADDRREG 0x102E10
#define DSP1CURLOOPCOUNT 0x102E14
#define DSP1TOPLOOPCOUNTSTACK 0x102E18
#define DSP1TOPLOOPADDRSTACK 0x102E1C
#define DSP1LOOPSTACKPTR 0x102E20
#define DSP1STASSTACKDATAREG 0x102E24
#define DSP1STASSTACKPTR 0x102E28
#define DSP1PROGCOUNT 0x102E2C
#define DSP1XYRAMBASE_START 0x102EA0
#define DSP1XYRAMBASE_END 0x102EBC
#define DSP1XYRAMLENG_START 0x102EC0
#define DSP1XYRAMLENG_END 0x102EDC
#define SEMAPHOREREGDSP1 0x102EE0
#define DSP1INTCONTMASKREG 0x102EE4
#define DSP1INTCONTPENDREG 0x102EE8
#define DSP1INTCONTSERVINT 0x102EEC
#define GPIODSP1 0x102EFC
#define DMADSPBASEADDRREG_STARTDSP1 0x102F00
#define DMADSPBASEADDRREG_ENDDSP1 0x102F1C
#define DMAHOSTBASEADDRREG_STARTDSP1 0x102F20
#define DMAHOSTBASEADDRREG_ENDDSP1 0x102F3C
#define DMADSPCURADDRREG_STARTDSP1 0x102F40
#define DMADSPCURADDRREG_ENDDSP1 0x102F5C
#define DMAHOSTCURADDRREG_STARTDSP1 0x102F60
#define DMAHOSTCURADDRREG_ENDDSP1 0x102F7C
#define DMATANXCOUNTREG_STARTDSP1 0x102F80
#define DMATANXCOUNTREG_ENDDSP1 0x102F9C
#define DMATIMEBUGREG_STARTDSP1 0x102FA0
#define DMATIMEBUGREG_ENDDSP1 0x102FAC
#define DMACNTLMODFREG_STARTDSP1 0x102FA0
#define DMACNTLMODFREG_ENDDSP1 0x102FAC
#define DMAGLOBSTATSREGDSP1 0x102FEC
#define DSP1XGPRAM_START 0x103000
#define DSP1XGPRAM_END 0x1033FC
#define DSP1YGPRAM_START 0x103400
#define DSP1YGPRAM_END 0x1037FC
#define AUDIORINGIPDSP2_START 0x104000
#define AUDIORINGIPDSP2_END 0x1043FC
#define AUDIORINGOPDSP2_START 0x104400
#define AUDIORINGOPDSP2_END 0x1047FC
#define AUDPARARINGIODSP2_START 0x104800
#define AUDPARARINGIODSP2_END 0x104BFC
#define DSP2LOCALHWREG_START 0x104C00
#define DSP2LOCALHWREG_END 0x104C3C
#define DSP2XYRAMAGINDEX_START 0x104C40
#define DSP2XYRAMAGINDEX_END 0x104C5C
#define DSP2XYRAMAGMDFR_START 0x104C60
#define DSP2XYRAMAGMDFR_END 0x104C7C
#define DSP2INTCONTLVEC_START 0x104C80
#define DSP2INTCONTLVEC_END 0x104CD8
#define HOSTINTFPORTADDRCONTDSP2 0x104D40
#define HOSTINTFPORTDATADSP2 0x104D44
#define TIME0PERENBDSP2 0x104D60
#define TIME0COUNTERDSP2 0x104D64
#define TIME1PERENBDSP2 0x104D68
#define TIME1COUNTERDSP2 0x104D6C
#define TIME2PERENBDSP2 0x104D70
#define TIME2COUNTERDSP2 0x104D74
#define TIME3PERENBDSP2 0x104D78
#define TIME3COUNTERDSP2 0x104D7C
#define XRAMINDOPERREFNOUP_STARTDSP2 0x104D80
#define XRAMINDOPERREFNOUP_ENDDSP2 0x104D9C
#define XRAMINDOPERREFUP_STARTDSP2 0x104DA0
#define XRAMINDOPERREFUP_ENDDSP2 0x104DBC
#define YRAMINDOPERREFNOUP_STARTDSP2 0x104DC0
#define YRAMINDOPERREFNOUP_ENDDSP2 0x104DDC
#define YRAMINDOPERREFUP_STARTDSP2 0x104DE0
#define YRAMINDOPERREFUP_ENDDSP2 0x104DFC
#define DSP2CONDCODE 0x104E00
#define DSP2STACKFLAG 0x104E04
#define DSP2PROGCOUNTSTACKPTREG 0x104E08
#define DSP2PROGCOUNTSTACKDATAREG 0x104E0C
#define DSP2CURLOOPADDRREG 0x104E10
#define DSP2CURLOOPCOUNT 0x104E14
#define DSP2TOPLOOPCOUNTSTACK 0x104E18
#define DSP2TOPLOOPADDRSTACK 0x104E1C
#define DSP2LOOPSTACKPTR 0x104E20
#define DSP2STASSTACKDATAREG 0x104E24
#define DSP2STASSTACKPTR 0x104E28
#define DSP2PROGCOUNT 0x104E2C
#define DSP2XYRAMBASE_START 0x104EA0
#define DSP2XYRAMBASE_END 0x104EBC
#define DSP2XYRAMLENG_START 0x104EC0
#define DSP2XYRAMLENG_END 0x104EDC
#define SEMAPHOREREGDSP2 0x104EE0
#define DSP2INTCONTMASKREG 0x104EE4
#define DSP2INTCONTPENDREG 0x104EE8
#define DSP2INTCONTSERVINT 0x104EEC
#define GPIODSP2 0x104EFC
#define DMADSPBASEADDRREG_STARTDSP2 0x104F00
#define DMADSPBASEADDRREG_ENDDSP2 0x104F1C
#define DMAHOSTBASEADDRREG_STARTDSP2 0x104F20
#define DMAHOSTBASEADDRREG_ENDDSP2 0x104F3C
#define DMADSPCURADDRREG_STARTDSP2 0x104F40
#define DMADSPCURADDRREG_ENDDSP2 0x104F5C
#define DMAHOSTCURADDRREG_STARTDSP2 0x104F60
#define DMAHOSTCURADDRREG_ENDDSP2 0x104F7C
#define DMATANXCOUNTREG_STARTDSP2 0x104F80
#define DMATANXCOUNTREG_ENDDSP2 0x104F9C
#define DMATIMEBUGREG_STARTDSP2 0x104FA0
#define DMATIMEBUGREG_ENDDSP2 0x104FAC
#define DMACNTLMODFREG_STARTDSP2 0x104FA0
#define DMACNTLMODFREG_ENDDSP2 0x104FAC
#define DMAGLOBSTATSREGDSP2 0x104FEC
#define DSP2XGPRAM_START 0x105000
#define DSP2XGPRAM_END 0x1051FC
#define DSP2YGPRAM_START 0x105800
#define DSP2YGPRAM_END 0x1059FC
#define AUDIORINGIPDSP3_START 0x106000
#define AUDIORINGIPDSP3_END 0x1063FC
#define AUDIORINGOPDSP3_START 0x106400
#define AUDIORINGOPDSP3_END 0x1067FC
#define AUDPARARINGIODSP3_START 0x106800
#define AUDPARARINGIODSP3_END 0x106BFC
#define DSP3LOCALHWREG_START 0x106C00
#define DSP3LOCALHWREG_END 0x106C3C
#define DSP3XYRAMAGINDEX_START 0x106C40
#define DSP3XYRAMAGINDEX_END 0x106C5C
#define DSP3XYRAMAGMDFR_START 0x106C60
#define DSP3XYRAMAGMDFR_END 0x106C7C
#define DSP3INTCONTLVEC_START 0x106C80
#define DSP3INTCONTLVEC_END 0x106CD8
#define HOSTINTFPORTADDRCONTDSP3 0x106D40
#define HOSTINTFPORTDATADSP3 0x106D44
#define TIME0PERENBDSP3 0x106D60
#define TIME0COUNTERDSP3 0x106D64
#define TIME1PERENBDSP3 0x106D68
#define TIME1COUNTERDSP3 0x106D6C
#define TIME2PERENBDSP3 0x106D70
#define TIME2COUNTERDSP3 0x106D74
#define TIME3PERENBDSP3 0x106D78
#define TIME3COUNTERDSP3 0x106D7C
#define XRAMINDOPERREFNOUP_STARTDSP3 0x106D80
#define XRAMINDOPERREFNOUP_ENDDSP3 0x106D9C
#define XRAMINDOPERREFUP_STARTDSP3 0x106DA0
#define XRAMINDOPERREFUP_ENDDSP3 0x106DBC
#define YRAMINDOPERREFNOUP_STARTDSP3 0x106DC0
#define YRAMINDOPERREFNOUP_ENDDSP3 0x106DDC
#define YRAMINDOPERREFUP_STARTDSP3 0x106DE0
#define YRAMINDOPERREFUP_ENDDSP3 0x100DFC
#define DSP3CONDCODE 0x106E00
#define DSP3STACKFLAG 0x106E04
#define DSP3PROGCOUNTSTACKPTREG 0x106E08
#define DSP3PROGCOUNTSTACKDATAREG 0x106E0C
#define DSP3CURLOOPADDRREG 0x106E10
#define DSP3CURLOOPCOUNT 0x106E14
#define DSP3TOPLOOPCOUNTSTACK 0x106E18
#define DSP3TOPLOOPADDRSTACK 0x106E1C
#define DSP3LOOPSTACKPTR 0x106E20
#define DSP3STASSTACKDATAREG 0x106E24
#define DSP3STASSTACKPTR 0x106E28
#define DSP3PROGCOUNT 0x106E2C
#define DSP3XYRAMBASE_START 0x106EA0
#define DSP3XYRAMBASE_END 0x106EBC
#define DSP3XYRAMLENG_START 0x106EC0
#define DSP3XYRAMLENG_END 0x106EDC
#define SEMAPHOREREGDSP3 0x106EE0
#define DSP3INTCONTMASKREG 0x106EE4
#define DSP3INTCONTPENDREG 0x106EE8
#define DSP3INTCONTSERVINT 0x106EEC
#define GPIODSP3 0x106EFC
#define DMADSPBASEADDRREG_STARTDSP3 0x106F00
#define DMADSPBASEADDRREG_ENDDSP3 0x106F1C
#define DMAHOSTBASEADDRREG_STARTDSP3 0x106F20
#define DMAHOSTBASEADDRREG_ENDDSP3 0x106F3C
#define DMADSPCURADDRREG_STARTDSP3 0x106F40
#define DMADSPCURADDRREG_ENDDSP3 0x106F5C
#define DMAHOSTCURADDRREG_STARTDSP3 0x106F60
#define DMAHOSTCURADDRREG_ENDDSP3 0x106F7C
#define DMATANXCOUNTREG_STARTDSP3 0x106F80
#define DMATANXCOUNTREG_ENDDSP3 0x106F9C
#define DMATIMEBUGREG_STARTDSP3 0x106FA0
#define DMATIMEBUGREG_ENDDSP3 0x106FAC
#define DMACNTLMODFREG_STARTDSP3 0x106FA0
#define DMACNTLMODFREG_ENDDSP3 0x106FAC
#define DMAGLOBSTATSREGDSP3 0x106FEC
#define DSP3XGPRAM_START 0x107000
#define DSP3XGPRAM_END 0x1071FC
#define DSP3YGPRAM_START 0x107800
#define DSP3YGPRAM_END 0x1079FC
//end of DSP reg definitions
#define DSPAIMAP_START 0x108000
#define DSPAIMAP_END 0x1083FC
#define DSPPIMAP_START 0x108400
#define DSPPIMAP_END 0x1087FC
#define DSPPOMAP_START 0x108800
#define DSPPOMAP_END 0x108BFC
#define DSPPOCTL 0x108C00
#define TKCTL_START 0x110000
#define TKCTL_END 0x110FFC
#define TKCC_START 0x111000
#define TKCC_END 0x111FFC
#define TKIMAP_START 0x112000
#define TKIMAP_END 0x112FFC
#define TKDCTR16 0x113000
#define TKPB16 0x113004
#define TKBS16 0x113008
#define TKDCTR32 0x11300C
#define TKPB32 0x113010
#define TKBS32 0x113014
#define ICDCTR16 0x113018
#define ITBS16 0x11301C
#define ICDCTR32 0x113020
#define ITBS32 0x113024
#define ITSTART 0x113028
#define TKSQ 0x11302C
#define TKSCCTL_START 0x114000
#define TKSCCTL_END 0x11403C
#define TKSCADR_START 0x114100
#define TKSCADR_END 0x11413C
#define TKSCDATAX_START 0x114800
#define TKSCDATAX_END 0x1149FC
#define TKPCDATAX_START 0x120000
#define TKPCDATAX_END 0x12FFFC
#define MALSA 0x130000
#define MAPPHA 0x130004
#define MAPPLA 0x130008
#define MALSB 0x130010
#define MAPPHB 0x130014
#define MAPPLB 0x130018
#define TANSPORTMAPABREGS_START 0x130020
#define TANSPORTMAPABREGS_END 0x13A2FC
#define PTPAHX 0x13B000
#define PTPALX 0x13B004
//#define PTPALX 0x13B004
#define TANSPPAGETABLEPHYADDR015_START 0x13B008
#define TANSPPAGETABLEPHYADDR015_END 0x13B07C
#define TRNQADRX_START 0x13B100
#define TRNQADRX_END 0x13B13C
#define TRNQTIMX_START 0x13B200
#define TRNQTIMX_END 0x13B23C
#define TRNQAPARMX_START 0x13B300
#define TRNQAPARMX_END 0x13B33C
#define TRNQCNT 0x13B400
#define TRNCTL 0x13B404
#define TRNIS 0x13B408
#define TRNCURTS 0x13B40C
#define AMOP_START(n) 0x140000+(8*(n))
#define AMOP_END 0x147FFC
#define PMOP_START 0x148000
#define PMOP_END 0x14FFFC
#define PCURR_START 0x150000
#define PCURR_END 0x153FFC
#define PTRAG_START 0x154000
#define PTRAG_END 0x157FFC
#define PSR_START 0x158000
#define PSR_END 0x15BFFC
#define PFSTAT4SEG_START 0x160000
#define PFSTAT4SEG_END 0x160BFC
#define PFSTAT2SEG_START 0x160C00
#define PFSTAT2SEG_END 0x1617FC
#define PFTARG4SEG_START 0x164000
#define PFTARG4SEG_END 0x164BFC
#define PFTARG2SEG_START 0x164C00
#define PFTARG2SEG_END 0x1657FC
#define PFSR4SEG_START 0x168000
#define PFSR4SEG_END 0x168BFC
#define PFSR2SEG_START 0x168C00
#define PFSR2SEG_END 0x1697FC
#define PCURRMS4SEG_START 0x16C000
#define PCURRMS4SEG_END 0x16CCFC
#define PCURRMS2SEG_START 0x16CC00
#define PCURRMS2SEG_END 0x16D7FC
#define PTARGMS4SEG_START 0x170000
#define PTARGMS4SEG_END 0x172FFC
#define PTARGMS2SEG_START 0x173000
#define PTARGMS2SEG_END 0x1747FC
#define PSRMS4SEG_START 0x170000
#define PSRMS4SEG_END 0x172FFC
#define PSRMS2SEG_START 0x173000
#define PSRMS2SEG_END 0x1747FC
#define PRING_LO_START 0x190000
#define PRING_LO_END 0x193FFC
#define PRING_HI_START 0x194000
#define PRING_HI_END 0x197FFC
#define PRING_LO_HI_START(n) 0x198000+(4*(n))
#define PRING_LO_HI_END 0x19BFFC
#define PINTFIFO 0x1A0000
#define SRCCTL(n) 0x1B0000+((n)*0x100)
# define SRCCTL_ILSZ (1<<16) // bits 16-19
# define SRCCTL_IE (1<<15)
#define SRCCCR(n) 0x1B0004+(0x100*(n))
#define SRCIMAP(n) 0x1B0008+(0x100*(n))
#define SRCODDC 0x1B000C
#define SRCCA(n) 0x1B0010+((n)*0x100)
#define SRCCF(n) 0x1B0014+((n)*0x100)
#define SRCSA(n) 0x1B0018+((n)*0x100)
#define SRCLA(n) 0x1B001C+((n)*0x100)
#define SRCCTLSWR 0x1B0020
///SRC HERE
#define SRCALBA 0x1B002C
#define SRCMCTL 0x1B012C
#define SRCCERR 0x1B022C
#define SRCITB 0x1B032C
#define SRCIPM 0x1B082C
#define SRCIP(n) 0x1B102C+((n)*0x100)
#define SRCENBSTAT 0x1B202C
#define SRCENBLO 0x1B212C
#define SRCENBHI 0x1B222C
#define SRCENBS 0x1B352C
#define SRCENB07 0x1B282C
#define SRCENBS07 0x1B302C
#define SRCDN0Z0 0x1B0030
#define SRCDN0Z1 0x1B0034
#define SRCDN0Z2 0x1B0038
#define SRCDN0Z3 0x1B003C
#define SRCDN1Z0 0x1B0040
#define SRCDN1Z1 0x1B0044
#define SRCDN1Z2 0x1B0048
#define SRCDN1Z3 0x1B004C
#define SRCDN1Z4 0x1B0050
#define SRCDN1Z5 0x1B0054
#define SRCDN1Z6 0x1B0058
#define SRCDN1Z7 0x1B005C
#define SRCUPZ0 0x1B0060
#define SRCUPZ1 0x1B0064
#define SRCUPZ2 0x1B0068
#define SRCUPZ3 0x1B006C
#define SRCUPZ4 0x1B0070
#define SRCUPZ5 0x1B0074
#define SRCUPZ6 0x1B0078
#define SRCUPZ7 0x1B007C
#define SRCCD0 0x1B0080
#define SRCCD1 0x1B0084
#define SRCCD2 0x1B0088
#define SRCCD3 0x1B008C
#define SRCCD4 0x1B0090
#define SRCCD5 0x1B0094
#define SRCCD6 0x1B0098
#define SRCCD7 0x1B009C
#define SRCCD8 0x1B00A0
#define SRCCD9 0x1B00A4
#define SRCCDA 0x1B00A8
#define SRCCDB 0x1B00AC
#define SRCCDC 0x1B00B0
#define SRCCDD 0x1B00B4
#define SRCCDE 0x1B00B8
#define SRCCDF 0x1B00BC
#define SRCCD10 0x1B00C0
#define SRCCD11 0x1B00C4
#define SRCCD12 0x1B00C8
#define SRCCD13 0x1B00CC
#define SRCCD14 0x1B00D0
#define SRCCD15 0x1B00D4
#define SRCCD16 0x1B00D8
#define SRCCD17 0x1B00DC
#define SRCCD18 0x1B00E0
#define SRCCD19 0x1B00E4
#define SRCCD1A 0x1B00E8
#define SRCCD1B 0x1B00EC
#define SRCCD1C 0x1B00F0
#define SRCCD1D 0x1B00F4
#define SRCCD1E 0x1B00F8
#define SRCCD1F 0x1B00FC
#define SRCCONTRBLOCK_START 0x1B0100
#define SRCCONTRBLOCK_END 0x1BFFFC
#define FILTOP_START 0x1C0000
#define FILTOP_END 0x1C05FC
#define FILTIMAP_START 0x1C0800
#define FILTIMAP_END 0x1C0DFC
#define FILTZ1_START 0x1C1000
#define FILTZ1_END 0x1C15FC
#define FILTZ2_START 0x1C1800
#define FILTZ2_END 0x1C1DFC
#define DAOIMAP_START(n) 0x1C5000+(4*(n))
#define DAOIMAP_END 0x1C5124
#define AC97D 0x1C5400
#define AC97A 0x1C5404
#define AC97CTL 0x1C5408
#define I2SCTL 0x1C5420
#define SPOSA 0x1C5440
#define SPOSB 0x1C5444
#define SPOSC 0x1C5448
#define SPOSD 0x1C544C
#define SPISA 0x1C5450
#define SPISB 0x1C5454
#define SPISC 0x1C5458
#define SPISD 0x1C545C
#define SPFSCTL 0x1C5460
#define SPFS0 0x1C5468
#define SPFS1 0x1C546C
#define SPFS2 0x1C5470
#define SPFS3 0x1C5474
#define SPFS4 0x1C5478
#define SPFS5 0x1C547C
#define SPOCTL 0x1C5480
#define SPICTL 0x1C5484
#define SPISTS 0x1C5488
#define SPINTP 0x1C548C
#define SPINTE 0x1C5490
#define SPUTCTLAB 0x1C5494
#define SPUTCTLCD 0x1C5498
#define SRTSPA 0x1C54C0
#define SRTSPB 0x1C54C4
#define SRTSPC 0x1C54C8
#define SRTSPD 0x1C54CC
#define SRTSCTLA 0x1C54D0
#define SRTSCTLB 0x1C54D4
#define SRTSCTLC 0x1C54D8
#define SRTSCTLD 0x1C54DC
#define SRTI2S 0x1C54E0
#define SRTICTL 0x1C54F0
#define WC 0x1C6000
#define TIMR 0x1C6004
# define TIMR_IE (1<<15)
# define TIMR_IP (1<<14)
#define GIP 0x1C6010
# define PLL_INT (1<<10)
# define FI_INT (1<<9)
# define IT_INT (1<<8)
# define PCI_INT (1<<7)
# define URT_INT (1<<6)
# define GPI_INT (1<<5)
# define MIX_INT (1<<4)
# define DAI_INT (1<<3)
# define TP_INT (1<<2)
# define DSP_INT (1<<1)
# define SRC_INT (1<<0)
#define GIE 0x1C6014
#define DIE 0x1C6018
#define DIC 0x1C601C
#define GPIO 0x1C6020
#define GPIOCTL 0x1C6024
#define GPIP 0x1C6028
#define GPIE 0x1C602C
#define DSPINT0 0x1C6030
#define DSPEIOC 0x1C6034
//#define MUADAT 0x00700000L /* Midi Uart A DATa */
//#define MUACMD 0x00710000L /* Midi Uart A CoMmanD */
//#define MUASTAT 0x00710000L /* Midi Uart A STATus */
//#define MUBDAT 0x00720000L /* Midi Uart B DATa */
//#define MUBCMD 0x00730000L /* Midi Uart B CoMmanD */
//#define MUBSTAT 0x00730000L /* Midi Uart B STATus */
#define MUADAT 0x1C6040
#define MUACMD 0x1C6044
#define MUASTAT 0x1C6044
#define MUBDAT 0x1C6048
#define MUBCMD 0x1C604C
#define MUBSTAT 0x1C604C
#define UARTCMA 0x1C6050
#define UARTCMB 0x1C6054
#define UARTIP 0x1C6058
#define UARTIE 0x1C605C
#define PLLCTL 0x1C6060
#define PLLDCD 0x1C6064
#define GCTL 0x1C6070
#define ID0 0x1C6080
#define ID1 0x1C6084
#define ID2 0x1C6088
#define ID3 0x1C608C
#define SDRCTL 0x1C7000
#define I2SA_L 0x0L
#define I2SA_R 0x1L
#define I2SB_L 0x8L
#define I2SB_R 0x9L
#define I2SC_L 0x10L
#define I2SC_R 0x11L
#define I2SD_L 0x18L
#define I2SD_R 0x19L
typedef enum
{
//block 0
FIL_CH_0 = 0,
SRC_CH_0 = 0x1,
MIXER_SUM_CH_0 = 0xc,
//block 1
FIL_CH_1 = 0x10,
SRC_CH_1 = 0x11,
MIXER_SUM_CH_1 = 0x1c,
DAI_CH_AC97L = 0x5e5,
DAI_CH_AC97R = 0x7e5,
DAI_CH_AC97MIC = 0xde5,
//daoi i2s out block
DAI_CH_I2SAL = 0x0,
DAI_CH_I2SAR = 0x1,
DAI_CH_I2SA1L = 0x2,
DAI_CH_I2SA1R = 0x3,
DAI_CH_I2SA2L = 0x4,
DAI_CH_I2SA2R = 0x5,
DAI_CH_I2SA3L = 0x6,
DAI_CH_I2SA3R = 0x7,
DAI_CH_I2SBL = 0x8,
DAI_CH_I2SBR = 0x9,
DAI_CH_I2SB1L = 0xa,
DAI_CH_I2SB1R = 0xb,
DAI_CH_I2SB2L = 0xc,
DAI_CH_I2SB2R = 0xd,
DAI_CH_I2SB3L = 0xe,
DAI_CH_I2SB3R = 0xf,
DAI_CH_I2SCL = 0x10,
DAI_CH_I2SCR = 0x11,
DAI_CH_I2SC1L = 0x12,
DAI_CH_I2SC1R = 0x13,
DAI_CH_I2SC2L = 0x14,
DAI_CH_I2SC2R = 0x15,
DAI_CH_I2SC3L = 0x16,
DAI_CH_I2SC3R = 0x17,
DAI_CH_I2SDL = 0x18,
DAI_CH_I2SDR = 0x19,
DAI_CH_I2SD1L = 0x1a,
DAI_CH_I2SD1R = 0x1b,
DAI_CH_I2SD2L = 0x1c,
DAI_CH_I2SD2R = 0x1d,
DAI_CH_I2SD3L = 0x1e,
DAI_CH_I2SD3R = 0x1f,
//daoi spdif out
DAI_CH_SPDIFAL = 0x20,
DAI_CH_SPDIFAR = 0x21,
DAI_CH_SPDIFA1L = 0x22,
DAI_CH_SPDIFA1R = 0x23,
DAI_CH_SPDIFA2L = 0x24,
DAI_CH_SPDIFA2R = 0x25,
DAI_CH_SPDIFA3L = 0x26,
DAI_CH_SPDIFA3R = 0x27,
DAI_CH_SPDIFBL = 0x28,
DAI_CH_SPDIFBR = 0x29,
DAI_CH_SPDIFB1L = 0x2a,
DAI_CH_SPDIFB1R = 0x2b,
DAI_CH_SPDIFB2L = 0x2c,
DAI_CH_SPDIFB2R = 0x2d,
DAI_CH_SPDIFB3L = 0x2e,
DAI_CH_SPDIFB3R = 0x2f,
DAI_CH_SPDIFCL = 0x30,
DAI_CH_SPDIFCR = 0x31,
DAI_CH_SPDIFC1L = 0x32,
DAI_CH_SPDIFC1R = 0x33,
DAI_CH_SPDIFC2L = 0x34,
DAI_CH_SPDIFC2R = 0x35,
DAI_CH_SPDIFC3L = 0x36,
DAI_CH_SPDIFC3R = 0x37,
DAI_CH_SPDIFDL = 0x38,
DAI_CH_SPDIFDR = 0x39,
DAI_CH_SPDIFD1L = 0x3a,
DAI_CH_SPDIFD1R = 0x3b,
DAI_CH_SPDIFD2L = 0x3c,
DAI_CH_SPDIFD2R = 0x3d,
DAI_CH_SPDIFD3L = 0x3e,
DAI_CH_SPDIFD3R = 0x3f,
//daio i2s block(in)
DAI_CH_I2SINA1L = 0x035,
DAI_CH_I2SINA1R = 0x03D,
DAI_CH_I2SINB1L = 0x0B5,
DAI_CH_I2SINB1R = 0x0BD,
DAI_CH_I2SINC1L = 0x135,
DAI_CH_I2SINC1R = 0x13D,
DAI_CH_I2SIND1L = 0x1B5,
DAI_CH_I2SIND1R = 0x1BD,
DAI_CH_I2SINA2L = 0x235,
DAI_CH_I2SINA2R = 0x23D,
DAI_CH_I2SINB2L = 0x2B5,
DAI_CH_I2SINB2R = 0x2BD,
DAI_CH_I2SINC2L = 0x335,
DAI_CH_I2SINC2R = 0x33D,
DAI_CH_I2SIND2L = 0x3B5,
DAI_CH_I2SIND2R = 0x3BD,
DAI_CH_I2SINA3L = 0x435,
DAI_CH_I2SINA3R = 0x43D,
DAI_CH_I2SINB3L = 0x4B5,
DAI_CH_I2SINB3R = 0x4BD,
DAI_CH_I2SINC3L = 0x535,
DAI_CH_I2SINC3R = 0x53D,
DAI_CH_I2SIND3L = 0x5B5,
DAI_CH_I2SIND3R = 0x5BD,
DAI_CH_I2SINA4L = 0x635,
DAI_CH_I2SINA4R = 0x63D,
DAI_CH_I2SINB4L = 0x6B5,
DAI_CH_I2SINB4R = 0x6BD,
DAI_CH_I2SINC4L = 0x735,
DAI_CH_I2SINC4R = 0x73D,
DAI_CH_I2SIND4L = 0x7B5,
DAI_CH_I2SIND4R = 0x7BD,
DAI_CH_I2SINA5L = 0x835,
DAI_CH_I2SINA5R = 0x83D,
DAI_CH_I2SINB5L = 0x8B5,
DAI_CH_I2SINB5R = 0x8BD,
DAI_CH_I2SINC5L = 0x935,
DAI_CH_I2SINC5R = 0x93D,
DAI_CH_I2SIND5L = 0x9B5,
DAI_CH_I2SIND5R = 0x9BD,
DAI_CH_I2SINA6L = 0xA35,
DAI_CH_I2SINA6R = 0xA3D,
DAI_CH_I2SINB6L = 0xAB5,
DAI_CH_I2SINB6R = 0xABD,
DAI_CH_I2SINC6L = 0xB35,
DAI_CH_I2SINC6R = 0xB3D,
DAI_CH_I2SIND6L = 0xBB5,
DAI_CH_I2SIND6R = 0xBBD,
DAI_CH_I2SINA7L = 0xC35,
DAI_CH_I2SINA7R = 0xC3D,
DAI_CH_I2SINB7L = 0xCB5,
DAI_CH_I2SINB7R = 0xCBD,
DAI_CH_I2SINC7L = 0xD35,
DAI_CH_I2SINC7R = 0xD3D,
DAI_CH_I2SIND7L = 0xDB5,
DAI_CH_I2SIND7R = 0xDBD,
DAI_CH_I2SINA8L = 0xE35,
DAI_CH_I2SINA8R = 0xE3D,
DAI_CH_I2SINB8L = 0xEB5,
DAI_CH_I2SINB8R = 0xEBD,
DAI_CH_I2SINC8L = 0xF35,
DAI_CH_I2SINC8R = 0xF3D,
DAI_CH_I2SIND8L = 0xFB5,
DAI_CH_I2SIND8R = 0xFBD,
//daio cd-spidf block
DAI_CH_CDSPDIFINA1L = 0x015,
DAI_CH_CDSPDIFINA1R = 0x01D,
DAI_CH_CDSPDIFINB1L = 0x095,
DAI_CH_CDSPDIFINB1R = 0x09D,
DAI_CH_CDSPDIFINC1L = 0x115,
DAI_CH_CDSPDIFINC1R = 0x11D,
DAI_CH_CDSPDIFIND1L = 0x195,
DAI_CH_CDSPDIFIND1R = 0x19D,
DAI_CH_CDSPDIFINA2L = 0x215,
DAI_CH_CDSPDIFINA2R = 0x21D,
DAI_CH_CDSPDIFINB2L = 0x295,
DAI_CH_CDSPDIFINB2R = 0x29D,
DAI_CH_CDSPDIFINC2L = 0x315,
DAI_CH_CDSPDIFINC2R = 0x31D,
DAI_CH_CDSPDIFIND2L = 0x395,
DAI_CH_CDSPDIFIND2R = 0x39D,
DAI_CH_CDSPDIFINA3L = 0x415,
DAI_CH_CDSPDIFINA3R = 0x41D,
DAI_CH_CDSPDIFINB3L = 0x495,
DAI_CH_CDSPDIFINB3R = 0x49D,
DAI_CH_CDSPDIFINC3L = 0x515,
DAI_CH_CDSPDIFINC3R = 0x51D,
DAI_CH_CDSPDIFIND3L = 0x595,
DAI_CH_CDSPDIFIND3R = 0x59D,
DAI_CH_CDSPDIFINA4L = 0x615,
DAI_CH_CDSPDIFINA4R = 0x61D,
DAI_CH_CDSPDIFINB4L = 0x695,
DAI_CH_CDSPDIFINB4R = 0x69D,
DAI_CH_CDSPDIFINC4L = 0x715,
DAI_CH_CDSPDIFINC4R = 0x71D,
DAI_CH_CDSPDIFIND4L = 0x795,
DAI_CH_CDSPDIFIND4R = 0x79D,
DAI_CH_CDSPDIFINA5L = 0x815,
DAI_CH_CDSPDIFINA5R = 0x81D,
DAI_CH_CDSPDIFINB5L = 0x895,
DAI_CH_CDSPDIFINB5R = 0x89D,
DAI_CH_CDSPDIFINC5L = 0x915,
DAI_CH_CDSPDIFINC5R = 0x91D,
DAI_CH_CDSPDIFIND5L = 0x995,
DAI_CH_CDSPDIFIND5R = 0x99D,
DAI_CH_CDSPDIFINA6L = 0xA15,
DAI_CH_CDSPDIFINA6R = 0xA1D,
DAI_CH_CDSPDIFINB6L = 0xA95,
DAI_CH_CDSPDIFINB6R = 0xA9D,
DAI_CH_CDSPDIFINC6L = 0xB15,
DAI_CH_CDSPDIFINC6R = 0xB1D,
DAI_CH_CDSPDIFIND6L = 0xB95,
DAI_CH_CDSPDIFIND6R = 0xB9D,
DAI_CH_CDSPDIFINA7L = 0xC15,
DAI_CH_CDSPDIFINA7R = 0xC1D,
DAI_CH_CDSPDIFINB7L = 0xC95,
DAI_CH_CDSPDIFINB7R = 0xC9D,
DAI_CH_CDSPDIFINC7L = 0xD15,
DAI_CH_CDSPDIFINC7R = 0xD1D,
DAI_CH_CDSPDIFIND7L = 0xD95,
DAI_CH_CDSPDIFIND7R = 0xD9D,
DAI_CH_CDSPDIFINA8L = 0xE15,
DAI_CH_CDSPDIFINA8R = 0xE1D,
DAI_CH_CDSPDIFINB8L = 0xE95,
DAI_CH_CDSPDIFINB8R = 0xE9D,
DAI_CH_CDSPDIFINC8L = 0xF15,
DAI_CH_CDSPDIFINC8R = 0xF1D,
DAI_CH_CDSPDIFIND8L = 0xF95,
DAI_CH_CDSPDIFIND8R = 0xF9D
} ARCHANNEL;
#endif