Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 340031
b: refs/heads/master
c: 3b52634
h: refs/heads/master
i:
  340029: e100b09
  340027: 1c42460
  340023: 1cffda2
  340015: 8fc57d2
  339999: dc06406
  339967: a59e057
v: v3
  • Loading branch information
Maxime Ripard committed Nov 16, 2012
1 parent fb3f41f commit 7538064
Show file tree
Hide file tree
Showing 9 changed files with 114 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: afd24e146826cec0f46929263a0c874406a19cd8
refs/heads/master: 3b52634f0b7adaaf2b29569025287b938b7c71a6
19 changes: 19 additions & 0 deletions trunk/Documentation/arm/sunxi/README
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
2 changes: 2 additions & 0 deletions trunk/arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
9 changes: 9 additions & 0 deletions trunk/arch/arm/mach-sunxi/Kconfig
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
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-sunxi/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
obj-$(CONFIG_ARCH_SUNXI) += sunxi.o
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-sunxi/Makefile.boot
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
zreladdr-$(CONFIG_ARCH_SUNXI) += 0x40008000
60 changes: 60 additions & 0 deletions trunk/arch/arm/mach-sunxi/sunxi.c
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
20 changes: 20 additions & 0 deletions trunk/arch/arm/mach-sunxi/sunxi.h
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 */

0 comments on commit 7538064

Please sign in to comment.