xref: /aosp_15_r20/external/coreboot/src/drivers/tpm/cr50.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: BSD-3-Clause */
2 
3 #ifndef __DRIVERS_TPM_CR50_H__
4 #define __DRIVERS_TPM_CR50_H__
5 
6 #include <types.h>
7 
8 /* Structure describing the elements of GSC firmware version. */
9 struct cr50_firmware_version {
10 	int epoch;
11 	int major;
12 	int minor;
13 };
14 
15 /* Indicates whether Cr50 ready pulses are guaranteed to be at least 100us. */
16 bool cr50_is_long_interrupt_pulse_enabled(void);
17 
18 /* Get the GSC firmware version information. */
19 enum cb_err cr50_get_firmware_version(struct cr50_firmware_version *version);
20 
21 /* Set the BOARD_CFG register depending on Cr50 Kconfigs */
22 enum cb_err cr50_set_board_cfg(void);
23 
24 /* Wait for IRQ to indicate the TPM is ready */
25 enum cb_err cr50_wait_tpm_ready(void);
26 
27 /* Check TPM IRQ and clear it, returns 1 when IRQ pending or 0 when not */
28 int cr50_plat_irq_status(void);
29 
30 #endif /* __DRIVERS_TPM_CR50_H__ */
31