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

📄 sspescape.h

📁 VoyagerGX display driver for Windows CE .NET 5.XX Silicon Motion, Inc. VoyagerGX Driver is architec
💻 H
字号:
//-----------------------------------------------------------------------------
//
//  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) 2003 Silicon Motion, Inc.
//
//  Module Name:	ssp.h
//
//  Abstract:		SSP API
//
//-----------------------------------------------------------------------------

#ifndef _SSPESCAPE_H_
#define _SSPESCAPE_H_


///////////////////////////////////////////////////////////////////////////////
// SSP return results.

typedef enum _VGXSSP_RESULTS
{
	VGXSSP_SUCCESS				=  1,	// Success
	VGXSSP_INVALID_PARAMETER	= -1,	// Invalid parameters
	VGXSSP_FIFO_OVERRUN			= -2,	// Receive FIFO overrun
	VGXSSP_TIMEOUT				= -3,	// Timeout occured
	VGXSSP_INVALID_SSP			= -4,	// Invalid SSP has been specified
	VGXSSP_UART1_ACTIVE			= -5,	// SSP1 init error - UART1 is active
	VGXSSP_INT_FAILED			= -6,	// SSP0 interrupt initialization failed
	VGXSSP_INVALID_PRESCALE		= -7,	// "clock_prescale" value is invalid
	VGXSSP_INVALID_DATA_SIZE	= -8,	// "data_size" value is invalid
	VGXSSP_INVALID_FORMAT		= -9,	// "format" value is invalid
	VGXSSP_INVALID_PHASE		= -10,	// "phase" value is invalid
	VGXSSP_INVALID_POLARITY		= -11,	// "polarity" value is invalid
	VGXSSP_NOT_ACTIVE			= -12,	// Requested SSP is not open
	VGXSSP_NOT_SUPPORTED		= -13	// SSP API is not supported
}
VGXSSP_RESULTS, *PVGXSSP_RESULTS;


///////////////////////////////////////////////////////////////////////////////
// Command constants for use with Esc-structures.

typedef enum _VGXSSP_COMMANDS
{
	VGXSSPCMD_OPEN,
	VGXSSPCMD_CLOSE,
	VGXSSPCMD_READ,
	VGXSSPCMD_WRITE,
	VGXSSPCMD_RESET_BUFFER
}
VGXSSP_COMMANDS, *PVGXSSP_COMMANDS;


///////////////////////////////////////////////////////////////////////////////
// SSP index enumeration.

typedef enum _VGXSSP_ENUM
{
	SSP0,
	SSP1,

	SSP_COUNT
}
VGXSSP_ENUM, *PVGXSSP_ENUM;


///////////////////////////////////////////////////////////////////////////////
// Valid frame types.

typedef enum _SPI_FRAME_FORMAT
{
	MOTOROLA_SPI = 0,
	TI_SSP       = 1,
	MICROWIRE    = 2
}
SPI_FRAME_FORMAT, *PSPI_FRAME_FORMAT;


///////////////////////////////////////////////////////////////////////////////
// Valid polarities for Motorola SPI frame.

typedef enum _MOTOROLA_POLARITY
{
	RISING_EDGE  = 0,
	FALLING_EDGE = 1
}
MOTOROLA_POLARITY, *PMOTOROLA_POLARITY;


///////////////////////////////////////////////////////////////////////////////
// Valid phases for Motorola SPI frame.

typedef enum _MOTOROLA_PHASE
{
	PH0 = 0,
	PH1 = 1
}
MOTOROLA_PHASE, *PMOTOROLA_PHASE;


///////////////////////////////////////////////////////////////////////////////
// Structures used in ExtEscape calls to access SSP API.

typedef struct _VGXSSP_STRUCT
{
	VGXSSP_ENUM ssp;			// One of VGXSSP_ENUM
	VGXSSP_COMMANDS command;	// One of VGXSSP_COMMANDS
}
VGXSSP_STRUCT, *PVGXSSP_STRUCT;

typedef struct _VGXSSP_OPEN_STRUCT
{
	VGXSSP_ENUM ssp;			// One of VGXSSP_ENUM
	VGXSSP_COMMANDS command;	// One of VGXSSP_COMMANDS
	BYTE serial_clock_rate;		// Serial Clock Rate to generate the bit rate.
	BYTE clock_prescale;		// Divison factor by which the input SSPCLK
								//  should be internally divided. It has to
								//  be an even number between 2 to 254.
	BYTE data_size;				// Data size in bits, has to be a value
								//  between 4 to 16.
	SPI_FRAME_FORMAT format;	// SPI frame format.
	MOTOROLA_PHASE phase;		// For Motorola SPI frames only
								//  (ignored for other frame types)
	MOTOROLA_POLARITY polarity;	// For Motorola SPI frames only
								//  (ignored for other frame types)
	BOOL master;				// TRUE for master, FALSE for slave.
	BOOL loopback;				// TRUE for enable, FALSE for disable.
	DWORD read_timeout;			// Read timeout in milliseconds.
	DWORD write_timeout;		// Write timeout in milliseconds.
}
VGXSSP_OPEN_STRUCT, *PVGXSSP_OPEN_STRUCT;

typedef struct _VGXSSP_TRANSMIT_RESULT
{
	union
	{
		DWORD read;				// For read operations (in data units).
		DWORD written;			// For write operations (in data units).
	};
}
VGXSSP_TRANSMIT_RESULT, *PVGXSSP_TRANSMIT_RESULT;

#endif

⌨️ 快捷键说明

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