]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
sunxi: fix i2c support for sunxi H3/H5
authorNuno Goncalves <nunojpg@gmail.com>
Fri, 19 Jan 2018 18:35:59 +0000 (19:35 +0100)
committerMichael Tremer <michael.tremer@lightningwirelabs.com>
Tue, 27 Feb 2018 13:41:31 +0000 (13:41 +0000)
Tested to work in a Orange Pi Zero (H2+/H3), and checked against H5 datasheet.

Signed-off-by: Nuno Goncalves <nunojpg@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
arch/arm/include/asm/arch-sunxi/gpio.h
board/sunxi/board.c

index 24f85206c8254b4756841e1ac2be9441b1e05311..52884886d738350132a291268fa2e5580fcc0782 100644 (file)
@@ -149,6 +149,8 @@ enum sunxi_gpio_number {
 #define SUN6I_GPA_SDC2         5
 #define SUN6I_GPA_SDC3         4
 #define SUN8I_H3_GPA_UART0     2
+#define SUN8I_H3_H5_GPA_TWI0   2
+#define SUN8I_H3_H5_GPA_TWI1   3
 
 #define SUN4I_GPB_PWM          2
 #define SUN4I_GPB_TWI0         2
index 8891961dcc6bc89f8efbb5140bcc7498c9d815c6..aa3bbf965eea555a38c53a161ecd4d0ea72bedd4 100644 (file)
@@ -93,6 +93,10 @@ void i2c_init_board(void)
        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_SUNXI_H3_H5)
+       sunxi_gpio_set_cfgpin(SUNXI_GPA(11), SUN8I_H3_H5_GPA_TWI0);
+       sunxi_gpio_set_cfgpin(SUNXI_GPA(12), SUN8I_H3_H5_GPA_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);
@@ -115,6 +119,10 @@ void i2c_init_board(void)
        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_SUNXI_H3_H5)
+       sunxi_gpio_set_cfgpin(SUNXI_GPA(18), SUN8I_H3_H5_GPA_TWI1);
+       sunxi_gpio_set_cfgpin(SUNXI_GPA(19), SUN8I_H3_H5_GPA_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);
@@ -137,7 +145,7 @@ void i2c_init_board(void)
        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)
+#elif defined(CONFIG_MACH_SUN8I) /* same for CONFIG_MACH_SUNXI_H3_H5 */
        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);