// $Header: G:/SwDev/WDM/Video/bt848/rcs/Gpio.h 1.2 1998/04/29 22:43:33 tomz Exp $ #ifndef __GPIO_H #define __GPIO_H #include "regField.h" #include "viddefs.h" #include "gpiotype.h" #include "retcode.h" //=========================================================================== // Constants //=========================================================================== const int MAX_GPDATA_SIZE = 64; // maximum number of DWORDs in GPDATA const int MAX_GPIO_BIT = 23; // maximum bit number for GPIO registers ///////////////////////////////////////////////////////////////////////////// // CLASS GPIO // // Description: // This class encapsulates the register fields in the GPIO register of the // Bt848. A complete set of functions are developed to manipulate all the // register fields in the GPIO for the Bt848. // ///////////////////////////////////////////////////////////////////////////// class GPIO { private: bool initOK; public: // Constructor GPIO( void ); ~GPIO(); // Member functions bool IsInitOK( void ); void SetGPCLKMODE( State ); int GetGPCLKMODE( void ); void SetGPIOMODE( GPIOMode ); int GetGPIOMODE( void ); void SetGPWEC( State ); int GetGPWEC( void ); void SetGPINTI( State ); int GetGPINTI( void ); void SetGPINTC( State ); int GetGPINTC( void ); ErrorCode SetGPOE( int, State ); void SetGPOE( DWORD ); int GetGPOE( int ); DWORD GetGPOE( void ); ErrorCode SetGPIE( int, State ); void SetGPIE( DWORD ); int GetGPIE( int ); DWORD GetGPIE( void ); ErrorCode SetGPDATA( GPIOReg *, int, int offset = 0 ); ErrorCode GetGPDATA( GPIOReg *, int, int offset = 0 ); ErrorCode SetGPDATA( int, int, DWORD, int offset = 0 ); ErrorCode GetGPDATA( int, int, DWORD *, int offset = 0 ); protected: RegisterW decRegGPIO; RegField decFieldGPCLKMODE; RegField decFieldGPIOMODE; RegField decFieldGPWEC; RegField decFieldGPINTI; RegField decFieldGPINTC; RegisterDW decRegGPOE; RegisterDW decRegGPIE; RegisterDW decRegGPDATA; }; #endif // __GPIO_H