diff --git a/board/freescale/common/emc2305.c b/board/freescale/common/emc2305.c
index b1ca051..050b679 100644
--- a/board/freescale/common/emc2305.c
+++ b/board/freescale/common/emc2305.c
@@ -1,8 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright 2018 NXP.
+ * Copyright 2018-2020 NXP.
  *
- * SPDX-License-Identifier:     GPL-2.0+
  */
 
 #include <common.h>
@@ -14,7 +13,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-void set_fan_speed(u8 data)
+void set_fan_speed(u8 data, int chip_addr)
 {
 	u8 index;
 	u8 Fan[NUM_OF_FANS] = {I2C_EMC2305_FAN1,
@@ -25,14 +24,14 @@
 
 	for (index = 0; index < NUM_OF_FANS; index++) {
 #ifndef CONFIG_DM_I2C
-		if (i2c_write(I2C_EMC2305_ADDR, Fan[index], 1, &data, 1) != 0) {
+		if (i2c_write(chip_addr, Fan[index], 1, &data, 1) != 0) {
 			printf("Error: failed to change fan speed @%x\n",
 			       Fan[index]);
 		}
 #else
 		struct udevice *dev;
 
-		if (i2c_get_chip_for_busnum(0, I2C_EMC2305_ADDR, 1, &dev))
+		if (i2c_get_chip_for_busnum(0, chip_addr, 1, &dev))
 			continue;
 
 		if (dm_i2c_write(dev, Fan[index], &data, 1) != 0) {
@@ -43,18 +42,18 @@
 	}
 }
 
-void emc2305_init(void)
+void emc2305_init(int chip_addr)
 {
 	u8 data;
 
 	data = I2C_EMC2305_CMD;
 #ifndef CONFIG_DM_I2C
-	if (i2c_write(I2C_EMC2305_ADDR, I2C_EMC2305_CONF, 1, &data, 1) != 0)
+	if (i2c_write(chip_addr, I2C_EMC2305_CONF, 1, &data, 1) != 0)
 		printf("Error: failed to configure EMC2305\n");
 #else
 	struct udevice *dev;
 
-	if (!i2c_get_chip_for_busnum(0, I2C_EMC2305_ADDR, 1, &dev))
+	if (!i2c_get_chip_for_busnum(0, chip_addr, 1, &dev))
 		if (dm_i2c_write(dev, I2C_EMC2305_CONF, &data, 1))
 			printf("Error: failed to configure EMC2305\n");
 #endif
diff --git a/board/freescale/common/emc2305.h b/board/freescale/common/emc2305.h
index eddf537..24c5410 100644
--- a/board/freescale/common/emc2305.h
+++ b/board/freescale/common/emc2305.h
@@ -1,8 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 /*
- * Copyright 2018 NXP
+ * Copyright 2018-2020 NXP
  *
- * SPDX-License-Identifier:     GPL-2.0+
  */
 
 #ifndef __EMC2305_H_
@@ -17,7 +16,7 @@
 
 #define NUM_OF_FANS			5
 
-void emc2305_init(void);
-void set_fan_speed(u8 data);
+void emc2305_init(int chip_addr);
+void set_fan_speed(u8 data, int chip_addr);
 
 #endif  /* __EMC2305_H_ */
diff --git a/board/freescale/lx2160a/lx2160a.c b/board/freescale/lx2160a/lx2160a.c
index ace2a19..0ff987e 100644
--- a/board/freescale/lx2160a/lx2160a.c
+++ b/board/freescale/lx2160a/lx2160a.c
@@ -114,8 +114,8 @@
 
 #ifdef CONFIG_EMC2305
 	select_i2c_ch_pca9547(I2C_MUX_CH_EMC2305);
-	emc2305_init();
-	set_fan_speed(I2C_EMC2305_PWM);
+	emc2305_init(I2C_EMC2305_ADDR);
+	set_fan_speed(I2C_EMC2305_PWM, I2C_EMC2305_ADDR);
 	select_i2c_ch_pca9547(I2C_MUX_CH_DEFAULT);
 #endif
 
