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)