/*
 *
 * 		Copyright(R) 2002 Applied Data Systems, Inc.
 *
 * 		Defines of Power Control	
 *
 * 		Revision History:
 * 			Jun-12-02 WH
 * 				Define IOCTL function for PCON of CPLD in Bitsy Plus
 * 			Aug-16-02 WH
 * 				Add IOControl for CPLD SUPP register
 */

#ifndef	_PWROFF_CTL_
#define	_PWROFF_CTL_
//
// Macro definition for defining IOCTL and FSCTL function control codes.  Note
// that function codes 0-2047 are reserved for Microsoft Corporation, and
// 2048-4095 are reserved for customers.
//

#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \
    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)

//
// Define the method codes for how buffers are passed for I/O and FS controls
//

#define METHOD_BUFFERED                 0
#define METHOD_IN_DIRECT                1
#define METHOD_OUT_DIRECT               2
#define METHOD_NEITHER                  3

//
// Define the access check value for any access
//
//
// The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in
// ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these
// constants *MUST* always be in sync.
//

#define FILE_ANY_ACCESS                 0
#define FILE_READ_ACCESS          ( 0x0001 )    // file & pipe
#define FILE_WRITE_ACCESS         ( 0x0002 )    // file & pipe

#define FILE_DEVICE_PWROFF		0x0000F012  // range 0-32767 is for Microsoft

#define IOCTL_PWROFF_PANEL_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_PANEL_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_AUDIO_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_AUDIO_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_AUDIOAMP_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_AUDIOAMP_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_COM1_3_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_COM1_3_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_CONNB_PE1_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_CONNB_PE1_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_CONNB_PE2_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_CONNB_PE2_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_PWROFF_QUERY_PANEL_STATUS \
		CTL_CODE(FILE_DEVICE_PWROFF, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define	IOCTL_PWROFF_QUERY_AUDIO_STATUS \
		CTL_CODE(FILE_DEVICE_PWROFF, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define	IOCTL_PWROFF_QUERY_AUDIOPA_STATUS \
		CTL_CODE(FILE_DEVICE_PWROFF, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define	IOCTL_PWROFF_QUERY_COM1_3_STATUS \
		CTL_CODE(FILE_DEVICE_PWROFF, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define	IOCTL_PWROFF_QUERY_CONNB_PE1_STATUS \
		CTL_CODE(FILE_DEVICE_PWROFF, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define	IOCTL_PWROFF_QUERY_CONNB_PE2_STATUS \
		CTL_CODE(FILE_DEVICE_PWROFF, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define	IOCTL_PWROFF_QUERY_PCON \
		CTL_CODE(FILE_DEVICE_PWROFF, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_PWROFF_SUPP_VEE_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 40, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_SUPP_VEE_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 41, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_SUPP_TS_SPI_SEL_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_SUPP_TS_SPI_SEL_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 43, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_SUPP_CB_SPI_SEL_ON \
		CTL_CODE(FILE_DEVICE_PWROFF, 44, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_PWROFF_SUPP_CB_SPI_SEL_OFF \
		CTL_CODE(FILE_DEVICE_PWROFF, 45, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define	IOCTL_PWROFF_QUERY_SUPP \
		CTL_CODE(FILE_DEVICE_PWROFF, 50, METHOD_BUFFERED, FILE_ANY_ACCESS)
#endif

