#/** @file
#
#    Copyright (c) 2015, Hisilicon Limited. All rights reserved.
#    Copyright (c) 2015, Linaro Limited. All rights reserved.
#
#    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                    = 0x00010005
  BASE_NAME                      = CpldIoLib
  FILE_GUID                      = 4633665C-0029-464E-9788-58B8D49FF57E
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = CpldIoLib

[Sources.common]
  CpldIoLib.c

[Packages]
  MdePkg/MdePkg.dec
  EmbeddedPkg/EmbeddedPkg.dec
  MdeModulePkg/MdeModulePkg.dec
  ArmPkg/ArmPkg.dec
  ArmPlatformPkg/ArmPlatformPkg.dec
  OpenPlatformPkg/Chips/Hisilicon/HisiPkg.dec


[LibraryClasses]
  DebugLib
  IoLib
  BaseLib
  ArmLib
  TimerLib

[BuildOptions]

[Pcd]
  gHisiTokenSpaceGuid.PcdCpldBaseAddress
