/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-2000 Microsoft Corporation.  All rights reserved.

Module Name:  

  reg.h

Abstract:  

  This module contains the layout and definitions for the Touch/Audio ASIC.
  
Notes:

  Only the registers and defintions needed for the touch panel are defined.

Revision History:

  John Lindquist (Intergraph) 7/2/95
  Killian Murphy (Eclipse TG) 8/1/96 (for P2 platform)
  
--*/

// Include the Touch/Audio common declarations
#include <tchaud.h>
#include <p2.h>

//
// Definitions for the penDataFormat, e.g. the point samples DMA'ed into memory.
//

#ifdef TOUCH_AUDIO_UCB1100
#define penDataFormatValidMask  0x03ff
#elif TOUCH_AUDIO_CRYSTAL
#define penDataFormatValidMask  0x0fff
#else // TOUCH_AUDIO_CRYSTAL
#error Undefined touch/audio hardware - reg.h
#endif // TOUCH_AUDIO_CRYSTAL

//
// @doc INTERNAL DRIVERS PDD TOUCH_PANEL
// @const ULONG | NUMBER_SAMPLES_PER_POINT |
//
// Defines the number of samples per point sampled by the ADC.
//

#define NUMBER_SAMPLES_PER_POINT    3

//
// Status field valid values
//
#define TOUCH_PEN_DOWN 0
#define TOUCH_PEN_UP 1
#define TOUCH_PEN_SAMPLE 2

//
// Timeout when talking to UCB
//
#define TOUCH_UCB_TIMEOUT 10000

//
// @doc INTERNAL DRIVERS PDD TOUCH_PANEL
// @type TOUCHPANEL_POINT_SAMPLES |
// Array of NUMBER_SAMPLES_PER_POINT samples.
// 

typedef TOUCHPANEL_POINT_SAMPLE TOUCHPANEL_POINT_SAMPLES[ NUMBER_SAMPLES_PER_POINT ];
