⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wm9712.h

📁 AACILib,是在上海杰德的平台上
💻 H
字号:
  
/*
 * Register bits for Wolfson WM97xx series of codecs
 */
 
#ifndef _WM97XX_H_
#define _WM97XX_H_


/*
 * WM97xx AC97 Touchscreen registers
 */
#define AC97_WM97XX_DIGITISER1		0x76
#define AC97_WM97XX_DIGITISER2		0x78
#define AC97_WM97XX_DIGITISER_RD	0x7a


#define WM97XX_PRP_DET_DIG	0xc000		/* pen detect on, digitiser on */

/*
 * WM97xx register bits
 */
#define WM97XX_POLL			0x8000		/* initiate a polling measurement *///write 1 start measurement
#define WM97XX_ADCSEL_X		0x1000		/* x coord measurement *///取X轴坐标
#define WM97XX_ADCSEL_Y		0x2000		/* y coord measurement *///取Y轴坐标
#define WM97XX_ADCSEL_PRES	0x3000		/* pressure measurement *///电压测量
#define WM97XX_COO			0x0800		/* enable coordinate mode */单次传送或一次转X,Y
#define WM97XX_CTC			0x0400		/* enable continuous mode *///polling mode or DMA mode
#define WM97XX_CM_RATE_93	0x0000		/* 93.75Hz continuous rate *///cr-93k
#define WM97XX_CM_RATE_187	0x0100		/* 187.5Hz continuous rate *///cr-187k
#define WM97XX_CM_RATE_375	0x0200		/* 375Hz continuous rate */
#define WM97XX_CM_RATE_750	0x0300		/* 750Hz continuous rate */
#define WM97XX_CM_RATE_8K	0x00f0		/* 8kHz continuous rate */
#define WM97XX_CM_RATE_12K	0x01f0		/* 12kHz continuous rate */
#define WM97XX_CM_RATE_24K	0x02f0		/* 24kHz continuous rate */
#define WM97XX_CM_RATE_48K	0x03f0		/* 48kHz continuous rate *///cr-48k
#define WM97XX_DELAY(i)		((i << 4) & 0x00f0)	/* sample delay times *///4-7bit 
#define WM97XX_SLEN			0x0008		/* slot read back enable *///读寄存器还是SLOT
#define WM97XX_SLT(i)		((i - 5) & 0x7)	/* touchpanel slot selection (5-11) *///SLOT NUMBER
#define WM97XX_PRP_DETW		0x4000		/* pen detect on, digitiser off, wake up */  78H---15--14
#define WM97XX_PRP_DET		0x8000		/* pen detect on, digitiser off, no wake up */  78H---15--14
#define WM97XX_RPR			0x2000		/* wake up on pen down */ 78H---13
#define WM97XX_PEN_DOWN     0x8000     /* pen is down *///7A pen down

/* WM9712 Bits */
#define WM9712_45W			0x1000		/* set for 5-wire touchscreen */
#define WM9712_PDEN			0x0800		/* measure only when pen down */ //78h---PDEN 
#define WM9712_WAIT			0x0200		/* wait until adc is read before next sample */
#define WM9712_PIL			0x0100		/* current used for pressure measurement. set 400uA else 200uA */ 
#define WM9712_MASK_HI		0x0040		/* hi on mask pin (47) stops conversions */
#define WM9712_MASK_EDGE	0x0080		/* rising/falling edge on pin delays sample */
#define	WM9712_MASK_SYNC	0x00c0		/* rising/falling edge on mask initiates sample */
#define WM9712_RPU(i)		(i&0x3f)	/* internal pull up on pen detect (64k / rpu) */
#define WM9712_ADCSEL_COMP1	0x4000		/* COMP1/AUX1 measurement (pin29) */
#define WM9712_ADCSEL_COMP2	0x5000		/* COMP2/AUX2 measurement (pin30) */
#define WM9712_ADCSEL_BMON	0x6000		/* BMON/AUX3 measurement (pin31) */
#define WM9712_ADCSEL_WIPER	0x7000		/* WIPER/AUX4 measurement (pin12) */
#define WM9712_PD(i)		(0x1 << i)  /* power management */ 

/* WM9712 Registers */
#define AC97_WM9712_POWER			0x24
#define AC97_WM9712_REV				0x58


/* AUX ADC ID's */
#define TS_COMP1			0x0
#define TS_COMP2			0x1
#define TS_BMON				0x2
#define TS_WIPER			0x3

/* ID numbers */
#define WM97XX_ID1			0x574d
#define WM9712_ID2			0x4c12
#define WM9705_ID2			0x4c05
#define WM9713_ID2			0x4c13

#define AC97_LINK_FRAME		21			/* time in uS for AC97 link frame */


/*********for z228*****************************/
#define AACI_BASE       0x20037000
#define AACI_RXCR1      0x000
#define AACI_TXCR1      0x004
#define AACI_SR1        0x008
#define AACI_ISR1       0x00C
#define AACI_IE1        0x010
#define AACI_RXCR2      0x014
#define AACI_TXCR2      0x018
#define AACI_SR2        0x01C
#define AACI_ISR2       0x020
#define AACI_IE2        0x024
#define AACI_RXCR3      0x028
#define AACI_TXCR3      0x02C
#define AACI_SR3        0x030
#define AACI_ISR3       0x034
#define AACI_IE3        0x038
#define AACI_RXCR4      0x03C
#define AACI_TXCR4      0x040
#define AACI_SR4        0x044
#define AACI_ISR4       0x048
#define AACI_IE4        0x04C
#define AACI_SL1RX      0x050
#define AACI_SL1TX      0x054
#define AACI_SL2RX      0x058
#define AACI_SL2TX      0x05C
#define AACI_SL12RX     0x060
#define AACI_SL12TX     0x064
#define AACI_SLFR       0x068
#define AACI_SLISTAT    0x06C
#define AACI_SLIEN      0x070
#define AACI_INTCLR     0x074
#define AACI_MAINCR     0x078
#define AACI_RESET      0x07C
#define AACI_SYNC       0x080
#define AACI_ALLINTS    0x084
#define AACI_MAINFR     0x088
#define AACI_DR1        0x090
#define AACI_DR2        0x0B0
#define AACI_DR3        0x0D0
#define AACI_DR4        0x0F0
#define AACI_PERID1     0xFE0


// AACI Bits
#define AACI_RXFEN      0x10000     // Bit 16 FIFO enable

// AACI Slot status bits
#define AACI_SL1TXBUSY  0x0002
#define AACI_SL2TXBUSY  0x0008

// AACI FIFO status bits
#define AACI_RXFE       0x0001
#define AACI_TXFE       0x0002
#define AACI_RXFF       0x0010
#define AACI_TXFF       0x0020

// AACI Control registers
#define AACI_MSTRVOL    0x02//声道
#define AACI_TLLOVOL    0x04
#define AACI_PCBEEP     0x0A
#define AACI_MICVOL     0x0E
#define AACI_LINEINVOL  0x10
#define AACI_PCMOVOL    0x18
#define AACI_RECSEL     0x1A
#define AACI_RECGAIN    0x1C
#define AACI_GPR        0x20

// Loopback test limits
#define MINSIGNAL       0xD0000     // Allow for gain errors
#define MAXSIGNAL       0x00300     // Wideband noise level (mostly >= 48kHz)
#define RECLENGTH       48000       // 1 Second recording (48kHz), see note in AACI_Recording()
//#define AACI_TIMEOUT    1000        // Timeout for reading FIFOs (10mS)
#define AACI_TIMEOUT    10000        // Timeout for reading FIFOs (10mS)
#define TONETIME        500         // Loop back test tone time

// 
#define TRUE 1
#define FALSE 0

//Test Reg
#define AACI_TCR		((volatile int *)(AACI_BASE + 0x180))
/*********************************************************/

// Size of the AACI hardware register space
#define AACI_HWREGS_SIZE            0x1000

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -