Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
tpm_infineon.c File Reference
#include <linux/init.h>
#include <linux/pnp.h>
#include "tpm.h"

Go to the source code of this file.

Data Structures

struct  tpm_inf_dev
 

Macros

#define TPM_MAX_WTX_PACKAGES   50
 
#define TPM_WTX_MSLEEP_TIME   20
 
#define TPM_MSLEEP_TIME   3
 
#define TPM_MAX_TRIES   5000
 
#define TPM_INFINEON_DEV_VEN_VALUE   0x15D1
 
#define TPM_INF_IO_PORT   0x0
 
#define TPM_INF_IO_MEM   0x1
 
#define TPM_INF_ADDR   0x0
 
#define TPM_INF_DATA   0x1
 

Enumerations

enum  infineon_tpm_header {
  TPM_VL_VER = 0x01, TPM_VL_CHANNEL_CONTROL = 0x07, TPM_VL_CHANNEL_PERSONALISATION = 0x0A, TPM_VL_CHANNEL_TPM = 0x0B,
  TPM_VL_CONTROL = 0x00, TPM_INF_NAK = 0x15, TPM_CTRL_WTX = 0x10, TPM_CTRL_WTX_ABORT = 0x18,
  TPM_CTRL_WTX_ABORT_ACK = 0x18, TPM_CTRL_ERROR = 0x20, TPM_CTRL_CHAININGACK = 0x40, TPM_CTRL_CHAINING = 0x80,
  TPM_CTRL_DATA = 0x04, TPM_CTRL_DATA_CHA = 0x84, TPM_CTRL_DATA_CHA_ACK = 0xC4
}
 
enum  infineon_tpm_register { WRFIFO = 0x00, RDFIFO = 0x01, STAT = 0x02, CMD = 0x03 }
 
enum  infineon_tpm_command_bits { CMD_DIS = 0x00, CMD_LP = 0x01, CMD_RES = 0x02, CMD_IRQC = 0x06 }
 
enum  infineon_tpm_status_bits {
  STAT_XFE = 0x00, STAT_LPA = 0x01, STAT_FOK = 0x02, STAT_TOK = 0x03,
  STAT_IRQA = 0x06, STAT_RDA = 0x07
}
 
enum  infineon_tpm_values {
  CHIP_ID1 = 0x20, CHIP_ID2 = 0x21, TPM_DAR = 0x30, RESET_LP_IRQC_DISABLE = 0x41,
  ENABLE_REGISTER_PAIR = 0x55, IOLIMH = 0x60, IOLIML = 0x61, DISABLE_REGISTER_PAIR = 0xAA,
  IDVENL = 0xF1, IDVENH = 0xF2, IDPDL = 0xF3, IDPDH = 0xF4
}
 

Functions

 MODULE_DEVICE_TABLE (pnp, tpm_inf_pnp_tbl)
 
 module_init (init_inf)
 
 module_exit (cleanup_inf)
 
 MODULE_AUTHOR ("Marcel Selhorst <[email protected]>")
 
 MODULE_DESCRIPTION ("Driver for Infineon TPM SLD 9630 TT 1.1 / SLB 9635 TT 1.2")
 
 MODULE_VERSION ("1.9.2")
 
 MODULE_LICENSE ("GPL")
 

Macro Definition Documentation

#define TPM_INF_ADDR   0x0

Definition at line 36 of file tpm_infineon.c.

#define TPM_INF_DATA   0x1

Definition at line 37 of file tpm_infineon.c.

#define TPM_INF_IO_MEM   0x1

Definition at line 34 of file tpm_infineon.c.

#define TPM_INF_IO_PORT   0x0

Definition at line 33 of file tpm_infineon.c.

#define TPM_INFINEON_DEV_VEN_VALUE   0x15D1

Definition at line 31 of file tpm_infineon.c.

#define TPM_MAX_TRIES   5000

Definition at line 30 of file tpm_infineon.c.

#define TPM_MAX_WTX_PACKAGES   50

Definition at line 24 of file tpm_infineon.c.

#define TPM_MSLEEP_TIME   3

Definition at line 28 of file tpm_infineon.c.

#define TPM_WTX_MSLEEP_TIME   20

Definition at line 26 of file tpm_infineon.c.

Enumeration Type Documentation

Enumerator:
CMD_DIS 
CMD_LP 
CMD_RES 
CMD_IRQC 

Definition at line 114 of file tpm_infineon.c.

Enumerator:
TPM_VL_VER 
TPM_VL_CHANNEL_CONTROL 
TPM_VL_CHANNEL_PERSONALISATION 
TPM_VL_CHANNEL_TPM 
TPM_VL_CONTROL 
TPM_INF_NAK 
TPM_CTRL_WTX 
TPM_CTRL_WTX_ABORT 
TPM_CTRL_WTX_ABORT_ACK 
TPM_CTRL_ERROR 
TPM_CTRL_CHAININGACK 
TPM_CTRL_CHAINING 
TPM_CTRL_DATA 
TPM_CTRL_DATA_CHA 
TPM_CTRL_DATA_CHA_ACK 

Definition at line 89 of file tpm_infineon.c.

Enumerator:
WRFIFO 
RDFIFO 
STAT 
CMD 

Definition at line 107 of file tpm_infineon.c.

Enumerator:
STAT_XFE 
STAT_LPA 
STAT_FOK 
STAT_TOK 
STAT_IRQA 
STAT_RDA 

Definition at line 121 of file tpm_infineon.c.

Enumerator:
CHIP_ID1 
CHIP_ID2 
TPM_DAR 
RESET_LP_IRQC_DISABLE 
ENABLE_REGISTER_PAIR 
IOLIMH 
IOLIML 
DISABLE_REGISTER_PAIR 
IDVENL 
IDVENH 
IDPDL 
IDPDH 

Definition at line 131 of file tpm_infineon.c.

Function Documentation

MODULE_AUTHOR ( "Marcel Selhorst <[email protected]>"  )
MODULE_DESCRIPTION ( "Driver for Infineon TPM SLD 9630 TT 1.1 / SLB 9635 TT 1.2"  )
MODULE_DEVICE_TABLE ( pnp  ,
tpm_inf_pnp_tbl   
)
module_exit ( cleanup_inf  )
module_init ( init_inf  )
MODULE_LICENSE ( "GPL"  )
MODULE_VERSION ( "1.9.2"  )