
#ifndef GUARD_5509a_mcbsp_h
#define GUARD_5509a_mcbsp_h

#define MCBSPREG(port,ofs)	IOREG(MCBSP_BASE+ofs+(0x400*port))

#define DRR2(p)		MCBSPREG(p,0x00)
#define DRR1(p)		MCBSPREG(p,0x01)
#define DXR2(p)		MCBSPREG(p,0x02)
#define DXR1(p)		MCBSPREG(p,0x03)
#define SPCR2(p)		MCBSPREG(p,0x04)
#define SPCR2_FREE		(1<< 9)
#define SPCR2_SOFT		(1<< 8)
#define SPCR2_FRST		(1<< 7)
#define SPCR2_GRST		(1<< 6)
#define SPCR2_XINTM_0		(0<< 4)
#define SPCR2_XINTM_1		(1<< 4)
#define SPCR2_XINTM_2		(2<< 4)
#define SPCR2_XINTM_3		(3<< 4)
#define SPCR2_XSYNCERR	(1<< 3)
#define SPCR2_XEMPTY		(1<< 2)
#define SPCR2_XRDY		(1<< 1)
#define SPCR2_XRST		(1<< 0)

#define SPCR1(p)		MCBSPREG(p,0x05)
#define SPCR1_DLB		(1<<15)
#define SPCR1_RJUST_0		(0<<13)
#define SPCR1_RJUST_1		(1<<13)
#define SPCR1_RJUST_2		(2<<13)
#define SPCR1_CLKSTP_0	(0<<11)
#define SPCR1_CLKSTP_2	(2<<11)
#define SPCR1_CLKSTP_3	(3<<11)
#define SPCR1_DXENA		(1<< 7)
#define SPCR1_RINTM_0		(0<< 4)
#define SPCR1_RINTM_1		(1<< 4)
#define SPCR1_RINTM_2		(2<< 4)
#define SPCR1_RINTM_3		(3<< 4)
#define SPCR1_RSYNCERR	(1<< 3)
#define SPCR1_RFULL		(1<< 2)
#define SPCR1_RRDY		(1<< 1)
#define SPCR1_RRST		(1<< 0)

#define RCR2(p)		MCBSPREG(p,0x06)
#define RCR1(p)		MCBSPREG(p,0x07)
#define XCR2(p)		MCBSPREG(p,0x08)
#define XCR1(p)		MCBSPREG(p,0x09)
#define SRGR2(p)		MCBSPREG(p,0x0A)
#define SRGR1(p)		MCBSPREG(p,0x0B)
#define MCR2(p)		MCBSPREG(p,0x0C)
#define MCR1(p)		MCBSPREG(p,0x0D)
#define RCERA(p)		MCBSPREG(p,0x0E)
#define RCERB(p)		MCBSPREG(p,0x0F)
#define XCERA(p)		MCBSPREG(p,0x10)
#define XCERB(p)		MCBSPREG(p,0x11)

#define PCR(p)		        MCBSPREG(p,0x12)
#define PCR_IDLEEN		(1<<14)
#define PCR_XIOEN		(1<<13)
#define PCR_RIOEN		(1<<12)
#define PCR_FSXM		(1<<11)
#define PCR_FSRM		(1<<10)
#define PCR_CLKXM		(1<< 9)
#define PCR_CLKRM		(1<< 8)
#define PCR_SCLKME		(1<< 7)
#define PCR_CLKSSTAT		(1<< 6)
#define PCR_DXSTAT		(1<< 5)
#define PCR_DRSTAT		(1<< 4)
#define PCR_FSXP		(1<< 3)
#define PCR_FSRP		(1<< 2)
#define PCR_CLKXP		(1<< 1)
#define PCR_CLKRP		(1<< 0)

#define RCERC(p)		MCBSPREG(p,0x13)
#define RCERD(p)		MCBSPREG(p,0x14)
#define XCERC(p)		MCBSPREG(p,0x15)
#define XCERD(p)		MCBSPREG(p,0x16)
#define RCERE(p)		MCBSPREG(p,0x17)
#define RCERF(p)		MCBSPREG(p,0x18)
#define XCERE(p)		MCBSPREG(p,0x19)
#define XCERF(p)		MCBSPREG(p,0x1A)
#define RCERG(p)		MCBSPREG(p,0x1B)
#define RCERH(p)		MCBSPREG(p,0x1C)
#define XCERG(p)		MCBSPREG(p,0x1D)
#define XCERH(p)		MCBSPREG(p,0x1E)

#endif
