|
@@ -77,6 +77,100 @@ static int soft_i2c_board_init(void) { return 0; }
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
|
+void i2c_init_board(void)
|
|
|
+{
|
|
|
+#ifdef CONFIG_I2C0_ENABLE
|
|
|
+#if defined(CONFIG_MACH_SUN4I) || \
|
|
|
+ defined(CONFIG_MACH_SUN5I) || \
|
|
|
+ defined(CONFIG_MACH_SUN7I) || \
|
|
|
+ defined(CONFIG_MACH_SUN8I_R40)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(0), SUN4I_GPB_TWI0);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(1), SUN4I_GPB_TWI0);
|
|
|
+ clock_twi_onoff(0, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN6I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(14), SUN6I_GPH_TWI0);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(15), SUN6I_GPH_TWI0);
|
|
|
+ clock_twi_onoff(0, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN8I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(2), SUN8I_GPH_TWI0);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(3), SUN8I_GPH_TWI0);
|
|
|
+ clock_twi_onoff(0, 1);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_I2C1_ENABLE
|
|
|
+#if defined(CONFIG_MACH_SUN4I) || \
|
|
|
+ defined(CONFIG_MACH_SUN7I) || \
|
|
|
+ defined(CONFIG_MACH_SUN8I_R40)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(18), SUN4I_GPB_TWI1);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(19), SUN4I_GPB_TWI1);
|
|
|
+ clock_twi_onoff(1, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN5I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(15), SUN5I_GPB_TWI1);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(16), SUN5I_GPB_TWI1);
|
|
|
+ clock_twi_onoff(1, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN6I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(16), SUN6I_GPH_TWI1);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(17), SUN6I_GPH_TWI1);
|
|
|
+ clock_twi_onoff(1, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN8I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(4), SUN8I_GPH_TWI1);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(5), SUN8I_GPH_TWI1);
|
|
|
+ clock_twi_onoff(1, 1);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_I2C2_ENABLE
|
|
|
+#if defined(CONFIG_MACH_SUN4I) || \
|
|
|
+ defined(CONFIG_MACH_SUN7I) || \
|
|
|
+ defined(CONFIG_MACH_SUN8I_R40)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(20), SUN4I_GPB_TWI2);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(21), SUN4I_GPB_TWI2);
|
|
|
+ clock_twi_onoff(2, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN5I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(17), SUN5I_GPB_TWI2);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPB(18), SUN5I_GPB_TWI2);
|
|
|
+ clock_twi_onoff(2, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN6I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(18), SUN6I_GPH_TWI2);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPH(19), SUN6I_GPH_TWI2);
|
|
|
+ clock_twi_onoff(2, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN8I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPE(12), SUN8I_GPE_TWI2);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPE(13), SUN8I_GPE_TWI2);
|
|
|
+ clock_twi_onoff(2, 1);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_I2C3_ENABLE
|
|
|
+#if defined(CONFIG_MACH_SUN6I)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPG(10), SUN6I_GPG_TWI3);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPG(11), SUN6I_GPG_TWI3);
|
|
|
+ clock_twi_onoff(3, 1);
|
|
|
+#elif defined(CONFIG_MACH_SUN7I) || \
|
|
|
+ defined(CONFIG_MACH_SUN8I_R40)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPI(0), SUN7I_GPI_TWI3);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPI(1), SUN7I_GPI_TWI3);
|
|
|
+ clock_twi_onoff(3, 1);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_I2C4_ENABLE
|
|
|
+#if defined(CONFIG_MACH_SUN7I) || \
|
|
|
+ defined(CONFIG_MACH_SUN8I_R40)
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPI(2), SUN7I_GPI_TWI4);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPI(3), SUN7I_GPI_TWI4);
|
|
|
+ clock_twi_onoff(4, 1);
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_R_I2C_ENABLE
|
|
|
+ clock_twi_onoff(5, 1);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI);
|
|
|
+ sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI);
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
/* add board specific code here */
|
|
|
int board_init(void)
|
|
|
{
|
|
@@ -406,100 +500,6 @@ int board_mmc_init(bd_t *bis)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-void i2c_init_board(void)
|
|
|
-{
|
|
|
-#ifdef CONFIG_I2C0_ENABLE
|
|
|
-#if defined(CONFIG_MACH_SUN4I) || \
|
|
|
- defined(CONFIG_MACH_SUN5I) || \
|
|
|
- defined(CONFIG_MACH_SUN7I) || \
|
|
|
- defined(CONFIG_MACH_SUN8I_R40)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(0), SUN4I_GPB_TWI0);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(1), SUN4I_GPB_TWI0);
|
|
|
- clock_twi_onoff(0, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN6I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(14), SUN6I_GPH_TWI0);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(15), SUN6I_GPH_TWI0);
|
|
|
- clock_twi_onoff(0, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN8I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(2), SUN8I_GPH_TWI0);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(3), SUN8I_GPH_TWI0);
|
|
|
- clock_twi_onoff(0, 1);
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-
|
|
|
-#ifdef CONFIG_I2C1_ENABLE
|
|
|
-#if defined(CONFIG_MACH_SUN4I) || \
|
|
|
- defined(CONFIG_MACH_SUN7I) || \
|
|
|
- defined(CONFIG_MACH_SUN8I_R40)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(18), SUN4I_GPB_TWI1);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(19), SUN4I_GPB_TWI1);
|
|
|
- clock_twi_onoff(1, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN5I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(15), SUN5I_GPB_TWI1);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(16), SUN5I_GPB_TWI1);
|
|
|
- clock_twi_onoff(1, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN6I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(16), SUN6I_GPH_TWI1);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(17), SUN6I_GPH_TWI1);
|
|
|
- clock_twi_onoff(1, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN8I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(4), SUN8I_GPH_TWI1);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(5), SUN8I_GPH_TWI1);
|
|
|
- clock_twi_onoff(1, 1);
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-
|
|
|
-#ifdef CONFIG_I2C2_ENABLE
|
|
|
-#if defined(CONFIG_MACH_SUN4I) || \
|
|
|
- defined(CONFIG_MACH_SUN7I) || \
|
|
|
- defined(CONFIG_MACH_SUN8I_R40)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(20), SUN4I_GPB_TWI2);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(21), SUN4I_GPB_TWI2);
|
|
|
- clock_twi_onoff(2, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN5I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(17), SUN5I_GPB_TWI2);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPB(18), SUN5I_GPB_TWI2);
|
|
|
- clock_twi_onoff(2, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN6I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(18), SUN6I_GPH_TWI2);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPH(19), SUN6I_GPH_TWI2);
|
|
|
- clock_twi_onoff(2, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN8I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPE(12), SUN8I_GPE_TWI2);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPE(13), SUN8I_GPE_TWI2);
|
|
|
- clock_twi_onoff(2, 1);
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-
|
|
|
-#ifdef CONFIG_I2C3_ENABLE
|
|
|
-#if defined(CONFIG_MACH_SUN6I)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPG(10), SUN6I_GPG_TWI3);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPG(11), SUN6I_GPG_TWI3);
|
|
|
- clock_twi_onoff(3, 1);
|
|
|
-#elif defined(CONFIG_MACH_SUN7I) || \
|
|
|
- defined(CONFIG_MACH_SUN8I_R40)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPI(0), SUN7I_GPI_TWI3);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPI(1), SUN7I_GPI_TWI3);
|
|
|
- clock_twi_onoff(3, 1);
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-
|
|
|
-#ifdef CONFIG_I2C4_ENABLE
|
|
|
-#if defined(CONFIG_MACH_SUN7I) || \
|
|
|
- defined(CONFIG_MACH_SUN8I_R40)
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPI(2), SUN7I_GPI_TWI4);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPI(3), SUN7I_GPI_TWI4);
|
|
|
- clock_twi_onoff(4, 1);
|
|
|
-#endif
|
|
|
-#endif
|
|
|
-
|
|
|
-#ifdef CONFIG_R_I2C_ENABLE
|
|
|
- clock_twi_onoff(5, 1);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI);
|
|
|
- sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI);
|
|
|
-#endif
|
|
|
-}
|
|
|
-
|
|
|
#ifdef CONFIG_SPL_BUILD
|
|
|
void sunxi_board_init(void)
|
|
|
{
|