PDK API Guide for J721S2
CSL_GPIO_FUNCTION

Introduction

Functions

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

Function Documentation

◆ CSL_GPIO_getPID()

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

============================================================================
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_GPIO_getPCR()

static void CSL_GPIO_getPCR ( CSL_GpioHandle  hGpio,
Uint8 *  soft,
Uint8 *  free 
)
inlinestatic

============================================================================
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_GPIO_bankInterruptEnable()

static void CSL_GPIO_bankInterruptEnable ( CSL_GpioHandle  hGpio,
Uint8  bankNum 
)
inlinestatic

============================================================================
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_GPIO_bankInterruptDisable()

static void CSL_GPIO_bankInterruptDisable ( CSL_GpioHandle  hGpio,
Uint8  bankNum 
)
inlinestatic

============================================================================
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_GPIO_isBankInterruptEnabled()

static Bool CSL_GPIO_isBankInterruptEnabled ( CSL_GpioHandle  hGpio,
Uint8  bankNum 
)
inlinestatic

============================================================================
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_GPIO_setPinDirOutput()

static void CSL_GPIO_setPinDirOutput ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_setPinDirInput()

static void CSL_GPIO_setPinDirInput ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_getPinDirection()

static Bool CSL_GPIO_getPinDirection ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_getOutputData()

static void CSL_GPIO_getOutputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum,
Uint8 *  outData 
)
inlinestatic

============================================================================
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_GPIO_setOutputData()

static void CSL_GPIO_setOutputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_clearOutputData()

static void CSL_GPIO_clearOutputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_getInputData()

static void CSL_GPIO_getInputData ( CSL_GpioHandle  hGpio,
Uint8  pinNum,
Uint8 *  inData 
)
inlinestatic

============================================================================
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_GPIO_setRisingEdgeDetect()

static void CSL_GPIO_setRisingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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));
     ...    

◆ CSL_GPIO_clearRisingEdgeDetect()

static void CSL_GPIO_clearRisingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_isRisingEdgeDetect()

static Bool CSL_GPIO_isRisingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_setFallingEdgeDetect()

static void CSL_GPIO_setFallingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_clearFallingEdgeDetect()

static void CSL_GPIO_clearFallingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_isFallingEdgeDetect()

static Bool CSL_GPIO_isFallingEdgeDetect ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_getInterruptStatus()

static Bool CSL_GPIO_getInterruptStatus ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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_GPIO_clearInterruptStatus()

static void CSL_GPIO_clearInterruptStatus ( CSL_GpioHandle  hGpio,
Uint8  pinNum 
)
inlinestatic

============================================================================
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));
     ...