Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * STMicroelectronics TPM Linux driver for TPM ST33ZP24
0004  * Copyright (C) 2009 - 2016  STMicroelectronics
0005  */
0006 
0007 #ifndef __LOCAL_ST33ZP24_H__
0008 #define __LOCAL_ST33ZP24_H__
0009 
0010 #define TPM_WRITE_DIRECTION 0x80
0011 #define ST33ZP24_BUFSIZE    2048
0012 
0013 struct st33zp24_dev {
0014     struct tpm_chip *chip;
0015     void *phy_id;
0016     const struct st33zp24_phy_ops *ops;
0017     int locality;
0018     int irq;
0019     u32 intrs;
0020     int io_lpcpd;
0021     wait_queue_head_t read_queue;
0022 };
0023 
0024 
0025 struct st33zp24_phy_ops {
0026     int (*send)(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size);
0027     int (*recv)(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size);
0028 };
0029 
0030 #ifdef CONFIG_PM_SLEEP
0031 int st33zp24_pm_suspend(struct device *dev);
0032 int st33zp24_pm_resume(struct device *dev);
0033 #endif
0034 
0035 int st33zp24_probe(void *phy_id, const struct st33zp24_phy_ops *ops,
0036            struct device *dev, int irq, int io_lpcpd);
0037 void st33zp24_remove(struct tpm_chip *chip);
0038 #endif /* __LOCAL_ST33ZP24_H__ */