mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-30 16:40:44 +09:00
sun9i: Basic sun9i (A80) support
Add initial sun9i (A80) support, only uart + mmc are supported for now. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
This commit is contained in:
parent
77fe98870b
commit
1871a8ca62
@ -13,7 +13,9 @@ obj-y += clock.o
|
|||||||
obj-y += cpu_info.o
|
obj-y += cpu_info.o
|
||||||
obj-y += dram_helpers.o
|
obj-y += dram_helpers.o
|
||||||
obj-y += pinmux.o
|
obj-y += pinmux.o
|
||||||
|
ifndef CONFIG_MACH_SUN9I
|
||||||
obj-y += usb_phy.o
|
obj-y += usb_phy.o
|
||||||
|
endif
|
||||||
obj-$(CONFIG_MACH_SUN6I) += prcm.o
|
obj-$(CONFIG_MACH_SUN6I) += prcm.o
|
||||||
obj-$(CONFIG_MACH_SUN8I) += prcm.o
|
obj-$(CONFIG_MACH_SUN8I) += prcm.o
|
||||||
obj-$(CONFIG_MACH_SUN9I) += prcm.o
|
obj-$(CONFIG_MACH_SUN9I) += prcm.o
|
||||||
|
@ -64,6 +64,10 @@ static int gpio_init(void)
|
|||||||
sunxi_gpio_set_cfgpin(SUNXI_GPH(20), SUN6I_GPH_UART0);
|
sunxi_gpio_set_cfgpin(SUNXI_GPH(20), SUN6I_GPH_UART0);
|
||||||
sunxi_gpio_set_cfgpin(SUNXI_GPH(21), SUN6I_GPH_UART0);
|
sunxi_gpio_set_cfgpin(SUNXI_GPH(21), SUN6I_GPH_UART0);
|
||||||
sunxi_gpio_set_pull(SUNXI_GPH(21), SUNXI_GPIO_PULL_UP);
|
sunxi_gpio_set_pull(SUNXI_GPH(21), SUNXI_GPIO_PULL_UP);
|
||||||
|
#elif CONFIG_CONS_INDEX == 1 && defined(CONFIG_MACH_SUN9I)
|
||||||
|
sunxi_gpio_set_cfgpin(SUNXI_GPH(12), SUN9I_GPH_UART0);
|
||||||
|
sunxi_gpio_set_cfgpin(SUNXI_GPH(13), SUN9I_GPH_UART0);
|
||||||
|
sunxi_gpio_set_pull(SUNXI_GPH(13), SUNXI_GPIO_PULL_UP);
|
||||||
#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUN5I)
|
#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUN5I)
|
||||||
sunxi_gpio_set_cfgpin(SUNXI_GPG(3), SUN5I_GPG_UART1);
|
sunxi_gpio_set_cfgpin(SUNXI_GPG(3), SUN5I_GPG_UART1);
|
||||||
sunxi_gpio_set_cfgpin(SUNXI_GPG(4), SUN5I_GPG_UART1);
|
sunxi_gpio_set_cfgpin(SUNXI_GPG(4), SUN5I_GPG_UART1);
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <asm/arch/cpu.h>
|
#include <asm/arch/cpu.h>
|
||||||
#include <asm/arch/clock.h>
|
#include <asm/arch/clock.h>
|
||||||
#include <axp221.h>
|
#include <axp221.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#ifdef CONFIG_MACH_SUN6I
|
#ifdef CONFIG_MACH_SUN6I
|
||||||
int sunxi_get_ss_bonding_id(void)
|
int sunxi_get_ss_bonding_id(void)
|
||||||
@ -68,6 +69,8 @@ int print_cpuinfo(void)
|
|||||||
puts("CPU: Allwinner A23 (SUN8I)\n");
|
puts("CPU: Allwinner A23 (SUN8I)\n");
|
||||||
#elif defined CONFIG_MACH_SUN8I_A33
|
#elif defined CONFIG_MACH_SUN8I_A33
|
||||||
puts("CPU: Allwinner A33 (SUN8I)\n");
|
puts("CPU: Allwinner A33 (SUN8I)\n");
|
||||||
|
#elif defined CONFIG_MACH_SUN9I
|
||||||
|
puts("CPU: Allwinner A80 (SUN9I)\n");
|
||||||
#else
|
#else
|
||||||
#warning Please update cpu_info.c with correct CPU information
|
#warning Please update cpu_info.c with correct CPU information
|
||||||
puts("CPU: SUNXI Family\n");
|
puts("CPU: SUNXI Family\n");
|
||||||
|
@ -185,6 +185,7 @@ enum sunxi_gpio_number {
|
|||||||
#define SUN8I_GPH_TWI1 2
|
#define SUN8I_GPH_TWI1 2
|
||||||
#define SUN6I_GPH_TWI2 2
|
#define SUN6I_GPH_TWI2 2
|
||||||
#define SUN6I_GPH_UART0 2
|
#define SUN6I_GPH_UART0 2
|
||||||
|
#define SUN9I_GPH_UART0 2
|
||||||
|
|
||||||
#define SUNXI_GPI_SDC3 2
|
#define SUNXI_GPI_SDC3 2
|
||||||
#define SUN7I_GPI_TWI3 3
|
#define SUN7I_GPI_TWI3 3
|
||||||
|
@ -59,6 +59,11 @@ config MACH_SUN8I_A33
|
|||||||
select SUNXI_GEN_SUN6I
|
select SUNXI_GEN_SUN6I
|
||||||
select SUPPORT_SPL
|
select SUPPORT_SPL
|
||||||
|
|
||||||
|
config MACH_SUN9I
|
||||||
|
bool "sun9i (Allwinner A80)"
|
||||||
|
select CPU_V7
|
||||||
|
select SUNXI_GEN_SUN6I
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
|
# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
|
||||||
@ -187,6 +192,7 @@ config SYS_CONFIG_NAME
|
|||||||
default "sun6i" if MACH_SUN6I
|
default "sun6i" if MACH_SUN6I
|
||||||
default "sun7i" if MACH_SUN7I
|
default "sun7i" if MACH_SUN7I
|
||||||
default "sun8i" if MACH_SUN8I
|
default "sun8i" if MACH_SUN8I
|
||||||
|
default "sun9i" if MACH_SUN9I
|
||||||
|
|
||||||
config SYS_BOARD
|
config SYS_BOARD
|
||||||
default "sunxi"
|
default "sunxi"
|
||||||
|
@ -530,10 +530,11 @@ int misc_init_r(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_MACH_SUN9I
|
||||||
ret = sunxi_usb_phy_probe();
|
ret = sunxi_usb_phy_probe();
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
#endif
|
||||||
#if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET)
|
#if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET)
|
||||||
musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE);
|
musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE);
|
||||||
#endif
|
#endif
|
||||||
|
21
include/configs/sun9i.h
Normal file
21
include/configs/sun9i.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* (C) Copyright 2015 Hans de Goede <hdegoede@redhat.com>
|
||||||
|
*
|
||||||
|
* Configuration settings for the Allwinner A80 (sun9i) CPU
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __CONFIG_H
|
||||||
|
#define __CONFIG_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A80 specific configuration
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Include common sunxi configuration where most the settings are
|
||||||
|
*/
|
||||||
|
#include <configs/sunxi-common.h>
|
||||||
|
|
||||||
|
#endif /* __CONFIG_H */
|
Loading…
Reference in New Issue
Block a user