diff --git a/README b/README
index ec1b50c..7374928 100644
--- a/README
+++ b/README
@@ -1052,17 +1052,6 @@
 		You should define these to the GPIO value as given directly to
 		the generic GPIO functions.
 
-		CONFIG_SYS_I2C_INIT_BOARD
-
-		When a board is reset during an i2c bus transfer
-		chips might think that the current transfer is still
-		in progress. On some boards it is possible to access
-		the i2c SCLK line directly, either by using the
-		processor pin as a GPIO or by having a second pin
-		connected to the bus. If this option is defined a
-		custom i2c_init_board() routine in boards/xxx/board.c
-		is run early in the boot sequence.
-
 		CONFIG_I2C_MULTI_BUS
 
 		This option allows the use of multiple I2C buses, each of which
diff --git a/board/keymile/Kconfig b/board/keymile/Kconfig
index 9f78443..b8f0578 100644
--- a/board/keymile/Kconfig
+++ b/board/keymile/Kconfig
@@ -11,6 +11,9 @@
 
 menu "KM Board Setup"
 
+config SYS_I2C_INIT_BOARD
+	def_bool y if ARM
+
 config HUSH_INIT_VAR
 	def_bool y
 
diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c
index 49d4024..943b498 100644
--- a/board/samsung/common/board.c
+++ b/board/samsung/common/board.c
@@ -176,10 +176,6 @@
 		return err;
 	}
 
-#ifdef CONFIG_SYS_I2C_INIT_BOARD
-	board_i2c_init(gd->fdt_blob);
-#endif
-
 	return exynos_early_init_f();
 }
 #endif
diff --git a/board/samsung/goni/goni.c b/board/samsung/goni/goni.c
index ba25ba2..535f8e1 100644
--- a/board/samsung/goni/goni.c
+++ b/board/samsung/goni/goni.c
@@ -33,16 +33,6 @@
 	return 0;
 }
 
-#ifdef CONFIG_SYS_I2C_INIT_BOARD
-void i2c_init_board(void)
-{
-	gpio_request(S5PC110_GPIO_J43, "i2c_clk");
-	gpio_request(S5PC110_GPIO_J40, "i2c_data");
-	gpio_direction_output(S5PC110_GPIO_J43, 1);
-	gpio_direction_output(S5PC110_GPIO_J40, 1);
-}
-#endif
-
 int dram_init(void)
 {
 	gd->ram_size = PHYS_SDRAM_1_SIZE + PHYS_SDRAM_2_SIZE +
diff --git a/drivers/i2c/fsl_i2c.c b/drivers/i2c/fsl_i2c.c
index 9a3c824..edbcd83 100644
--- a/drivers/i2c/fsl_i2c.c
+++ b/drivers/i2c/fsl_i2c.c
@@ -271,13 +271,6 @@
 	const unsigned long long timeout = usec2ticks(CONFIG_I2C_MBB_TIMEOUT);
 	unsigned long long timeval;
 
-#ifdef CONFIG_SYS_I2C_INIT_BOARD
-	/* Call board specific i2c bus reset routine before accessing the
-	 * environment, which might be in a chip on that bus. For details
-	 * about this problem see doc/I2C_Edge_Conditions.
-	 */
-	i2c_init_board();
-#endif
 	writeb(0, &base->cr);		/* stop I2C controller */
 	udelay(5);			/* let it shutdown in peace */
 	set_i2c_bus_speed(base, i2c_clk, speed);
diff --git a/drivers/i2c/mv_i2c.c b/drivers/i2c/mv_i2c.c
index 0eff353..8ee17f0 100644
--- a/drivers/i2c/mv_i2c.c
+++ b/drivers/i2c/mv_i2c.c
@@ -374,27 +374,6 @@
 
 static struct mv_i2c *base_glob;
 
-static void i2c_board_init(struct mv_i2c *base)
-{
-#ifdef CONFIG_SYS_I2C_INIT_BOARD
-	u32 icr;
-	/*
-	 * call board specific i2c bus reset routine before accessing the
-	 * environment, which might be in a chip on that bus. For details
-	 * about this problem see doc/I2C_Edge_Conditions.
-	 *
-	 * disable I2C controller first, otherwhise it thinks we want to
-	 * talk to the slave port...
-	 */
-	icr = readl(&base->icr);
-	writel(readl(&base->icr) & ~(ICR_SCLE | ICR_IUE), &base->icr);
-
-	i2c_init_board();
-
-	writel(icr, &base->icr);
-#endif
-}
-
 #ifdef CONFIG_I2C_MULTI_BUS
 static unsigned long i2c_regs[CONFIG_MV_I2C_NUM] = CONFIG_MV_I2C_REG;
 static unsigned int bus_initialized[CONFIG_MV_I2C_NUM];
@@ -411,7 +390,6 @@
 	current_bus = bus;
 
 	if (!bus_initialized[current_bus]) {
-		i2c_board_init(base_glob);
 		bus_initialized[current_bus] = 1;
 	}
 
@@ -441,8 +419,6 @@
 	else
 		val = ICR_SM;
 	clrsetbits_le32(&base_glob->icr, ICR_MODE_MASK, val);
-
-	i2c_board_init(base_glob);
 }
 
 static int __i2c_probe_chip(struct mv_i2c *base, uchar chip)
diff --git a/include/configs/km/pg-wcom-ls102xa.h b/include/configs/km/pg-wcom-ls102xa.h
index 43471e0..9565cea 100644
--- a/include/configs/km/pg-wcom-ls102xa.h
+++ b/include/configs/km/pg-wcom-ls102xa.h
@@ -155,7 +155,6 @@
 /*
  * I2C
  */
-#define CONFIG_SYS_I2C_INIT_BOARD
 
 #define CONFIG_I2C_MULTI_BUS
 #define CONFIG_SYS_I2C_MAX_HOPS		1
