Software Drivers

xgpio.c File Reference

#include "xgpio.h"
#include "xstatus.h"

Functions

int XGpio_CfgInitialize (XGpio *InstancePtr, XGpio_Config *Config, u32 EffectiveAddr)
void XGpio_SetDataDirection (XGpio *InstancePtr, unsigned Channel, u32 DirectionMask)
u32 XGpio_GetDataDirection (XGpio *InstancePtr, unsigned Channel)
u32 XGpio_DiscreteRead (XGpio *InstancePtr, unsigned Channel)
void XGpio_DiscreteWrite (XGpio *InstancePtr, unsigned Channel, u32 Data)

Detailed Description

The implementation of the XGpio driver's basic functionality. See xgpio.h for more information about the driver.

Note:

None

 MODIFICATION HISTORY:
 Ver   Who  Date     Changes
 ----- ---- -------- -----------------------------------------------
 1.00a rmm  02/04/02 First release
 2.00a jhl  12/16/02 Update for dual channel and interrupt support
 2.01a jvb  12/13/05 Changed Initialize() into CfgInitialize(), and made
                     CfgInitialize() take a pointer to a config structure
                     instead of a device id. Moved Initialize() into
                     xgpio_sinit.c, and had Initialize() call CfgInitialize()
                     after it retrieved the config structure using the device
                     id. Removed include of xparameters.h along with any
                     dependencies on xparameters.h and the _g.c config table.
 2.11a mta  03/21/07 Updated to new coding style, added GetDataDirection
 2.12a sv   11/21/07 Updated driver to support access through DCR bus
 3.00a sv   11/21/09 Updated to use HAL Processor APIs. Renamed the
		      macros to remove _m from the name.
 

Function Documentation

int XGpio_CfgInitialize ( XGpio InstancePtr,
XGpio_Config Config,
u32  EffectiveAddr 
)

Initialize the XGpio instance provided by the caller based on the given configuration data.

Nothing is done except to initialize the InstancePtr.

Parameters:
InstancePtr is a pointer to an XGpio instance. The memory the pointer references must be pre-allocated by the caller. Further calls to manipulate the driver through the XGpio API must be made with this pointer.
Config is a reference to a structure containing information about a specific GPIO device. This function initializes an InstancePtr object for a specific device specified by the contents of Config. This function can initialize multiple instance objects with the use of multiple calls giving different Config information on each call.
EffectiveAddr is the device base address in the virtual memory address space. The caller is responsible for keeping the address mapping from EffectiveAddr to the device physical base address unchanged once this function is invoked. Unexpected errors may occur if the address mapping changes after this function is called. If address translation is not used, use Config->BaseAddress for this parameters, passing the physical address instead.
Returns:
  • XST_SUCCESS Initialization was successfull.
Note:
None.
u32 XGpio_DiscreteRead ( XGpio InstancePtr,
unsigned  Channel 
)

Read state of discretes for the specified GPIO channnel.

Parameters:
InstancePtr is a pointer to an XGpio instance to be worked on.
Channel contains the channel of the GPIO (1 or 2) to operate on.
Returns:
Current copy of the discretes register.
Note:
The hardware must be built for dual channels if this function is used with any channel other than 1. If it is not, this function will assert.
void XGpio_DiscreteWrite ( XGpio InstancePtr,
unsigned  Channel,
u32  Data 
)

Write to discretes register for the specified GPIO channel.

Parameters:
InstancePtr is a pointer to an XGpio instance to be worked on.
Channel contains the channel of the GPIO (1 or 2) to operate on.
Data is the value to be written to the discretes register.
Returns:
None.
Note:
The hardware must be built for dual channels if this function is used with any channel other than 1. If it is not, this function will assert. See also XGpio_DiscreteSet() and XGpio_DiscreteClear().
u32 XGpio_GetDataDirection ( XGpio InstancePtr,
unsigned  Channel 
)

Get the input/output direction of all discrete signals for the specified GPIO channel.

Parameters:
InstancePtr is a pointer to an XGpio instance to be worked on.
Channel contains the channel of the GPIO (1 or 2) to operate on.
Returns:
Bitmask specifying which discretes are input and which are output. Bits set to 0 are output and bits set to 1 are input.
Note:

The hardware must be built for dual channels if this function is used with any channel other than 1. If it is not, this function will assert.

void XGpio_SetDataDirection ( XGpio InstancePtr,
unsigned  Channel,
u32  DirectionMask 
)

Set the input/output direction of all discrete signals for the specified GPIO channel.

Parameters:
InstancePtr is a pointer to an XGpio instance to be worked on.
Channel contains the channel of the GPIO (1 or 2) to operate on.
DirectionMask is a bitmask specifying which discretes are input and which are output. Bits set to 0 are output and bits set to 1 are input.
Returns:
None.
Note:
The hardware must be built for dual channels if this function is used with any channel other than 1. If it is not, this function will assert.