-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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>
- Loading branch information
Maxime Ripard
committed
Nov 16, 2012
1 parent
afd24e1
commit 3b52634
Showing
8 changed files
with
113 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
obj-$(CONFIG_ARCH_SUNXI) += sunxi.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
zreladdr-$(CONFIG_ARCH_SUNXI) += 0x40008000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 */ |