]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Omap35xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c
edk2: Remove packages moved to edk2-platforms
[mirror_edk2.git] / Omap35xxPkg / Library / RealTimeClockLib / RealTimeClockLib.c
diff --git a/Omap35xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c b/Omap35xxPkg/Library/RealTimeClockLib/RealTimeClockLib.c
deleted file mode 100644 (file)
index ddde186..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-/** @file\r
-*\r
-*  Copyright (c) 2011, ARM Limited. All rights reserved.\r
-*\r
-*  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-*\r
-**/\r
-\r
-#include <Uefi.h>\r
-\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiRuntimeServicesTableLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/IoLib.h>\r
-\r
-#include <Protocol/RealTimeClock.h>\r
-#include <Protocol/EmbeddedExternalDevice.h>\r
-\r
-#include <Omap3530/Omap3530.h>\r
-#include <TPS65950.h>\r
-\r
-\r
-EMBEDDED_EXTERNAL_DEVICE   *gTPS65950;\r
-INT16                      TimeZone = EFI_UNSPECIFIED_TIMEZONE;\r
-\r
-/**\r
-  Returns the current time and date information, and the time-keeping capabilities\r
-  of the hardware platform.\r
-\r
-  @param  Time                  A pointer to storage to receive a snapshot of the current time.\r
-  @param  Capabilities          An optional pointer to a buffer to receive the real time clock\r
-                                device's capabilities.\r
-\r
-  @retval EFI_SUCCESS           The operation completed successfully.\r
-  @retval EFI_INVALID_PARAMETER Time is NULL.\r
-  @retval EFI_DEVICE_ERROR      The time could not be retrieved due to hardware error.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibGetTime (\r
-  OUT EFI_TIME                *Time,\r
-  OUT EFI_TIME_CAPABILITIES   *Capabilities\r
-  )\r
-{\r
-  EFI_STATUS            Status;\r
-  UINT8                 Data;\r
-  EFI_TPL               OldTpl;\r
-\r
-  if (Time == NULL) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  OldTpl = gBS->RaiseTPL(TPL_NOTIFY);\r
-\r
-  /* Get time and date */\r
-  ZeroMem(Time, sizeof(EFI_TIME));\r
-\r
-  // Latch values\r
-  Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-  Data |= BIT6;\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-\r
-  // Read registers\r
-  Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, YEARS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-  Time->Year = 2000 + ((Data >> 4) & 0xF) * 10 + (Data & 0xF);\r
-\r
-  Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MONTHS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-  Time->Month = ((Data >> 4) & 0x1) * 10 + (Data & 0xF);\r
-\r
-  Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, DAYS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-  Time->Day = ((Data >> 4) & 0x3) * 10 + (Data & 0xF);\r
-\r
-  Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, HOURS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-  Time->Hour = ((Data >> 4) & 0x3) * 10 + (Data & 0xF);\r
-\r
-  Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MINUTES_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-  Time->Minute = ((Data >> 4) & 0x7) * 10 + (Data & 0xF);\r
-\r
-  Status = gTPS65950->Read (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, SECONDS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-  Time->Second = ((Data >> 4) & 0x7) * 10 + (Data & 0xF);\r
-\r
-  Time->TimeZone = TimeZone;\r
-  // TODO: check what to use here\r
-  Time->Daylight = EFI_TIME_ADJUST_DAYLIGHT;\r
-\r
-  // Set capabilities\r
-\r
-  // TODO: Set real capabilities\r
-  if (Capabilities != NULL) {\r
-    Capabilities->Resolution = 1;\r
-    Capabilities->Accuracy = 50000000;\r
-    Capabilities->SetsToZero = FALSE;\r
-  }\r
-\r
-EXIT:\r
-  gBS->RestoreTPL(OldTpl);\r
-\r
-  return (Status == EFI_SUCCESS) ? Status : EFI_DEVICE_ERROR;\r
-}\r
-\r
-/**\r
-  Sets the current local time and date information.\r
-\r
-  @param  Time                  A pointer to the current time.\r
-\r
-  @retval EFI_SUCCESS           The operation completed successfully.\r
-  @retval EFI_INVALID_PARAMETER A time field is out of range.\r
-  @retval EFI_DEVICE_ERROR      The time could not be set due due to hardware error.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibSetTime (\r
-  IN EFI_TIME                *Time\r
-  )\r
-{\r
-  EFI_STATUS Status;\r
-  UINT8      Data;\r
-  UINT8      MonthDayCount[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };\r
-  EFI_TPL    OldTpl;\r
-\r
-  // Input validation according both to UEFI spec and hardware constraints\r
-  // UEFI spec says valid year range is 1900-9999 but TPS only supports 2000-2099\r
-  if ( (Time == NULL)\r
-    || (Time->Year < 2000 || Time->Year > 2099)\r
-    || (Time->Month < 1 || Time->Month > 12)\r
-    || (Time->Day < 1 || Time->Day > MonthDayCount[Time->Month])\r
-    || (Time->Hour > 23)\r
-    || (Time->Minute > 59)\r
-    || (Time->Second > 59)\r
-    || (Time->Nanosecond > 999999999)\r
-    || ((Time->TimeZone < -1440 || Time->TimeZone > 1440) && Time->TimeZone != 2047)\r
-  ) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  OldTpl = gBS->RaiseTPL(TPL_NOTIFY);\r
-\r
-  Data = Time->Year - 2000;\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, YEARS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-\r
-  Data = ((Time->Month / 10) << 4) | (Time->Month % 10);\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MONTHS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-\r
-  Data = ((Time->Day / 10) << 4) | (Time->Day % 10);\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, DAYS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-\r
-  Data = ((Time->Hour / 10) << 4) | (Time->Hour % 10);\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, HOURS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-\r
-  Data = ((Time->Minute / 10) << 4) | (Time->Minute % 10);\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, MINUTES_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-\r
-  Data = ((Time->Second / 10) << 4) | (Time->Second % 10);\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, SECONDS_REG), 1, &Data);\r
-  if (Status != EFI_SUCCESS) goto EXIT;\r
-\r
-  TimeZone = Time->TimeZone;\r
-\r
-EXIT:\r
-  gBS->RestoreTPL(OldTpl);\r
-\r
-  return (Status == EFI_SUCCESS) ? Status : EFI_DEVICE_ERROR;\r
-}\r
-\r
-/**\r
-  Returns the current wakeup alarm clock setting.\r
-\r
-  @param  Enabled               Indicates if the alarm is currently enabled or disabled.\r
-  @param  Pending               Indicates if the alarm signal is pending and requires acknowledgement.\r
-  @param  Time                  The current alarm setting.\r
-\r
-  @retval EFI_SUCCESS           The alarm settings were returned.\r
-  @retval EFI_INVALID_PARAMETER Any parameter is NULL.\r
-  @retval EFI_DEVICE_ERROR      The wakeup time could not be retrieved due to a hardware error.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibGetWakeupTime (\r
-  OUT BOOLEAN     *Enabled,\r
-  OUT BOOLEAN     *Pending,\r
-  OUT EFI_TIME    *Time\r
-  )\r
-{\r
-  return EFI_UNSUPPORTED;\r
-}\r
-\r
-/**\r
-  Sets the system wakeup alarm clock time.\r
-\r
-  @param  Enabled               Enable or disable the wakeup alarm.\r
-  @param  Time                  If Enable is TRUE, the time to set the wakeup alarm for.\r
-\r
-  @retval EFI_SUCCESS           If Enable is TRUE, then the wakeup alarm was enabled. If\r
-                                Enable is FALSE, then the wakeup alarm was disabled.\r
-  @retval EFI_INVALID_PARAMETER A time field is out of range.\r
-  @retval EFI_DEVICE_ERROR      The wakeup time could not be set due to a hardware error.\r
-  @retval EFI_UNSUPPORTED       A wakeup timer is not supported on this platform.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibSetWakeupTime (\r
-  IN BOOLEAN      Enabled,\r
-  OUT EFI_TIME    *Time\r
-  )\r
-{\r
-  return EFI_UNSUPPORTED;\r
-}\r
-\r
-/**\r
-  This is the declaration of an EFI image entry point. This can be the entry point to an application\r
-  written to this specification, an EFI boot service driver, or an EFI runtime driver.\r
-\r
-  @param  ImageHandle           Handle that identifies the loaded image.\r
-  @param  SystemTable           System Table for this image.\r
-\r
-  @retval EFI_SUCCESS           The operation completed successfully.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-LibRtcInitialize (\r
-  IN EFI_HANDLE                            ImageHandle,\r
-  IN EFI_SYSTEM_TABLE                      *SystemTable\r
-  )\r
-{\r
-  EFI_STATUS    Status;\r
-  EFI_HANDLE    Handle;\r
-  UINT8         Data;\r
-  EFI_TPL       OldTpl;\r
-\r
-  Status = gBS->LocateProtocol (&gEmbeddedExternalDeviceProtocolGuid, NULL, (VOID **)&gTPS65950);\r
-  ASSERT_EFI_ERROR(Status);\r
-\r
-  OldTpl = gBS->RaiseTPL(TPL_NOTIFY);\r
-  Data = 1;\r
-  Status = gTPS65950->Write (gTPS65950, EXTERNAL_DEVICE_REGISTER(I2C_ADDR_GRP_ID4, RTC_CTRL_REG), 1, &Data);\r
-  ASSERT_EFI_ERROR(Status);\r
-  gBS->RestoreTPL(OldTpl);\r
-\r
-  // Setup the setters and getters\r
-  gRT->GetTime       = LibGetTime;\r
-  gRT->SetTime       = LibSetTime;\r
-  gRT->GetWakeupTime = LibGetWakeupTime;\r
-  gRT->SetWakeupTime = LibSetWakeupTime;\r
-\r
-  // Install the protocol\r
-  Handle = NULL;\r
-  Status = gBS->InstallMultipleProtocolInterfaces (\r
-                  &Handle,\r
-                  &gEfiRealTimeClockArchProtocolGuid,  NULL,\r
-                  NULL\r
-                 );\r
-\r
-  return Status;\r
-}\r
-\r
-/**\r
-  Fixup internal data so that EFI can be call in virtual mode.\r
-  Call the passed in Child Notify event and convert any pointers in\r
-  lib to virtual mode.\r
-\r
-  @param[in]    Event   The Event that is being processed\r
-  @param[in]    Context Event Context\r
-**/\r
-VOID\r
-EFIAPI\r
-LibRtcVirtualNotifyEvent (\r
-  IN EFI_EVENT        Event,\r
-  IN VOID             *Context\r
-  )\r
-{\r
-  return;\r
-}\r