/* * Copyright (c) 2025, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef TPM2_INTERFACE_H #define TPM2_INTERFACE_H #include "tpm2_chip.h" typedef struct interface_ops { int (*get_info)(struct tpm_chip_data *chip_data, uint8_t locality); int (*send)(struct tpm_chip_data *chip_data, const tpm_cmd *buf); int (*receive)(struct tpm_chip_data *chip_data, tpm_cmd *buf); int (*request_access)(struct tpm_chip_data *chip_data, uint8_t locality); int (*release_locality)(struct tpm_chip_data *chip_data, uint8_t locality); } interface_ops_t; struct interface_ops *tpm_interface_getops(struct tpm_chip_data *chip_data, uint8_t locality); int tpm2_fifo_write_byte(uint16_t tpm_reg, uint8_t val); int tpm2_fifo_read_byte(uint16_t tpm_reg, uint8_t *val); int tpm2_fifo_read_chunk(uint16_t tpm_reg, uint8_t len, void *val); #endif /* TPM2_INTERFACE_H */