lx2160: Enable support of EMC2305

Enable support for FAN controller EMC2305 for
LX2160A RDB board.

Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
[PK: enable EMC2305 for lx2160rdb]
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
diff --git a/board/freescale/lx2160a/lx2160a.c b/board/freescale/lx2160a/lx2160a.c
index a62222e..aa474d9 100644
--- a/board/freescale/lx2160a/lx2160a.c
+++ b/board/freescale/lx2160a/lx2160a.c
@@ -26,6 +26,10 @@
 #include "../common/vid.h"
 #include <fsl_immap.h>
 
+#ifdef CONFIG_EMC2305
+#include "../common/emc2305.h"
+#endif
+
 DECLARE_GLOBAL_DATA_PTR;
 
 static struct pl01x_serial_platdata serial0 = {
@@ -81,6 +85,13 @@
 	/* get required clock for UART IP */
 	uart_get_clock();
 
+#ifdef CONFIG_EMC2305
+	select_i2c_ch_pca9547(I2C_MUX_CH_EMC2305);
+	emc2305_init();
+	set_fan_speed(I2C_EMC2305_PWM);
+	select_i2c_ch_pca9547(I2C_MUX_CH_DEFAULT);
+#endif
+
 	fsl_lsch3_early_init_f();
 	return 0;
 }
diff --git a/configs/lx2160ardb_tfa_defconfig b/configs/lx2160ardb_tfa_defconfig
index 9b63175..80dd2c1 100644
--- a/configs/lx2160ardb_tfa_defconfig
+++ b/configs/lx2160ardb_tfa_defconfig
@@ -2,6 +2,7 @@
 CONFIG_TARGET_LX2160ARDB=y
 CONFIG_SYS_TEXT_BASE=0x82000000
 CONFIG_SYS_MALLOC_F_LEN=0x6000
+CONFIG_EMC2305=y
 CONFIG_TFABOOT=y
 CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT=y
 CONFIG_SEC_FIRMWARE_ARMV8_PSCI=y
diff --git a/include/configs/lx2160ardb.h b/include/configs/lx2160ardb.h
index 67d214d..818aa38 100644
--- a/include/configs/lx2160ardb.h
+++ b/include/configs/lx2160ardb.h
@@ -70,6 +70,12 @@
 
 #endif
 
+/* EMC2305 */
+#define I2C_MUX_CH_EMC2305		0x09
+#define I2C_EMC2305_ADDR		0x4D
+#define I2C_EMC2305_CMD		0x40
+#define I2C_EMC2305_PWM		0x80
+
 /* EEPROM */
 #define CONFIG_ID_EEPROM
 #define CONFIG_SYS_I2C_EEPROM_NXID