blob: 6bfbf6ced58c86b12c0a832e603ef514176a354a [file] [log] [blame]
/*
* 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 */