Using the API for Pin Management - 2021.2 English

Versal ACAP System Software Developers Guide (UG1304)

Document ID
UG1304
Release Date
2021-10-27
Version
2021.2 English

There are EEMI APIs available that allow PUs to manage pins in the system. Each pin is identified by a unique PinId. A PM master could obtain a list of PinIds accessible to that PU by using the XPm_Query API.

Use the following APIs to request or release control of a pin:

  • XStatus XPm_PinCtrlRequest(const u32 PinId)
  • XStatus XPm_PinCtrlRelease(const u32 PinId)

You can configure a pin for use by different functional units. Use the XPm_Query API to obtain a list of functional units accessible to a pin, which is identified by FunctionId. Request a pin before assigning a functional unit to a pin. Most functional units are associated with a device. Use the XPm_RequestNode API to request the device before assigning it to a pin.

  • XStatus XPm_PinCtrlGetFunction(const u32 PinId, u32 *const FunctionId)
  • XStatus XPm_PinCtrlSetFunction(const u32 PinId, const u32 FunctionId)

Use the following APIs to configure a pin for different operating characteristics. For a list of possible ParamIds and ParamVals, see OS and Libraries Document Collection (UG643).

  • XStatus XPm_PinCtrlGetParameter(const u32 PinId, const u32 ParamId, u32 *const ParamVal)
  • XStatus XPm_PinCtrlSetParameter(const u32 PinId, const u32 ParamId, const u32 ParamVal)