Move i2c_setup calls to board_init

i2c_setup calls force_idle_bus which calls
get_timer if SDA and SCL are not high. On the Pico
baseboard there are level shifters that pull SDA
and SCL high, but the test harness does not have
pull-ups on these lines. Because
board_early_init_f is called before timer_init the
call to get_timer was causing a divide-by-zero
error due to CNTFRQ not being initialized. Moving
the i2c_setup calls to board_init fixes this
issue. power_init_board (which uses I2C to
configure the PMIC) is called after board_init, so
this should be safe.

Bug:
Test: PMIC registers are read correctly on both
      boards (DEV_ID=0x30 REV_ID=0x11)
Test: iMX7D SOM boots on Pico baseboard
Test: iMX7D SOM boots on test harness
Change-Id: Iecdd28f3177fe915a3b614565d8dfa6e20e6a842
(cherry picked from commit e2fa0f7509ac3742cad505c1635d8274e49ffe7c)
diff --git a/board/freescale/pico-imx7d/pico-imx7d.c b/board/freescale/pico-imx7d/pico-imx7d.c
index 803b9da..69e9e05 100755
--- a/board/freescale/pico-imx7d/pico-imx7d.c
+++ b/board/freescale/pico-imx7d/pico-imx7d.c
@@ -532,13 +532,6 @@
 int board_early_init_f(void)
 {
 	setup_iomux_uart();
-
-#ifdef CONFIG_SYS_I2C_MXC
-	setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
-	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2);
-	setup_i2c(3, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info4);
-#endif
-
 	return 0;
 }
 
@@ -554,6 +547,12 @@
 	setup_fec();
 #endif
 
+#ifdef CONFIG_SYS_I2C_MXC
+	setup_i2c(0, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info1);
+	setup_i2c(1, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2);
+	setup_i2c(3, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info4);
+#endif
+
 	//pico-imx7 custom initialize
 	imx_iomux_v3_setup_multiple_pads(bcm4339_pads, ARRAY_SIZE(bcm4339_pads));
 	imx_iomux_v3_setup_multiple_pads(ccm_clko_pads, ARRAY_SIZE(ccm_clko_pads));