12#ifndef ARM_SCMI_CLOCK2_PROTOCOL_H_
13#define ARM_SCMI_CLOCK2_PROTOCOL_H_
18#define ARM_SCMI_CLOCK2_PROTOCOL_GUID {\
19 0xb8d8caf2, 0x9e94, 0x462c, { 0xa8, 0x34, 0x6c, 0x99, 0xfc, 0x05, 0xef, 0xcf } \
22extern EFI_GUID gArmScmiClock2ProtocolGuid;
24#define SCMI_CLOCK2_PROTOCOL_VERSION 1
62 OUT UINT32 *TotalClocks
84 OUT CHAR8 *ClockAsciiName
115 OUT SCMI_CLOCK_RATE_FORMAT *Format,
116 OUT UINT32 *TotalRates,
117 IN OUT UINT32 *RateArraySize,
EFI_STATUS(EFIAPI * SCMI_CLOCK2_RATE_GET)(IN SCMI_CLOCK2_PROTOCOL *This, IN UINT32 ClockId, OUT UINT64 *Rate)
EFI_STATUS(EFIAPI * SCMI_CLOCK2_DESCRIBE_RATES)(IN SCMI_CLOCK2_PROTOCOL *This, IN UINT32 ClockId, OUT SCMI_CLOCK_RATE_FORMAT *Format, OUT UINT32 *TotalRates, IN OUT UINT32 *RateArraySize, OUT SCMI_CLOCK_RATE *RateArray)
EFI_STATUS(EFIAPI * SCMI_CLOCK2_GET_CLOCK_ATTRIBUTES)(IN SCMI_CLOCK2_PROTOCOL *This, IN UINT32 ClockId, OUT BOOLEAN *Enabled, OUT CHAR8 *ClockAsciiName)
EFI_STATUS(EFIAPI * SCMI_CLOCK2_GET_VERSION)(IN SCMI_CLOCK2_PROTOCOL *This, OUT UINT32 *Version)
EFI_STATUS(EFIAPI * SCMI_CLOCK2_GET_TOTAL_CLOCKS)(IN SCMI_CLOCK2_PROTOCOL *This, OUT UINT32 *TotalClocks)
EFI_STATUS(EFIAPI * SCMI_CLOCK2_RATE_SET)(IN SCMI_CLOCK2_PROTOCOL *This, IN UINT32 ClockId, IN UINT64 Rate)
EFI_STATUS(EFIAPI * SCMI_CLOCK2_ENABLE)(IN SCMI_CLOCK2_PROTOCOL *This, IN UINT32 ClockId, IN BOOLEAN Enable)