TianoCore EDK2 master
|
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/ArmScmiClockProtocol.h>
#include <Protocol/ArmScmiClock2Protocol.h>
#include "ArmScmiClockProtocolPrivate.h"
#include "ScmiPrivate.h"
Go to the source code of this file.
Functions | |
STATIC UINT64 | ConvertTo64Bit (IN UINT32 Low, IN UINT32 High) |
STATIC EFI_STATUS | ClockGetVersion (IN SCMI_CLOCK_PROTOCOL *This, OUT UINT32 *Version) |
STATIC EFI_STATUS | ClockGetTotalClocks (IN SCMI_CLOCK_PROTOCOL *This, OUT UINT32 *TotalClocks) |
STATIC EFI_STATUS | ClockGetClockAttributes (IN SCMI_CLOCK_PROTOCOL *This, IN UINT32 ClockId, OUT BOOLEAN *Enabled, OUT CHAR8 *ClockAsciiName) |
STATIC EFI_STATUS | ClockDescribeRates (IN SCMI_CLOCK_PROTOCOL *This, IN UINT32 ClockId, OUT SCMI_CLOCK_RATE_FORMAT *Format, OUT UINT32 *TotalRates, IN OUT UINT32 *RateArraySize, OUT SCMI_CLOCK_RATE *RateArray) |
STATIC EFI_STATUS | ClockRateGet (IN SCMI_CLOCK_PROTOCOL *This, IN UINT32 ClockId, OUT UINT64 *Rate) |
STATIC EFI_STATUS | ClockRateSet (IN SCMI_CLOCK_PROTOCOL *This, IN UINT32 ClockId, IN UINT64 Rate) |
STATIC EFI_STATUS | ClockEnable (IN SCMI_CLOCK2_PROTOCOL *This, IN UINT32 ClockId, IN BOOLEAN Enable) |
EFI_STATUS | ScmiClockProtocolInit (IN EFI_HANDLE *Handle) |
Variables | |
STATIC CONST SCMI_CLOCK_PROTOCOL | ScmiClockProtocol |
STATIC CONST SCMI_CLOCK2_PROTOCOL | ScmiClock2Protocol |
Copyright (c) 2017-2021, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
System Control and Management Interface V1.0 http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/ DEN0056A_System_Control_and_Management_Interface.pdf
Definition in file ScmiClockProtocol.c.
STATIC EFI_STATUS ClockDescribeRates | ( | IN SCMI_CLOCK_PROTOCOL * | This, |
IN UINT32 | ClockId, | ||
OUT SCMI_CLOCK_RATE_FORMAT * | Format, | ||
OUT UINT32 * | TotalRates, | ||
IN OUT UINT32 * | RateArraySize, | ||
OUT SCMI_CLOCK_RATE * | RateArray | ||
) |
Return list of rates supported by a given clock device.
[in] | This | A pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[out] | Format | ScmiClockRateFormatDiscrete: Clock device supports range of clock rates which are non-linear. |
ScmiClockRateFormatLinear: Clock device supports range of linear clock rates from Min to Max in steps.
[out] | TotalRates | Total number of rates. |
[in,out] | RateArraySize | Size of the RateArray. |
[out] | RateArray | List of clock rates. |
EFI_SUCCESS | List of clock rates is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
EFI_BUFFER_TOO_SMALL | RateArraySize is too small for the result. It has been updated to the size needed. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 176 of file ScmiClockProtocol.c.
STATIC EFI_STATUS ClockEnable | ( | IN SCMI_CLOCK2_PROTOCOL * | This, |
IN UINT32 | ClockId, | ||
IN BOOLEAN | Enable | ||
) |
Enable/Disable specified clock.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[in] | Enable | TRUE to enable, FALSE to disable. |
EFI_SUCCESS | Clock enable/disable successful. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 397 of file ScmiClockProtocol.c.
STATIC EFI_STATUS ClockGetClockAttributes | ( | IN SCMI_CLOCK_PROTOCOL * | This, |
IN UINT32 | ClockId, | ||
OUT BOOLEAN * | Enabled, | ||
OUT CHAR8 * | ClockAsciiName | ||
) |
Return attributes of a clock device.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[out] | Enabled | If TRUE, the clock device is enabled. |
[out] | ClockAsciiName | A NULL terminated ASCII string with the clock name, of up to 16 bytes. |
EFI_SUCCESS | Clock device attributes are returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 104 of file ScmiClockProtocol.c.
STATIC EFI_STATUS ClockGetTotalClocks | ( | IN SCMI_CLOCK_PROTOCOL * | This, |
OUT UINT32 * | TotalClocks | ||
) |
Return total number of clock devices supported by the clock management protocol.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[out] | TotalClocks | Total number of clocks supported. |
EFI_SUCCESS | Total number of clocks supported is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 71 of file ScmiClockProtocol.c.
STATIC EFI_STATUS ClockGetVersion | ( | IN SCMI_CLOCK_PROTOCOL * | This, |
OUT UINT32 * | Version | ||
) |
Return version of the clock management protocol supported by SCP firmware.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[out] | Version | Version of the supported SCMI Clock management protocol. |
EFI_SUCCESS | The version is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 50 of file ScmiClockProtocol.c.
STATIC EFI_STATUS ClockRateGet | ( | IN SCMI_CLOCK_PROTOCOL * | This, |
IN UINT32 | ClockId, | ||
OUT UINT64 * | Rate | ||
) |
Get clock rate.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[out] | Rate | Clock rate. |
EFI_SUCCESS | Clock rate is returned. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 294 of file ScmiClockProtocol.c.
STATIC EFI_STATUS ClockRateSet | ( | IN SCMI_CLOCK_PROTOCOL * | This, |
IN UINT32 | ClockId, | ||
IN UINT64 | Rate | ||
) |
Set clock rate.
[in] | This | A Pointer to SCMI_CLOCK_PROTOCOL Instance. |
[in] | ClockId | Identifier for the clock device. |
[in] | Rate | Clock rate. |
EFI_SUCCESS | Clock rate set success. |
EFI_DEVICE_ERROR | SCP returns an SCMI error. |
!(EFI_SUCCESS) | Other errors. |
Definition at line 348 of file ScmiClockProtocol.c.
Convert to 64 bit value from two 32 bit words.
[in] | Low | Lower 32 bits. |
[in] | High | Higher 32 bits. |
UINT64 | 64 bit value. |
Definition at line 30 of file ScmiClockProtocol.c.
EFI_STATUS ScmiClockProtocolInit | ( | IN EFI_HANDLE * | Handle | ) |
Initialize clock management protocol and install protocol on a given handle.
[in] | Handle | Handle to install clock management protocol. |
EFI_SUCCESS | Clock protocol interface installed successfully. |
Definition at line 461 of file ScmiClockProtocol.c.
STATIC CONST SCMI_CLOCK2_PROTOCOL ScmiClock2Protocol |
Definition at line 443 of file ScmiClockProtocol.c.
STATIC CONST SCMI_CLOCK_PROTOCOL ScmiClockProtocol |
Definition at line 433 of file ScmiClockProtocol.c.