sun50i: A64: add support for R_I2C controller
authorVasily Khoruzhick <anarsoul@gmail.com>
Tue, 6 Nov 2018 04:24:30 +0000 (20:24 -0800)
committerJagan Teki <jagan@amarulasolutions.com>
Tue, 13 Nov 2018 16:39:10 +0000 (22:09 +0530)
Allwinner A64 has a I2C controller, which is in the R_ MMIO zone and has
two groups of pinmuxes on PL bank, so it's called R_I2C.

Add support for this I2C controller and the pinmux which doesn't conflict
with RSB.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Tested-by: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Vagrant Cascadian <vagrant@debian.org>
Acked-by: Jagan Teki <jagan@openedev.com>
arch/arm/include/asm/arch-sunxi/gpio.h
arch/arm/mach-sunxi/Kconfig
board/sunxi/board.c

index 6a5eafc3d31f643fed539cb501c07943aa411f49..2daf23f6f5dac0bc5e2044846aaebab45393e31d 100644 (file)
@@ -211,6 +211,7 @@ enum sunxi_gpio_number {
 #define SUN8I_H3_GPL_R_TWI     2
 #define SUN8I_A23_GPL_R_TWI    3
 #define SUN8I_GPL_R_UART       2
+#define SUN50I_GPL_R_TWI       2
 
 #define SUN9I_GPN_R_RSB                3
 
index 6277abc3ccbecc78695fec1059412211d5c356f9..560dc9b25d18e37e268aefde90aaf48e71f901e0 100644 (file)
@@ -278,6 +278,7 @@ config MACH_SUN50I
        select ARM64
        select DM_I2C
        select PHY_SUN4I_USB
+       select SUN6I_PRCM
        select SUNXI_DE2
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
index b196d48674c4078b9db5c3d94e7507f653fd6eb9..64ccbc7245f5746079d1b1c458d720c1d10e132f 100644 (file)
@@ -168,10 +168,16 @@ void i2c_init_board(void)
 #endif
 
 #ifdef CONFIG_R_I2C_ENABLE
+#ifdef CONFIG_MACH_SUN50I
+       clock_twi_onoff(5, 1);
+       sunxi_gpio_set_cfgpin(SUNXI_GPL(8), SUN50I_GPL_R_TWI);
+       sunxi_gpio_set_cfgpin(SUNXI_GPL(9), SUN50I_GPL_R_TWI);
+#else
        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
+#endif
 }
 
 #if defined(CONFIG_ENV_IS_IN_MMC) && defined(CONFIG_ENV_IS_IN_FAT)