GPIO Functions
[GPIO]

Functions

CSL_IDEF_INLINE void CSL_GPIO_getPID (CSL_GpioHandle hGpio, Uint8 *scheme, Uint16 *function, Uint8 *rtl, Uint8 *major, Uint8 *custom, Uint8 *minor)
CSL_IDEF_INLINE void CSL_GPIO_getPCR (CSL_GpioHandle hGpio, Uint8 *soft, Uint8 *free)
CSL_IDEF_INLINE void CSL_GPIO_bankInterruptEnable (CSL_GpioHandle hGpio, Uint8 bankNum)
CSL_IDEF_INLINE void CSL_GPIO_bankInterruptDisable (CSL_GpioHandle hGpio, Uint8 bankNum)
CSL_IDEF_INLINE Bool CSL_GPIO_isBankInterruptEnabled (CSL_GpioHandle hGpio, Uint8 bankNum)
CSL_IDEF_INLINE void CSL_GPIO_setPinDirOutput (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_setPinDirInput (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE Bool CSL_GPIO_getPinDirection (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_getOutputData (CSL_GpioHandle hGpio, Uint8 pinNum, Uint8 *outData)
CSL_IDEF_INLINE void CSL_GPIO_setOutputData (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_clearOutputData (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_getInputData (CSL_GpioHandle hGpio, Uint8 pinNum, Uint8 *inData)
CSL_IDEF_INLINE void CSL_GPIO_setRisingEdgeDetect (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_clearRisingEdgeDetect (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE Bool CSL_GPIO_isRisingEdgeDetect (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_setFallingEdgeDetect (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_clearFallingEdgeDetect (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE Bool CSL_GPIO_isFallingEdgeDetect (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE Bool CSL_GPIO_getInterruptStatus (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_IDEF_INLINE void CSL_GPIO_clearInterruptStatus (CSL_GpioHandle hGpio, Uint8 pinNum)
CSL_GpioHandle CSL_GPIO_open (Int32 instNum)

Function Documentation

CSL_IDEF_INLINE void CSL_GPIO_bankInterruptDisable ( CSL_GpioHandle  hGpio,
Uint8  bankNum 
)

============================================================================
CSL_GPIO_bankInterruptDisable

Description
This function disables the GPIO per bank interrupt. Each bank supports 16 GPIO signals.

Arguments

          hGpio             Handle of the GPIO device
          bankNum           GPIO Bank Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_BINTEN_EN=0

Example

        CSL_GpioHandle  hGpio;
        Uint8           bankNum = 0;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Disable GPIO per bank interrupt for bank zero
        CSL_GPIO_bankInterruptDisable (hGpio, bankNum);
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_bankInterruptEnable ( CSL_GpioHandle  hGpio,
Uint8  bankNum 
)

============================================================================
CSL_GPIO_bankInterruptEnable

Description
This function enables the GPIO per bank interrupt. Each bank supports 16 GPIO signals.

Arguments

          hGpio             Handle of the GPIO device
          bankNum           GPIO Bank Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_BINTEN_EN=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           bankNum = 0;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Enable GPIO per bank interrupt for bank zero
        CSL_GPIO_bankInterruptEnable (hGpio, bankNum);
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_clearFallingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_clearFallingEdgeDetect

Description
This function clears falling edge interrupt detection for GPIO pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_CLR_FAL_TRIG_CLRFAL=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Clear falling edge interrupt detection on GPIO pin 1
        CSL_GPIO_clearFallingEdgeDetect (hGpio, pinNum));
        ...     
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_clearInterruptStatus ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_clearInterruptStatus

Description
This function clears the GPIO pin interrupt status.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_INTSTAT_STAT=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Check interrupt status on pin 1
        CSL_GPIO_getInterruptStatus (hGpio, pinNum));
        ...        
        // Clear interrupt status on pin 1
        CSL_GPIO_clearInterruptStatus (hGpio, pinNum));
        ...     
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_clearOutputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_clearOutputData

Description
This function clears the output drive state of GPIO pin when it is configured as an output pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_CLR_DATA_CLR=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 0;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Clear output of GPIO pin number 0
        CSL_GPIO_clearOutputData (hGpio, pinNum);
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_clearRisingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_clearRisingEdgeDetect

Description
This function clears rising edge interrupt detection for GPIO pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_CLR_RIS_TRIG_CLRRIS=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Clear rising edge interrupt detection on GPIO pin 1
        CSL_GPIO_clearRisingEdgeDetect (hGpio, pinNum));
        ...    
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_getInputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum,
Uint8 *  inData 
)

============================================================================
CSL_GPIO_getInputData

Description
This function gets the input bit data on GPIO pin when it is configured as an input pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
          inData            Bit data when GPIO is configured as input pin
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_IN_DATA_IN

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1, inData;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Get the output data on pin 1
        CSL_GPIO_getInputData (hGpio, pinNum, &inData));
        ...  
     

=============================================================================

CSL_IDEF_INLINE Bool CSL_GPIO_getInterruptStatus ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_getInterruptStatus

Description
This function gets the GPIO pin interrupt status.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
0 - Interrupt has not occurred since last cleared
1 - Interrupt has occurred

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_INTSTAT_STAT

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Check interrupt status on pin 1
        if (CSL_GPIO_getInterruptStatus (hGpio, pinNum) == 0)
        {
            // Interrupt has not occured
        }
        else
        {
            // Interrupt has occured
        }
        ...     
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_getOutputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum,
Uint8 *  outData 
)

============================================================================
CSL_GPIO_getOutputData

Description
This function gets the output drive state of GPIO pin when it is configured as an output pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
          outData           Bit data when GPIO is configured as output pin
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_OUT_DATA_OUT

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1, outData;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Get the output data on pin 1
        CSL_GPIO_getOutputData (hGpio, pinNum, &outData));
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_getPCR ( CSL_GpioHandle  hGpio,
Uint8 *  soft,
Uint8 *  free 
)

============================================================================
CSL_GPIO_getPCR

Description
This function reads the peripheral Control register which identifies the emulation mode.

Arguments

          soft          Used in conjunction with FREE bit to determine
                        the emulation suspend mode. GPIO has FREE bit set to 1 
                        so SOFT bit does not affect functionality.
          free          For GPIO, the FREE bit is fixed at 1, which
                        means GPIO runs free in emulation suspend.
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_PCR_SOFT,GPIO_PCR_FREE

Example

        CSL_GpioHandle  hGpio;
        Uint8           soft, free;
 
        ...
        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);

        // Get the GPIO Peripheral Control register configuration.
        CSL_GPIO_getPCR (hGpio, &soft, &free);
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_getPID ( CSL_GpioHandle  hGpio,
Uint8 *  scheme,
Uint16 *  function,
Uint8 *  rtl,
Uint8 *  major,
Uint8 *  custom,
Uint8 *  minor 
)

============================================================================
CSL_GPIO_getPID

Description
This function reads the peripheral ID register which identifies the scheme of PID encoding, function, rtl id, major id, custom id and minor id.

Arguments

          scheme        Scheme of PID encoding
          function      GPIO function
          rtl           RTL ID of GPIO module 
          major         Major ID of GPIO module 
          custom        Custom ID of GPIO module 
          minor         Minor ID of GPIO module 
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_PID_SCHEME,GPIO_PID_FUNC,GPIO_PID_RTL,GPIO_PID_MAJOR,GPIO_PID_CUSTOM,GPIO_PID_MINOR

Example

        CSL_GpioHandle  hGpio;
        Uint16          function;
        Uint8           scheme, rtl, major, custom, minor;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Get the GPIO Peripheral Identification.
        CSL_GPIO_getPID (hGpio, &scheme, &function, &rtl, &major, &custom, &minor);
        ...
     

=============================================================================

CSL_IDEF_INLINE Bool CSL_GPIO_getPinDirection ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_getPinDirection

Description
This function gets the direction configuration of GPIO pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
0 - Pin is configured as output pin
1 - Pin is configured as input pin

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_DIR_DIR

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Check if pin 1 is configured as input or output pin
        if (CSL_GPIO_getPinDirection (hGpio, pinNum))
        {
            // GPIO pin is configured as INPUT
        }
        else
        {
            // GPIO pin is configured as OUTPUT
        }
        ...
     

=============================================================================

CSL_IDEF_INLINE Bool CSL_GPIO_isBankInterruptEnabled ( CSL_GpioHandle  hGpio,
Uint8  bankNum 
)

============================================================================
CSL_GPIO_isBankInterruptEnabled

Description
This function returns the status of GPIO per bank interrupt. Each bank supports 16 GPIO signals.

Arguments

          hGpio             Handle of the GPIO device
          bankNum           GPIO Bank Number
     

Return Value
TRUE - Interrupt is enabled
FALSE - Interrupt is disabled

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_BINTEN_EN

Example

        CSL_GpioHandle  hGpio;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Check if GPIO per bank interrupt is enabled or disabled
        if (CSL_GPIO_isBankInterruptEnabled (hGpio) == TRUE)
        {
            // GPIO per bank interrupt is ENABLED
        }
        else
        {
            // GPIO per bank interrupt is DISABLED
        }
        ...
     

=============================================================================

CSL_IDEF_INLINE Bool CSL_GPIO_isFallingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_isFallingEdgeDetect

Description
This function checks if the interrupt detection for GPIO pin is set to falling edge or not.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
TRUE - Interrupt detection is set to falling edge
FALSE - Interrupt detection is not set to falling edge

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_SET_FAL_TRIG_SETFAL

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Check interrupt detection state on GPIO pin 1 
        if (CSL_GPIO_isFallingEdgeDetect (hGpio, pinNum) == TRUE)
        {
            // Interrupt detection is set to FALLING EDGE
        }
        else
        {
            // Interrupt detection is not set to FALLING EDGE
        }
        ...
     

=============================================================================

CSL_IDEF_INLINE Bool CSL_GPIO_isRisingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_isRisingEdgeDetect

Description
This function checks if the interrupt detection for GPIO pin is set to rising edge or not.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
TRUE - Interrupt detection is set to rising edge
FALSE - Interrupt detection is not set to rising edge

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Reads
GPIO_SET_RIS_TRIG_SETRIS

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Check interrupt detection state on GPIO pin 1 
        if (CSL_GPIO_isRisingEdgeDetect (hGpio, pinNum) == TRUE)
        {
            // Interrupt detection is set to RISING EDGE
        }
        else
        {
            // Interrupt detection is not set to RISING EDGE
        }
        ...
     

=============================================================================

CSL_GpioHandle CSL_GPIO_open ( Int32  instNum  ) 

============================================================================
CSL_GPIO_open

Description
This API opens the GPIO instance. This should always be the first call to the CSL GPIO Functional layer. The handle which is returned from this call should be passed in all subsequent CSL API's.

Return Value
CSL_GpioHandle - Handle to the GPIO Module
0 - Error.

Pre Condition
None

Post Condition
None

Affects
None

Example

        CSL_GpioHandle   hnd;
        ...
        hnd = CSL_GPIO_open (0);    // Opens GPIO Instance 0
        ...
     

===========================================================================

CSL_IDEF_INLINE void CSL_GPIO_setFallingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_setFallingEdgeDetect

Description
This function sets falling edge interrupt detection for GPIO pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_SET_FAL_TRIG_SETFAL=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Set interrupt detection on GPIO pin 1 to falling edge
        CSL_GPIO_setFallingEdgeDetect (hGpio, pinNum));
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_setOutputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_setOutputData

Description
This function sets the output drive state of GPIO pin when it is configured as an output pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_SET_DATA_SET=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 0;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Set output of GPIO pin number 0 to 1
        CSL_GPIO_setOutputData (hGpio, pinNum);
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_setPinDirInput ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_setPinDirInput

Description
This function sets the direction of GPIO pin as an input pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_DIR_DIR=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Set GPIO pin number 1 as an input pin
        CSL_GPIO_setPinDirInput (hGpio, pinNum);
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_setPinDirOutput ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_setPinDirOutput

Description
This function sets the direction of GPIO pin as an output pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_DIR_DIR=0

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Set GPIO pin number 1 as an output pin
        CSL_GPIO_setPinDirOutput (hGpio, pinNum);
        ...
     

=============================================================================

CSL_IDEF_INLINE void CSL_GPIO_setRisingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)

============================================================================
CSL_GPIO_setRisingEdgeDetect

Description
This function sets rising edge interrupt detection for GPIO pin.

Arguments

          hGpio             Handle of the GPIO device
          pinNum            GPIO Pin Number
     

Return Value
None

Pre Condition
CSL_GPIO_open() must be called

Post Condition
None

Writes
GPIO_SET_RIS_TRIG_SETRIS=1

Example

        CSL_GpioHandle  hGpio;
        Uint8           pinNum = 1;

        // Open the CSL GPIO Module 0
        hGpio = CSL_GPIO_open (0);
        ...
        // Set interrupt detection on GPIO pin 1 to rising edge
        CSL_GPIO_setRisingEdgeDetect (hGpio, pinNum));
        ...    
     

=============================================================================


Copyright 2012, Texas Instruments Incorporated