ARM: sunxi: Add basic support for Allwinner A1x SoCs
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Acked-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
afd24e1468
commit
3b52634f0b
|
@ -0,0 +1,19 @@
|
|||
ARM Allwinner SoCs
|
||||
==================
|
||||
|
||||
This document lists all the ARM Allwinner SoCs that are currently
|
||||
supported in mainline by the Linux kernel. This document will also
|
||||
provide links to documentation and or datasheet for these SoCs.
|
||||
|
||||
SunXi family
|
||||
------------
|
||||
|
||||
Flavors:
|
||||
Allwinner A10 (sun4i)
|
||||
Datasheet : http://dl.linux-sunxi.org/A10/A10%20Datasheet%20-%20v1.21%20%282012-04-06%29.pdf
|
||||
|
||||
Allwinner A13 (sun5i)
|
||||
Datasheet : http://dl.linux-sunxi.org/A13/A13%20Datasheet%20-%20v1.12%20%282012-03-29%29.pdf
|
||||
|
||||
Core: Cortex A8
|
||||
Linux kernel mach directory: arch/arm/mach-sunxi
|
|
@ -1113,6 +1113,8 @@ source "arch/arm/mach-exynos/Kconfig"
|
|||
|
||||
source "arch/arm/mach-shmobile/Kconfig"
|
||||
|
||||
source "arch/arm/mach-sunxi/Kconfig"
|
||||
|
||||
source "arch/arm/mach-prima2/Kconfig"
|
||||
|
||||
source "arch/arm/mach-tegra/Kconfig"
|
||||
|
|
|
@ -193,6 +193,7 @@ machine-$(CONFIG_ARCH_SPEAR13XX) += spear13xx
|
|||
machine-$(CONFIG_ARCH_SPEAR3XX) += spear3xx
|
||||
machine-$(CONFIG_MACH_SPEAR600) += spear6xx
|
||||
machine-$(CONFIG_ARCH_ZYNQ) += zynq
|
||||
machine-$(CONFIG_ARCH_SUNXI) += sunxi
|
||||
|
||||
# Platform directory name. This list is sorted alphanumerically
|
||||
# by CONFIG_* macro name.
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
config ARCH_SUNXI
|
||||
bool "Allwinner A1X SOCs" if ARCH_MULTI_V7
|
||||
select CLKSRC_MMIO
|
||||
select COMMON_CLK
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select GENERIC_IRQ_CHIP
|
||||
select PINCTRL
|
||||
select SPARSE_IRQ
|
||||
select SUNXI_TIMER
|
|
@ -0,0 +1 @@
|
|||
obj-$(CONFIG_ARCH_SUNXI) += sunxi.o
|
|
@ -0,0 +1 @@
|
|||
zreladdr-$(CONFIG_ARCH_SUNXI) += 0x40008000
|
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
* Device Tree support for Allwinner A1X SoCs
|
||||
*
|
||||
* Copyright (C) 2012 Maxime Ripard
|
||||
*
|
||||
* Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/sunxi_timer.h>
|
||||
|
||||
#include <linux/irqchip/sunxi.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include "sunxi.h"
|
||||
|
||||
static struct map_desc sunxi_io_desc[] __initdata = {
|
||||
{
|
||||
.virtual = (unsigned long) SUNXI_REGS_VIRT_BASE,
|
||||
.pfn = __phys_to_pfn(SUNXI_REGS_PHYS_BASE),
|
||||
.length = SUNXI_REGS_SIZE,
|
||||
.type = MT_DEVICE,
|
||||
},
|
||||
};
|
||||
|
||||
void __init sunxi_map_io(void)
|
||||
{
|
||||
iotable_init(sunxi_io_desc, ARRAY_SIZE(sunxi_io_desc));
|
||||
}
|
||||
|
||||
static void __init sunxi_dt_init(void)
|
||||
{
|
||||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
||||
}
|
||||
|
||||
static const char * const sunxi_board_dt_compat[] = {
|
||||
"allwinner,sun5i",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(SUNXI_DT, "Allwinner A1X (Device Tree)")
|
||||
.init_machine = sunxi_dt_init,
|
||||
.map_io = sunxi_map_io,
|
||||
.init_irq = sunxi_init_irq,
|
||||
.handle_irq = sunxi_handle_irq,
|
||||
.timer = &sunxi_timer,
|
||||
.dt_compat = sunxi_board_dt_compat,
|
||||
MACHINE_END
|
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* Generic definitions for Allwinner SunXi SoCs
|
||||
*
|
||||
* Copyright (C) 2012 Maxime Ripard
|
||||
*
|
||||
* Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#ifndef __MACH_SUNXI_H
|
||||
#define __MACH_SUNXI_H
|
||||
|
||||
#define SUNXI_REGS_PHYS_BASE 0x01c00000
|
||||
#define SUNXI_REGS_VIRT_BASE IOMEM(0xf1c00000)
|
||||
#define SUNXI_REGS_SIZE (SZ_2M + SZ_1M)
|
||||
|
||||
#endif /* __MACH_SUNXI_H */
|
Loading…
Reference in New Issue