[U-Boot] [PATCH v2 4/5] sun50i: A64: add support for R_I2C controller

André Przywara
2018-10-18T00:22:29Z

On 10/17/18 6:09 AM, Vasily Khoruzhick wrote:
> 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>

Reviewed-by: Andre Przywara <andre.przywara@arm.com>

Thanks!
Andre.

> ---
> arch/arm/include/asm/arch-sunxi/gpio.h | 1 +
> arch/arm/mach-sunxi/Kconfig | 1 +
> board/sunxi/board.c | 6 ++++++
> 3 files changed, 8 insertions(+)
>
> diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h
> index 6a5eafc3d3..2daf23f6f5 100644
> --- a/arch/arm/include/asm/arch-sunxi/gpio.h
> +++ b/arch/arm/include/asm/arch-sunxi/gpio.h
> @@ -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
>
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index 686f38fec4..7ba429c744 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -272,6 +272,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
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index d1d7f9f400..90f8bc0a6e 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -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)
>