## @file
#  Provides some common functions for the TCG feature for Infineon I2C TPM.
#
#  This instance provides basic TPM Interface Specification (TIS) functions
#  for Infineon I2C TPM.
#
# Copyright (c) 2013 - 2016, Intel Corporation. All rights reserved.<BR>
# 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                      = Tpm12DeviceLibInfineonI2c
  MODULE_UNI_FILE                = Tpm12DeviceLibInfineonI2c.uni
  FILE_GUID                      = DBE37563-AFEF-4B41-BDCE-B01B6D1E8690
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = Tpm12DeviceLib|PEIM DXE_DRIVER DXE_SMM_DRIVER UEFI_DRIVER

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  TisPc.c

[Packages]
  MdePkg/MdePkg.dec
  SecurityPkg/SecurityPkg.dec
  QuarkSocPkg/QuarkSocPkg.dec

[LibraryClasses]
  BaseLib
  TimerLib
  DebugLib
  I2cLib
