sun9i: Basic sun9i (A80) support
authorHans de Goede <hdegoede@redhat.com>
Tue, 13 Jan 2015 18:25:06 +0000 (19:25 +0100)
committerHans de Goede <hdegoede@redhat.com>
Fri, 29 May 2015 11:46:36 +0000 (13:46 +0200)
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>
arch/arm/cpu/armv7/sunxi/Makefile
arch/arm/cpu/armv7/sunxi/board.c
arch/arm/cpu/armv7/sunxi/cpu_info.c
arch/arm/include/asm/arch-sunxi/gpio.h
board/sunxi/Kconfig
board/sunxi/board.c
include/configs/sun9i.h [new file with mode: 0644]

index 6a0299fe1cd8fe1bbeaf92561b7244ff5b8e4a36..7ef6b4c61a4678386049c27ad9a4725746d1ccbc 100644 (file)
@@ -13,7 +13,9 @@ obj-y += clock.o
 obj-y  += cpu_info.o
 obj-y  += dram_helpers.o
 obj-y  += pinmux.o
+ifndef CONFIG_MACH_SUN9I
 obj-y  += usb_phy.o
+endif
 obj-$(CONFIG_MACH_SUN6I)       += prcm.o
 obj-$(CONFIG_MACH_SUN8I)       += prcm.o
 obj-$(CONFIG_MACH_SUN9I)       += prcm.o
index 75ce7b5765d0ccbcf5d9735ef26100cdd540359b..23aa2497a091446c6222eb849080ace684c6fbe0 100644 (file)
@@ -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(21), SUN6I_GPH_UART0);
        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)
        sunxi_gpio_set_cfgpin(SUNXI_GPG(3), SUN5I_GPG_UART1);
        sunxi_gpio_set_cfgpin(SUNXI_GPG(4), SUN5I_GPG_UART1);
index 8e8c84f2ad0ae82d759f3416f5083247bf230950..a276fad3164a7c3a1a72b6a8e4660c294dad1642 100644 (file)
@@ -11,6 +11,7 @@
 #include <asm/arch/cpu.h>
 #include <asm/arch/clock.h>
 #include <axp221.h>
+#include <errno.h>
 
 #ifdef CONFIG_MACH_SUN6I
 int sunxi_get_ss_bonding_id(void)
@@ -68,6 +69,8 @@ int print_cpuinfo(void)
        puts("CPU:   Allwinner A23 (SUN8I)\n");
 #elif defined CONFIG_MACH_SUN8I_A33
        puts("CPU:   Allwinner A33 (SUN8I)\n");
+#elif defined CONFIG_MACH_SUN9I
+       puts("CPU:   Allwinner A80 (SUN9I)\n");
 #else
 #warning Please update cpu_info.c with correct CPU information
        puts("CPU:   SUNXI Family\n");
index 148123a87f3288c07dbf41d0fe7d115d2f47c287..496295d35735ebc2ca468ff184a79a4c3c8fb70f 100644 (file)
@@ -185,6 +185,7 @@ enum sunxi_gpio_number {
 #define SUN8I_GPH_TWI1         2
 #define SUN6I_GPH_TWI2         2
 #define SUN6I_GPH_UART0                2
+#define SUN9I_GPH_UART0                2
 
 #define SUNXI_GPI_SDC3         2
 #define SUN7I_GPI_TWI3         3
index ca805e4553b056f40a153ed2b89e127c3941efa7..6f5fde9ae227adcf8ab5e96f63aa9db28c57836f 100644 (file)
@@ -59,6 +59,11 @@ config MACH_SUN8I_A33
        select SUNXI_GEN_SUN6I
        select SUPPORT_SPL
 
+config MACH_SUN9I
+       bool "sun9i (Allwinner A80)"
+       select CPU_V7
+       select SUNXI_GEN_SUN6I
+
 endchoice
 
 # 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 "sun7i" if MACH_SUN7I
        default "sun8i" if MACH_SUN8I
+       default "sun9i" if MACH_SUN9I
 
 config SYS_BOARD
        default "sunxi"
index 5f79cc1bb8249987ddc19bc5a58d8032a5f75b30..ed60e74808ffd4c8b6187d5cb5f1c0d231a40e8c 100644 (file)
@@ -530,10 +530,11 @@ int misc_init_r(void)
                }
        }
 
+#ifndef CONFIG_MACH_SUN9I
        ret = sunxi_usb_phy_probe();
        if (ret)
                return ret;
-
+#endif
 #if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET)
        musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE);
 #endif
diff --git a/include/configs/sun9i.h b/include/configs/sun9i.h
new file mode 100644 (file)
index 0000000..cd9e08d
--- /dev/null
@@ -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 */