71 lines
2.6 KiB
C++
71 lines
2.6 KiB
C++
//==========================================================================;
|
|
//
|
|
// Gpio.H
|
|
// Gpio Class declaration
|
|
// Based on code from ATI Technologies Inc. Copyright (c) 1996 - 1998
|
|
//
|
|
//
|
|
//==========================================================================;
|
|
|
|
#ifndef _GPIO_H_
|
|
|
|
#define _GPIO_H_
|
|
|
|
#include "i2cgpio.h"
|
|
|
|
#define GPIO_TIMELIMIT_OPENPROVIDER 50000000 // 5 seconds in 100 nsec.
|
|
#define GPIO_TUNER_MODE_SELECT_PIN 0x8
|
|
#define GPIO_VSB_RESET_PIN 0x1
|
|
#define GPIO_TUNER_PINS (GPIO_TUNER_MODE_SELECT_PIN | GPIO_VSB_RESET_PIN)
|
|
|
|
#define GPIO_TUNER_MODE_ATSC GPIO_TUNER_MODE_SELECT_PIN
|
|
#define GPIO_TUNER_MODE_NTSC 0
|
|
#define GPIO_VSB_ON GPIO_VSB_RESET_PIN
|
|
#define GPIO_VSB_OFF 0
|
|
|
|
|
|
#define GPIO_VSB_RESET 0x0
|
|
#define GPIO_VSB_SET 0x1
|
|
|
|
// GPIO class object .
|
|
// Provides functionality to obtain a GPIO interface, Lock GPIO for
|
|
// exclusive use, querying the GPIO provider, write/read GPIO and
|
|
// general access to GPIO
|
|
class CGpio
|
|
{
|
|
public:
|
|
// constructor
|
|
CGpio ( PDEVICE_OBJECT pDeviceObject, NTSTATUS * pStatus);
|
|
// PVOID operator new ( UINT size_t, PVOID pAllocation);
|
|
|
|
// Attributes
|
|
private:
|
|
|
|
// GPIO Provider related
|
|
GPIOINTERFACE m_gpioProviderInterface;
|
|
PDEVICE_OBJECT m_pdoDriver;
|
|
DWORD m_dwGPIOAccessKey;
|
|
|
|
// Implementation
|
|
public:
|
|
|
|
BOOL InitializeAttachGPIOProvider( GPIOINTERFACE * pGPIOInterface, PDEVICE_OBJECT pDeviceObject);
|
|
BOOL LocateAttachGPIOProvider ( GPIOINTERFACE * pGPIOInterface, PDEVICE_OBJECT pDeviceObject, int nIrpMajorFunction);
|
|
|
|
BOOL QueryGPIOProvider ( PGPIOControl pgpioAccessBlock);
|
|
BOOL LockGPIOProviderEx ( PGPIOControl pgpioAccessBlock);
|
|
BOOL ReleaseGPIOProvider ( PGPIOControl pgpioAccessBlock);
|
|
BOOL AccessGPIOProvider ( PGPIOControl pgpioAccessBlock);
|
|
BOOL WriteGPIO ( PGPIOControl pgpioAccessBlock);
|
|
BOOL ReadGPIO ( PGPIOControl pgpioAccessBlock);
|
|
//BOOL AccessGPIOProvider ( PDEVICE_OBJECT pdoClient, PGPIOControl pgpioAccessBlock);
|
|
//BOOL WriteGPIO ( PDEVICE_OBJECT pdoClient, PGPIOControl pgpioAccessBlock);
|
|
//BOOL ReadGPIO ( PDEVICE_OBJECT pdoClient, PGPIOControl pgpioAccessBlock);
|
|
BOOL WriteGPIO ( UCHAR *p_uchPin, UCHAR *p_uchValue);
|
|
BOOL ReadGPIO ( UCHAR *p_uchPin, UCHAR *p_uchValue);
|
|
|
|
};
|
|
|
|
|
|
#endif // _GPIO_H_
|