diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec index dff45983b4..5f67e74154 100644 --- a/ArmPlatformPkg/ArmPlatformPkg.dec +++ b/ArmPlatformPkg/ArmPlatformPkg.dec @@ -36,6 +36,7 @@ LcdHwLib|Include/Library/LcdHwLib.h LcdPlatformLib|Include/Library/LcdPlatformLib.h NorFlashPlatformLib|Include/Library/NorFlashPlatformLib.h + PL011UartClockLib|Include/Library/PL011UartClockLib.h PL011UartLib|Include/Library/PL011UartLib.h [Guids.common] diff --git a/ArmPlatformPkg/ArmPlatformPkg.dsc b/ArmPlatformPkg/ArmPlatformPkg.dsc index 0013106b94..d504e76b2f 100644 --- a/ArmPlatformPkg/ArmPlatformPkg.dsc +++ b/ArmPlatformPkg/ArmPlatformPkg.dsc @@ -105,6 +105,7 @@ ArmPlatformPkg/Library/LcdPlatformNullLib/LcdPlatformNullLib.inf ArmPlatformPkg/Library/NorFlashPlatformNullLib/NorFlashPlatformNullLib.inf ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf + ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf diff --git a/ArmPlatformPkg/Include/Library/PL011UartClockLib.h b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h new file mode 100644 index 0000000000..04c7d51576 --- /dev/null +++ b/ArmPlatformPkg/Include/Library/PL011UartClockLib.h @@ -0,0 +1,31 @@ +/** @file +* +* Copyright 2018 NXP +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#ifndef __PL011UARTCLOCKLIB_H__ +#define __PL011UARTCLOCKLIB_H__ + +/** + + Return baud clock frequency of PL011. + + @return return frequency of PL011 in Hz + +**/ +UINT32 +EFIAPI +PL011UartClockGetFreq ( + VOID + ); + +#endif diff --git a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c new file mode 100644 index 0000000000..c61110df5d --- /dev/null +++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.c @@ -0,0 +1,29 @@ +/** @file +* +* Copyright 2018 NXP +* +* This program and the accompanying materials +* are licensed and made available under the terms and conditions of the BSD License +* which accompanies this distribution. The full text of the license may be found at +* http://opensource.org/licenses/bsd-license.php +* +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +* +**/ + +#include + +/** + Return clock in for PL011 Uart IP + + @return Pcd PL011UartClkInHz +**/ +UINT32 +EFIAPI +PL011UartClockGetFreq ( + VOID + ) +{ + return FixedPcdGet32 (PL011UartClkInHz); +} diff --git a/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf new file mode 100644 index 0000000000..db9bef641e --- /dev/null +++ b/ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf @@ -0,0 +1,30 @@ +#/* @file +# Copyright 2018 NXP +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +#*/ + +[Defines] + INF_VERSION = 0x0001001A + BASE_NAME = BasePL011UartClockLib + FILE_GUID = af8fef24-afbb-472a-b8b7-13101a79703c + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = PL011UartClockLib + +[Packages] + ArmPlatformPkg/ArmPlatformPkg.dec + MdePkg/MdePkg.dec + +[Sources.common] + PL011UartClockLib.c + +[FixedPcd] + gArmPlatformTokenSpaceGuid.PL011UartClkInHz