[U-Boot] [linux-sunxi] Re: [PATCH 01/12] sunxi: Add initial support for R40
Icenowy Zheng
icenowy at aosc.xyz
Wed Mar 1 15:22:18 UTC 2017
01.03.2017, 22:57, "Maxime Ripard" <maxime.ripard at free-electrons.com>:
> 1;4601;0c
> On Wed, Mar 01, 2017 at 08:10:55PM +0800, Chen-Yu Tsai wrote:
>> On Wed, Mar 1, 2017 at 6:55 PM, Maxime Ripard
>> <maxime.ripard at free-electrons.com> wrote:
>> > Hi Chen-Yu
>> >
>> > On Wed, Mar 01, 2017 at 03:04:36PM +0800, Chen-Yu Tsai wrote:
>> >> The R40 is the successor to the A20. It is a hybrid of the A20, A33
>> >> and the H3.
>> >>
>> >> The R40's PIO controller is compatible with the A20,
>> >> Reuse the A20 UART and I2C muxing code by adding the R40's macro.
>> >>
>> >> The display pipeline is the newer DE 2.0 variant.
>> >> Block enabling video on R40 for now.
>> >>
>> >> Signed-off-by: Chen-Yu Tsai <wens at csie.org>
>> >> ---
>> >> arch/arm/mach-sunxi/board.c | 10 +++++++---
>> >> arch/arm/mach-sunxi/cpu_info.c | 2 ++
>> >> board/sunxi/Kconfig | 9 +++++++--
>> >> board/sunxi/board.c | 19 ++++++++++++++-----
>> >> 4 files changed, 30 insertions(+), 10 deletions(-)
>> >>
>> >> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
>> >> index 5e03d039433a..5a74c9717d84 100644
>> >> --- a/arch/arm/mach-sunxi/board.c
>> >> +++ b/arch/arm/mach-sunxi/board.c
>> >> @@ -69,12 +69,14 @@ struct mm_region *mem_map = sunxi_mem_map;
>> >> static int gpio_init(void)
>> >> {
>> >> #if CONFIG_CONS_INDEX == 1 && defined(CONFIG_UART0_PORT_F)
>> >> -#if defined(CONFIG_MACH_SUN4I) || defined(CONFIG_MACH_SUN7I)
>> >> +#if defined(CONFIG_MACH_SUN4I) || \
>> >> + defined(CONFIG_MACH_SUN7I) || \
>> >> + defined(CONFIG_MACH_SUN8I_R40)
>> >> /* disable GPB22,23 as uart0 tx,rx to avoid conflict */
>> >> sunxi_gpio_set_cfgpin(SUNXI_GPB(22), SUNXI_GPIO_INPUT);
>> >> sunxi_gpio_set_cfgpin(SUNXI_GPB(23), SUNXI_GPIO_INPUT);
>> >> #endif
>> >> -#if defined(CONFIG_MACH_SUN8I)
>> >> +#if defined(CONFIG_MACH_SUN8I) && !defined(CONFIG_MACH_SUN8I_R40)
>> >> sunxi_gpio_set_cfgpin(SUNXI_GPF(2), SUN8I_GPF_UART0);
>> >> sunxi_gpio_set_cfgpin(SUNXI_GPF(4), SUN8I_GPF_UART0);
>> >> #else
>> >> @@ -82,7 +84,9 @@ static int gpio_init(void)
>> >> sunxi_gpio_set_cfgpin(SUNXI_GPF(4), SUNXI_GPF_UART0);
>> >> #endif
>> >> sunxi_gpio_set_pull(SUNXI_GPF(4), 1);
>> >> -#elif CONFIG_CONS_INDEX == 1 && (defined(CONFIG_MACH_SUN4I) || defined(CONFIG_MACH_SUN7I))
>> >> +#elif CONFIG_CONS_INDEX == 1 && (defined(CONFIG_MACH_SUN4I) || \
>> >> + defined(CONFIG_MACH_SUN7I) || \
>> >> + defined(CONFIG_MACH_SUN8I_R40))
>> >> sunxi_gpio_set_cfgpin(SUNXI_GPB(22), SUN4I_GPB_UART0);
>> >> sunxi_gpio_set_cfgpin(SUNXI_GPB(23), SUN4I_GPB_UART0);
>> >> sunxi_gpio_set_pull(SUNXI_GPB(23), SUNXI_GPIO_PULL_UP);
>> >> diff --git a/arch/arm/mach-sunxi/cpu_info.c b/arch/arm/mach-sunxi/cpu_info.c
>> >> index 85633ccec216..7851de299ab5 100644
>> >> --- a/arch/arm/mach-sunxi/cpu_info.c
>> >> +++ b/arch/arm/mach-sunxi/cpu_info.c
>> >> @@ -87,6 +87,8 @@ int print_cpuinfo(void)
>> >> printf("CPU: Allwinner A83T (SUN8I %04x)\n", sunxi_get_sram_id());
>> >> #elif defined CONFIG_MACH_SUN8I_H3
>> >> printf("CPU: Allwinner H3 (SUN8I %04x)\n", sunxi_get_sram_id());
>> >> +#elif defined CONFIG_MACH_SUN8I_R40
>> >> + printf("CPU: Allwinner R40 (SUN8I %04x)\n", sunxi_get_sram_id());
>> >> #elif defined CONFIG_MACH_SUN9I
>> >> puts("CPU: Allwinner A80 (SUN9I)\n");
>> >> #elif defined CONFIG_MACH_SUN50I
>> >> diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
>> >> index 3e0e2624737e..8e8b9cd0d5fd 100644
>> >> --- a/board/sunxi/Kconfig
>> >> +++ b/board/sunxi/Kconfig
>> >> @@ -132,6 +132,11 @@ config MACH_SUN8I_H3
>> >> select MACH_SUNXI_H3_H5
>> >> select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
>> >>
>> >> +config MACH_SUN8I_R40
>> >> + bool "sun8i (Allwinner R40)"
>> >> + select CPU_V7
>> >> + select SUNXI_GEN_SUN6I
>> >> +
>> >> config MACH_SUN9I
>> >> bool "sun9i (Allwinner A80)"
>> >> select CPU_V7
>> >> @@ -157,7 +162,7 @@ endchoice
>> >> # The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
>> >> config MACH_SUN8I
>> >> bool
>> >> - default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUNXI_H3_H5 || MACH_SUN8I_A83T
>> >> + default y if MACH_SUN8I_A23 || MACH_SUN8I_A33 || MACH_SUNXI_H3_H5 || MACH_SUN8I_A83T || MACH_SUN8I_R40
>> >
>> > You should really wrap that line too (and CONFIG_VIDEO below).
>>
>> Kconfig doesn't seem to like line wrapping. I can split both into
>> 1 symbol per line though. Would that be taking it to far?
Kconfig can accept line wrapping. But you need \.
>
> Something like:
>
> default y if MACH_SUN8I_A23
> default y if MACH_SUN8I_A33
>
> ?
>
> I didn't know it was possible.. But if it works, yes, please that will
> even be easier to review / extend.
>
> Thanks!
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
>
> --
> You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
More information about the U-Boot
mailing list