Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21d08b9d authored by Jean-Christophe PLAGNIOL-VILLARD's avatar Jean-Christophe PLAGNIOL-VILLARD Committed by Arnd Bergmann
Browse files

at91: introduce commom AT91_BASE_SYS



On all at91 except rm9200 and x40 have the System Controller starts
at address 0xffffc000 and has a size of 16KiB.

On rm9200 it's start at 0xfffe4000 of 111KiB with non reserved data starting
at 0xfffff000

This patch removes the individual definitions of AT91_BASE_SYS and
replaces them with a common version at base 0xfffffc000 and size 16KiB
and map the same memory space

Signed-off-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Patrice Vilchez <patrice.vilchez@atmel.com>
parent 02f8c6ae
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Makefile for the linux kernel.
#

obj-y		:= irq.o gpio.o
obj-y		:= irq.o gpio.o setup.o
obj-m		:=
obj-n		:=
obj-		:=
+10 −11
Original line number Diff line number Diff line
@@ -25,16 +25,12 @@
#include <mach/at91_rstc.h>
#include <mach/at91_shdwc.h>

#include "soc.h"
#include "generic.h"
#include "clock.h"

static struct map_desc at91cap9_io_desc[] __initdata = {
static struct map_desc at91cap9_sram_desc[] __initdata = {
	{
		.virtual	= AT91_VA_BASE_SYS,
		.pfn		= __phys_to_pfn(AT91_BASE_SYS),
		.length		= SZ_16K,
		.type		= MT_DEVICE,
	}, {
		.virtual	= AT91_IO_VIRT_BASE - AT91CAP9_SRAM_SIZE,
		.pfn		= __phys_to_pfn(AT91CAP9_SRAM_BASE),
		.length		= AT91CAP9_SRAM_SIZE,
@@ -339,14 +335,12 @@ static void at91cap9_poweroff(void)
 *  AT91CAP9 processor initialization
 * -------------------------------------------------------------------- */

void __init at91cap9_map_io(void)
static void __init at91cap9_map_io(void)
{
	/* Map peripherals */
	iotable_init(at91cap9_io_desc, ARRAY_SIZE(at91cap9_io_desc));
	iotable_init(at91cap9_sram_desc, ARRAY_SIZE(at91cap9_sram_desc));
}

void __init at91cap9_initialize(unsigned long main_clock)
{
static void __init at91cap9_initialize(unsigned long main_clock)
	at91_arch_reset = at91cap9_reset;
	pm_power_off = at91cap9_poweroff;
	at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);
@@ -420,3 +414,8 @@ void __init at91cap9_init_interrupts(unsigned int priority[NR_AIC_IRQS])
	/* Enable GPIO interrupts */
	at91_gpio_irq_setup();
}

struct at91_soc __initdata at91cap9_soc = {
	.map_io = at91cap9_map_io,
	.init = at91cap9_initialize,
};
+8 −7
Original line number Diff line number Diff line
@@ -20,16 +20,12 @@
#include <mach/at91_st.h>
#include <mach/cpu.h>

#include "soc.h"
#include "generic.h"
#include "clock.h"

static struct map_desc at91rm9200_io_desc[] __initdata = {
	{
		.virtual	= AT91_VA_BASE_SYS,
		.pfn		= __phys_to_pfn(AT91_BASE_SYS),
		.length		= SZ_4K,
		.type		= MT_DEVICE,
	}, {
		.virtual	= AT91_VA_BASE_EMAC,
		.pfn		= __phys_to_pfn(AT91RM9200_BASE_EMAC),
		.length		= SZ_16K,
@@ -315,13 +311,13 @@ void __init at91rm9200_set_type(int type)
/* --------------------------------------------------------------------
 *  AT91RM9200 processor initialization
 * -------------------------------------------------------------------- */
void __init at91rm9200_map_io(void)
static void __init at91rm9200_map_io(void)
{
	/* Map peripherals */
	iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc));
}

void __init at91rm9200_initialize(unsigned long main_clock)
static void __init at91rm9200_initialize(unsigned long main_clock)
{
	at91_arch_reset = at91rm9200_reset;
	at91_extern_irq = (1 << AT91RM9200_ID_IRQ0) | (1 << AT91RM9200_ID_IRQ1)
@@ -394,3 +390,8 @@ void __init at91rm9200_init_interrupts(unsigned int priority[NR_AIC_IRQS])
	/* Enable GPIO interrupts */
	at91_gpio_irq_setup();
}

struct at91_soc __initdata at91rm9200_soc = {
	.map_io = at91rm9200_map_io,
	.init = at91rm9200_initialize,
};
+8 −14
Original line number Diff line number Diff line
@@ -22,18 +22,10 @@
#include <mach/at91_rstc.h>
#include <mach/at91_shdwc.h>

#include "soc.h"
#include "generic.h"
#include "clock.h"

static struct map_desc at91sam9260_io_desc[] __initdata = {
	{
		.virtual	= AT91_VA_BASE_SYS,
		.pfn		= __phys_to_pfn(AT91_BASE_SYS),
		.length		= SZ_16K,
		.type		= MT_DEVICE,
	}
};

static struct map_desc at91sam9260_sram_desc[] __initdata = {
	{
		.virtual	= AT91_IO_VIRT_BASE - AT91SAM9260_SRAM0_SIZE,
@@ -349,11 +341,8 @@ static void __init at91sam9xe_map_io(void)
	iotable_init(at91sam9xe_sram_desc, ARRAY_SIZE(at91sam9xe_sram_desc));
}

void __init at91sam9260_map_io(void)
static void __init at91sam9260_map_io(void)
{
	/* Map peripherals */
	iotable_init(at91sam9260_io_desc, ARRAY_SIZE(at91sam9260_io_desc));

	if (cpu_is_at91sam9xe())
		at91sam9xe_map_io();
	else if (cpu_is_at91sam9g20())
@@ -362,7 +351,7 @@ void __init at91sam9260_map_io(void)
		iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
}

void __init at91sam9260_initialize(unsigned long main_clock)
static void __init at91sam9260_initialize(unsigned long main_clock)
{
	at91_arch_reset = at91sam9_alt_reset;
	pm_power_off = at91sam9260_poweroff;
@@ -432,3 +421,8 @@ void __init at91sam9260_init_interrupts(unsigned int priority[NR_AIC_IRQS])
	/* Enable GPIO interrupts */
	at91_gpio_irq_setup();
}

struct at91_soc __initdata at91sam9260_soc = {
	.map_io = at91sam9260_map_io,
	.init = at91sam9260_initialize,
};
+8 −14
Original line number Diff line number Diff line
@@ -22,18 +22,10 @@
#include <mach/at91_rstc.h>
#include <mach/at91_shdwc.h>

#include "soc.h"
#include "generic.h"
#include "clock.h"

static struct map_desc at91sam9261_io_desc[] __initdata = {
	{
		.virtual	= AT91_VA_BASE_SYS,
		.pfn		= __phys_to_pfn(AT91_BASE_SYS),
		.length		= SZ_16K,
		.type		= MT_DEVICE,
	},
};

static struct map_desc at91sam9261_sram_desc[] __initdata = {
	{
		.virtual	= AT91_IO_VIRT_BASE - AT91SAM9261_SRAM_SIZE,
@@ -302,18 +294,15 @@ static void at91sam9261_poweroff(void)
 *  AT91SAM9261 processor initialization
 * -------------------------------------------------------------------- */

void __init at91sam9261_map_io(void)
static void __init at91sam9261_map_io(void)
{
	/* Map peripherals */
	iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc));

	if (cpu_is_at91sam9g10())
		iotable_init(at91sam9g10_sram_desc, ARRAY_SIZE(at91sam9g10_sram_desc));
	else
		iotable_init(at91sam9261_sram_desc, ARRAY_SIZE(at91sam9261_sram_desc));
}

void __init at91sam9261_initialize(unsigned long main_clock)
static void __init at91sam9261_initialize(unsigned long main_clock)
{
	at91_arch_reset = at91sam9_alt_reset;
	pm_power_off = at91sam9261_poweroff;
@@ -383,3 +372,8 @@ void __init at91sam9261_init_interrupts(unsigned int priority[NR_AIC_IRQS])
	/* Enable GPIO interrupts */
	at91_gpio_irq_setup();
}

struct at91_soc __initdata at91sam9261_soc = {
	.map_io = at91sam9261_map_io,
	.init = at91sam9261_initialize,
};
Loading