Spacecast: Add TPM to the i2c bus

Change-Id: Id35e7d38deeaa7c52b48efe532b04175b25e6618
diff --git a/arch/arm/boards/optimus/optimus.c b/arch/arm/boards/optimus/optimus.c
index add205e..f8f119c 100644
--- a/arch/arm/boards/optimus/optimus.c
+++ b/arch/arm/boards/optimus/optimus.c
@@ -59,6 +59,8 @@
 #define SPACECAST_BOARD_ID		2
 #define SPACECAST_EMAC1_PHY_ADDR	1
 
+#define SPACECAST_TPM_I2C_ADDR		0x20
+
 #ifdef CONFIG_SPI
 //Legacy spi
 
@@ -190,11 +192,17 @@
 	.platform_data = &pdata,
 };
 
-static struct i2c_board_info i2c_devices[] = {
+static struct i2c_board_info i2c_devices_optimus[] = {
 	{
 		I2C_BOARD_INFO("eeprom", CFG_I2C_EEPROM0_ADDR),
 	},
 };
+
+static struct i2c_board_info i2c_devices_spacecast[] = {
+	{
+		I2C_BOARD_INFO("tpm_i2c_infineon", SPACECAST_TPM_I2C_ADDR),
+	},
+};
 #endif
 
 #ifdef CONFIG_OTP
@@ -262,7 +270,13 @@
 	register_device(&fast_uart_device);
 
 #ifdef CONFIG_I2C_C2K
-	i2c_register_board_info(0, i2c_devices, ARRAY_SIZE(i2c_devices));
+	if (get_board_id() == SPACECAST_BOARD_ID) {
+		i2c_register_board_info(0, i2c_devices_spacecast,
+					ARRAY_SIZE(i2c_devices_spacecast));
+	} else {
+		i2c_register_board_info(0, i2c_devices_optimus,
+					ARRAY_SIZE(i2c_devices_optimus));
+	}
 	register_device(&c2k_i2c_dev);
 #endif
 
@@ -448,4 +462,3 @@
 }
 
 device_initcall(c2000_device_init);
-