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

📄 wmtouchdefs.h

📁 pxa270平台 windows mobile 5.2 wm9713 触摸屏+音频驱动
💻 H
字号:
/*-----------------------------------------------------------------------------
 * Copyright (c) Wolfson Microelectronics plc.  All rights reserved.
 *
 * This software as well as any related documentation is furnished under 
 * license and may only be used or copied in accordance with the terms of the 
 * license. The information in this file is furnished for informational use 
 * only, is subject to change without notice, and should not be construed as 
 * a commitment by Wolfson Microelectronics plc. Wolfson Microelectronics plc
 * assumes no responsibility or liability for any errors or inaccuracies that
 * may appear in this document or any software that may be provided in
 * association with this document. 
 *
 * Except as permitted by such license, no part of this document may be 
 * reproduced, stored in a retrieval system, or transmitted in any form or by 
 * any means without the express written consent of Wolfson Microelectronics plc. 
 *
 * $Id: WMTouchDefs.h 3497 2006-07-28 16:25:36Z marthur $
 *
 * Common Wolfson touch register defines.
 *
 * Warning:
 *  This driver is specifically written for Wolfson Codecs. It is not a 
 *  general CODEC device driver.
 *
 *---------------------------------------------------------------------------*/
#ifndef __WMTOUCHDEFS_H__
#define __WMTOUCHDEFS_H__

/*
 * Include files
 */
 
/*-----------------------------------------------------------------------------
 * Mask definitions for WM97_DIGITISER_CONTROL1 (76h).
 */

/*
 * Starts a single polled conversion (reset itself at completion)
 * WM_TOUCHCTRL_POLL is for pre-ADCSEL devices (WM9705 and WM9712).
 * WM_ADCSEL_POLL is for ADCSEL devices.
 */
#define WM_TOUCHCTRL_POLL             ((WM_REGVAL) (1U << 15))
#define WM_ADCSEL_POLL                ((WM_REGVAL) (1U << 9))

/*
 * Selects the ADC of the single conversion in polled mode, or extra
 * conversion in coordinate or continous mode.
 * 
 * Also indicates the ADC corresponding to a given reading.
 * 
 * Note: for selection, these apply to the WM9705 and WM9712 only.
 * All readings use these definitions (even if configured using the ADCSEL bits).
 */
#define WM_AUXADC_MASK                  0x7000

/* Flag definitions */
#define WM_AUXADC_X_COORD               0x1000
#define WM_AUXADC_Y_COORD               0x2000 
#define WM_AUXADC_PRESSURE              0x3000
/* WM9705 AUXADCs */
#define WM9705_AUXADC_BMON              0x4000
#define WM_AUXADC_AUXADC                0x5000 
#define WM_AUXADC_PHONE                 0x6000 
#define WM_AUXADC_PCBEEP                0x7000 
/* WM9712 AUXADCs */
#define WM_AUXADC_COMP1                 0x4000
#define WM_AUXADC_AUX1                  0x4000
#define WM_AUXADC_COMP2                 0x5000 
#define WM_AUXADC_AUX2                  0x5000
#define WM_AUXADC_BMON                  0x6000 
#define WM_AUXADC_AUX3                  0x6000
#define WM_AUXADC_WIPER                 0x7000 
#define WM_AUXADC_AUX4                  0x7000

/* WM9713 AUXADCs */
#define WM_AUXADC_SPKMON                0x6000 


/*
 * Selects the ADC of the single conversion in polled mode, or the
 * conversions in continous mode.
 * 
 * Note: these apply to devices which have a separate ADCSEL register.
 */
#define WM_ADCSEL_MASK                  0x00FE

/* Flag definitions */
#define WM_ADCSEL_X_COORD               (1U << 1)
#define WM_ADCSEL_Y_COORD               (1U << 2)
#define WM_ADCSEL_PRESSURE              (1U << 3)
#define WM_ADCSEL_AUX1                  (1U << 4)
#define WM_ADCSEL_AUX2                  (1U << 5)
#define WM_ADCSEL_SPKMON                (1U << 6)
#define WM_ADCSEL_AUX3                  (1U << 6)
#define WM_ADCSEL_BMON                  WM_ADCSEL_AUX3
#define WM_ADCSEL_AUX4                  (1U << 7)

/*
 * Selects a co-ordinate set of conversion
 * 
 * WM_TOUCHCTRL_COO is for pre-ADCSEL devices (WM9705 and WM9712).
 * WM_ADCSEL_COO is for ADCSEL devices.
 */
#define WM_TOUCHCTRL_COO                ((WM_REGVAL) (1 << 11))
#define WM_ADCSEL_COO                   ((WM_REGVAL) (1U << 0))

/*
 * Starts continuous conversion operation
 * 
 * WM_TOUCHCTRL_CTC is for pre-ADCSEL devices (WM9705 and WM9712).
 * WM_ADCSEL_CTC is for ADCSEL devices.
 */
#define WM_TOUCHCTRL_CTC                ((WM_REGVAL) (1 << 10))
#define WM_ADCSEL_CTC                   ((WM_REGVAL) (1U << 8))

/*
 * rate of continuous conversion
 */
#define WM97_TOUCHCTRL_CR_MASK          0x0300

#define WM97_TOUCHCTRL_CR_512           0x0000    /* 93.75Hz  or 512 AC link frames */
#define WM97_TOUCHCTRL_CR_256           0x0100    /* 187.5Hz  or 256 AC link frames */
#define WM97_TOUCHCTRL_CR_128           0x0200    /* 375Hz    or 128 AC link frames */
#define WM97_TOUCHCTRL_CR_64            0x0300    /* 750Hz    or 64  AC link frames */

#define WM97_TOUCHCTRL_CR_94Hz          WM97_TOUCHCTRL_CR_512
#define WM97_TOUCHCTRL_CR_187Hz         WM97_TOUCHCTRL_CR_256
#define WM97_TOUCHCTRL_CR_375Hz         WM97_TOUCHCTRL_CR_128
#define WM97_TOUCHCTRL_CR_750Hz         WM97_TOUCHCTRL_CR_64

/*
 * And on the ADCSEL chips.
 */
#define WM9713_TOUCHCTRL_CR_512         0x0000    /* 93.75Hz  or 512 AC link frames */
#define WM9713_TOUCHCTRL_CR_400         0x0100    /* 120Hz    or 400 AC link frames */
#define WM9713_TOUCHCTRL_CR_312         0x0200    /* ~153.85Hz or 312 AC link frames */
#define WM9713_TOUCHCTRL_CR_256         0x0300    /* 187.5Hz  or 256 AC link frames */

#define WM9713_TOUCHCTRL_CR_94Hz        WM9713_TOUCHCTRL_CR_512
#define WM9713_TOUCHCTRL_CR_120Hz       WM9713_TOUCHCTRL_CR_400
#define WM9713_TOUCHCTRL_CR_154Hz       WM9713_TOUCHCTRL_CR_312
#define WM9713_TOUCHCTRL_CR_187Hz       WM9713_TOUCHCTRL_CR_256

/* set the delay between screen being driven and X or Y sample being taken */
#define WM_TOUCHCTRL_DEL_MASK           0x00F0

#define WM_TOUCHCTRL_DEL_1              0x0000    /* delay one frame */
#define WM_TOUCHCTRL_DEL_2              0x0010    /* delay 2 frames */
#define WM_TOUCHCTRL_DEL_4              0x0020    /* delay 4 frames */ 
#define WM_TOUCHCTRL_DEL_8              0x0030    /* delay 8 frames */
#define WM_TOUCHCTRL_DEL_16             0x0040    /* delay 16 frames */
#define WM_TOUCHCTRL_DEL_32             0x0050    /* delay 32 frames */
#define WM_TOUCHCTRL_DEL_48             0x0060    /* delay 48 frames */ 
#define WM_TOUCHCTRL_DEL_64             0x0070    /* delay 64 frames */
#define WM_TOUCHCTRL_DEL_96             0x0080    /* delay 96 frames */
#define WM_TOUCHCTRL_DEL_128            0x0090    /* delay 128 frames */
#define WM_TOUCHCTRL_DEL_160            0x00A0    /* delay 160 frames */
#define WM_TOUCHCTRL_DEL_192            0x00B0    /* delay 192 frames */
#define WM_TOUCHCTRL_DEL_224            0x00C0    /* delay 224 frames */
#define WM_TOUCHCTRL_DEL_256            0x00D0    /* delay 256 frames */
#define WM_TOUCHCTRL_DEL_288            0x00E0    /* delay 288 frames */
#define WM_TOUCHCTRL_DEL_0              0x00F0    /* no delay - switch matrix always on */

/* slot enable bit; allows conversion results to be output onto chosen slot */
#define WM97_TOUCHCTRL_SLEN             ((WM_REGVAL) (1 << 3))
 
/*
 * slot select bits, choose which slot to output data result in
 */
#define WM97_TOUCHCTRL_SLT_MASK         0x0007    /* Field mask */
#define WM97_TOUCHCTRL_SLT_5            0x0000    /* Slot 5 */
#define WM97_TOUCHCTRL_SLT_6            0x0001    /* Slot 6 */
#define WM97_TOUCHCTRL_SLT_7            0x0002    /* Slot 7 */
#define WM97_TOUCHCTRL_SLT_8            0x0003    /* Slot 8 */
#define WM97_TOUCHCTRL_SLT_9            0x0004    /* Slot 9 */
#define WM97_TOUCHCTRL_SLT_10           0x0005    /* Slot 10 */
#define WM97_TOUCHCTRL_SLT_11           0x0006    /* Slot 11 */

/*-----------------------------------------------------------------------------
 * Mask definitions for WM97_DIGITISER_CONTROL_STD (78h).
 */

/*
 * Pen detect and powerdown control.
 */
#define WM97_TOUCHSETUP_PRP_PDW_MASK  0xC000   /* Mask for PDW field */
#define WM97_TOUCHSETUP_PRP_PDW_3     0xC000   /* pen digitiser powered up */
#define WM97_TOUCHSETUP_PRP_PDW_2     0x8000   /* pen digitiser powered off, pen detect enabled, no wakeup on pen down */
#define WM97_TOUCHSETUP_PRP_PDW_1     0x4000   /* powered off, pen detect enabled, wakeup on pendown */
#define WM97_TOUCHSETUP_PRP_PDW_0     0x0000   /* powered down, pen detect disabled, no wakeup on pendown */

/*
 * For WM9705 Rev B and earlier these were just two separate bits
 */

/* Pen digitiser power down bit; 0: power on ; 1: power off */
#define WM97_TOUCHSETUP_PRP           ((WM_REGVAL) (1 << 15))

/* enables pr4 reset on pen down wake up */
#define WM97_TOUCHSETUP_PDW           ((WM_REGVAL) (1 << 14))

/*
 * Pen-Down Wake-up disable; setting this bit prevents PRP from being reset if
 * pen down is detected, so stopping powering up of the digitiser
 */
#define WM97_TOUCHSETUP_RPR           ((WM_REGVAL) (1 << 13))

/* causes conversions and screen drivers to stop when pen is not down */
#define WM9705_TOUCHSETUP_PDEN          ((WM_REGVAL) (1 << 12))
#define WM9712_13_TOUCHSETUP_PDEN       ((WM_REGVAL) (1 << 11))

/* inverts sense of pendet outputl default 0 causes pen=down to give a 1 output */
#define WM9705_TOUCHSETUP_PINV          ((WM_REGVAL) (1 << 11) )

/*
 * busy flag enable, outputs converter busy signal on pin 47
 * goes low at end of conversion to indicate result available
 */
#define WM9705_TOUCHSETUP_BSEN          ((WM_REGVAL) (1 << 10))

/* invert sense of busy flag output */
#define WM9705_TOUCHSETUP_BINV          ((WM_REGVAL) (1 << 9))  

/*
 * wait bitl: setting this bit causes conversion operations to halt when a result 
 * is to be written to the dat aregister 7Ah, if the last stored result has not
 * been read. conversions commence again once the result has been read
 */
#define WM9705_TOUCHSETUP_WAIT          ((WM_REGVAL) (1 << 8))
#define WM9712_13_TOUCHSETUP_WAIT       ((WM_REGVAL) (1 << 7))

/* pressure current reduce bit (0: 200uA; 1: 50 uA) */
#define WM9705_TOUCHSETUP_PIL           ((WM_REGVAL) (1 << 7))
#define WM9712_13_TOUCHSETUP_PIL        ((WM_REGVAL) (1 << 6))

/* sets phone and pcbeep inputs to be high impedance (disconnects from mixer) */
#define WM9705_TOUCHSETUP_PHIZ          ((WM_REGVAL) (1 << 6)) 

/*
 * select what effect mask input: 
 * 00: masks pin ignored; 
 * 01: mask pin is static; hi halts conversion 
 * 10: mask pin is edge sensitive; rising or falling delays convrsions by del[0-3]
 * 11: mask pin becomes a synchronise input; conversion happen after edge
 */
#define WM9705_TOUCHSETUP_MASK          0x0030

#define WM9705_TOUCHSETUP_MSK_0         0x0000 
#define WM9705_TOUCHSETUP_MSK_1         0x0010 
#define WM9705_TOUCHSETUP_MSK_2         0x0020 
#define WM9705_TOUCHSETUP_MSK_3         0x0030

#define WM9712_13_TOUCHSETUP_MASK       0x00C0

#define WM9712_13_TOUCHSETUP_MSK_0      0x0000
#define WM9712_13_TOUCHSETUP_MSK_1      0x0040
#define WM9712_13_TOUCHSETUP_MSK_2      0x0080
#define WM9712_13_TOUCHSETUP_MSK_3      0x00C0

/*
 * pen detect comparator threshold; 16 steps between 0 and Vmid
 */
#define WM97_TOUCHSETUP_PDD_0           0x0000 
#define WM97_TOUCHSETUP_PDD_1           0x0001 
#define WM97_TOUCHSETUP_PDD_2           0x0002 
#define WM97_TOUCHSETUP_PDD_3           0x0003 
#define WM97_TOUCHSETUP_PDD_4           0x0004 
#define WM97_TOUCHSETUP_PDD_5           0x0005 
#define WM97_TOUCHSETUP_PDD_6           0x0006 
#define WM97_TOUCHSETUP_PDD_7           0x0007 
#define WM97_TOUCHSETUP_PDD_8           0x0008 
#define WM97_TOUCHSETUP_PDD_9           0x0009 
#define WM97_TOUCHSETUP_PDD_10          0x000A 
#define WM97_TOUCHSETUP_PDD_11          0x000B 
#define WM97_TOUCHSETUP_PDD_12          0x000C 
#define WM97_TOUCHSETUP_PDD_13          0x000D 
#define WM97_TOUCHSETUP_PDD_14          0x000E 
#define WM97_TOUCHSETUP_PDD_15          0x000F 

/* Internal Pull-up Resistor for Pen Detection bits 0:5 (WM9712 and WM9713 only) */
#define WM9712_13_TOUCHSETUP_RPU_1      0x0001
#define WM9712_13_TOUCHSETUP_RPU_MASK   0x003F

/* Touch Panel type selection bit 12 (WM9712 and WM9713 only) */
#define WM9712_13_TOUCHSETUP_5WIRE      ((WM_REGVAL) (1 << 12))/* 4 wire is 0 */

/* Touch pannel Pen Doen Invert bit 10 (WM9713 only) */
#define WM97_TOUCHSETUP_PDPOL           (1U<<10)
#define WM9713_PENDOWN_INVERT           WM97_TOUCHSETUP_PDPOL
/*-----------------------------------------------------------------------------
 * Mask definitions for WM_DIGITISER_DATA (7Ah) and data received through the
 * designated slot in streaming mode.
 */

/* Whether the pen is down */
#define WM_DATA_PENDOWN                 ((WM_REGVAL) (1 << 15))

/* 
 * ADC control definitions - e.g. touchscreen and battery-monitor.
 * Note the WM_ADC_XXX constants from register 76h also apply to
 * this register for bits 14:12.
 */

/* Mask for the value */
#define WM_DATA_VAL                     0x0FFF

#endif   /* __WMTOUCHDEFS_H__ */
/*------------------------------ END OF FILE ---------------------------------*/

⌨️ 快捷键说明

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