forked from Minki/linux
3a253caaad
Add TPM 2.0 compatible I2C interface for chips with cr50 firmware. The firmware running on the currently supported H1 MCU requires a special driver to handle its specific protocol, and this makes it unsuitable to use tpm_tis_core_* and instead it must implement the underlying TPM protocol similar to the other I2C TPM drivers. - All 4 bytes of status register must be read/written at once. - FIFO and burst count is limited to 63 and must be drained by AP. - Provides an interrupt to indicate when read response data is ready and when the TPM is finished processing write data. This driver is based on the existing infineon I2C TPM driver, which most closely matches the cr50 i2c protocol behavior. Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Signed-off-by: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.com> Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Tested-by: Adrian Ratiu <adrian.ratiu@collabora.com> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
44 lines
1.3 KiB
Makefile
44 lines
1.3 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the kernel tpm device drivers.
|
|
#
|
|
obj-$(CONFIG_TCG_TPM) += tpm.o
|
|
tpm-y := tpm-chip.o
|
|
tpm-y += tpm-dev-common.o
|
|
tpm-y += tpm-dev.o
|
|
tpm-y += tpm-interface.o
|
|
tpm-y += tpm1-cmd.o
|
|
tpm-y += tpm2-cmd.o
|
|
tpm-y += tpmrm-dev.o
|
|
tpm-y += tpm2-space.o
|
|
tpm-y += tpm-sysfs.o
|
|
tpm-y += eventlog/common.o
|
|
tpm-y += eventlog/tpm1.o
|
|
tpm-y += eventlog/tpm2.o
|
|
|
|
tpm-$(CONFIG_ACPI) += tpm_ppi.o eventlog/acpi.o
|
|
tpm-$(CONFIG_EFI) += eventlog/efi.o
|
|
tpm-$(CONFIG_OF) += eventlog/of.o
|
|
obj-$(CONFIG_TCG_TIS_CORE) += tpm_tis_core.o
|
|
obj-$(CONFIG_TCG_TIS) += tpm_tis.o
|
|
obj-$(CONFIG_TCG_TIS_SYNQUACER) += tpm_tis_synquacer.o
|
|
|
|
obj-$(CONFIG_TCG_TIS_SPI) += tpm_tis_spi.o
|
|
tpm_tis_spi-y := tpm_tis_spi_main.o
|
|
tpm_tis_spi-$(CONFIG_TCG_TIS_SPI_CR50) += tpm_tis_spi_cr50.o
|
|
|
|
obj-$(CONFIG_TCG_TIS_I2C_CR50) += tpm_tis_i2c_cr50.o
|
|
|
|
obj-$(CONFIG_TCG_TIS_I2C_ATMEL) += tpm_i2c_atmel.o
|
|
obj-$(CONFIG_TCG_TIS_I2C_INFINEON) += tpm_i2c_infineon.o
|
|
obj-$(CONFIG_TCG_TIS_I2C_NUVOTON) += tpm_i2c_nuvoton.o
|
|
obj-$(CONFIG_TCG_NSC) += tpm_nsc.o
|
|
obj-$(CONFIG_TCG_ATMEL) += tpm_atmel.o
|
|
obj-$(CONFIG_TCG_INFINEON) += tpm_infineon.o
|
|
obj-$(CONFIG_TCG_IBMVTPM) += tpm_ibmvtpm.o
|
|
obj-$(CONFIG_TCG_TIS_ST33ZP24) += st33zp24/
|
|
obj-$(CONFIG_TCG_XEN) += xen-tpmfront.o
|
|
obj-$(CONFIG_TCG_CRB) += tpm_crb.o
|
|
obj-$(CONFIG_TCG_VTPM_PROXY) += tpm_vtpm_proxy.o
|
|
obj-$(CONFIG_TCG_FTPM_TEE) += tpm_ftpm_tee.o
|