aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Ferre <nicolas.ferre@atmel.com>2014-10-21 08:16:54 -0400
committerNicolas Ferre <nicolas.ferre@atmel.com>2014-11-03 12:48:00 -0500
commit7538ec7d1e5990f719538aeec9c021ba694040d9 (patch)
tree08113291c67ffa840181229877ef43a88305bb70
parentcac7f2429872d3733dc3f9915857b1691da2eb2f (diff)
ARM: at91: remove no-MMU at91x40 support
As there is currently no-one to take care of this old !MMU target and as its support in recent kernels is a bit rotten, remove this at91x40 support and the board file associated with it (at91eb01). There are modern ARM !MMU in Mainline now so this target is not interesting for building tests anymore. It would be better to start from these modern ARM !MMU platforms to reintroduce at91x40 support if needed. Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Greg Ungerer <gerg@uclinux.org> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-rw-r--r--arch/arm/configs/at91x40_defconfig48
-rw-r--r--arch/arm/mach-at91/Kconfig20
-rw-r--r--arch/arm/mach-at91/Kconfig.non_dt17
-rw-r--r--arch/arm/mach-at91/Makefile4
-rw-r--r--arch/arm/mach-at91/at91x40.c93
-rw-r--r--arch/arm/mach-at91/at91x40_time.c85
-rw-r--r--arch/arm/mach-at91/board-eb01.c52
-rw-r--r--arch/arm/mach-at91/generic.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91_dbgu.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91x40.h60
-rw-r--r--arch/arm/mach-at91/include/mach/cpu.h1
-rw-r--r--arch/arm/mach-at91/include/mach/hardware.h5
-rw-r--r--arch/arm/mach-at91/include/mach/uncompress.h7
-rw-r--r--arch/arm/mach-at91/setup.c2
-rw-r--r--drivers/rtc/Kconfig2
15 files changed, 5 insertions, 397 deletions
diff --git a/arch/arm/configs/at91x40_defconfig b/arch/arm/configs/at91x40_defconfig
deleted file mode 100644
index c55e9212fcbb..000000000000
--- a/arch/arm/configs/at91x40_defconfig
+++ /dev/null
@@ -1,48 +0,0 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_LOG_BUF_SHIFT=14
3CONFIG_EMBEDDED=y
4# CONFIG_HOTPLUG is not set
5# CONFIG_ELF_CORE is not set
6# CONFIG_FUTEX is not set
7# CONFIG_TIMERFD is not set
8# CONFIG_VM_EVENT_COUNTERS is not set
9# CONFIG_COMPAT_BRK is not set
10CONFIG_SLAB=y
11# CONFIG_LBDAF is not set
12# CONFIG_BLK_DEV_BSG is not set
13# CONFIG_IOSCHED_DEADLINE is not set
14# CONFIG_IOSCHED_CFQ is not set
15# CONFIG_MMU is not set
16CONFIG_ARCH_AT91=y
17CONFIG_ARCH_AT91X40=y
18CONFIG_MACH_AT91EB01=y
19CONFIG_AT91_EARLY_USART0=y
20CONFIG_CPU_ARM7TDMI=y
21CONFIG_SET_MEM_PARAM=y
22CONFIG_DRAM_BASE=0x01000000
23CONFIG_DRAM_SIZE=0x00400000
24CONFIG_FLASH_MEM_BASE=0x01400000
25CONFIG_PROCESSOR_ID=0x14000040
26CONFIG_ZBOOT_ROM_TEXT=0x0
27CONFIG_ZBOOT_ROM_BSS=0x0
28CONFIG_BINFMT_FLAT=y
29# CONFIG_SUSPEND is not set
30# CONFIG_FW_LOADER is not set
31CONFIG_MTD=y
32CONFIG_MTD_PARTITIONS=y
33CONFIG_MTD_CHAR=y
34CONFIG_MTD_BLOCK=y
35CONFIG_MTD_RAM=y
36CONFIG_MTD_ROM=y
37CONFIG_BLK_DEV_RAM=y
38# CONFIG_INPUT is not set
39# CONFIG_SERIO is not set
40# CONFIG_VT is not set
41# CONFIG_DEVKMEM is not set
42# CONFIG_HW_RANDOM is not set
43# CONFIG_HWMON is not set
44# CONFIG_USB_SUPPORT is not set
45CONFIG_EXT2_FS=y
46# CONFIG_DNOTIFY is not set
47CONFIG_ROMFS_FS=y
48# CONFIG_ENABLE_MUST_CHECK is not set
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 0e6d548b70d9..a82ee4e7e980 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -18,18 +18,14 @@ config HAVE_AT91_DBGU2
18config AT91_USE_OLD_CLK 18config AT91_USE_OLD_CLK
19 bool 19 bool
20 20
21config AT91_PMC_UNIT
22 bool
23 default !ARCH_AT91X40
24
25config COMMON_CLK_AT91 21config COMMON_CLK_AT91
26 bool 22 bool
27 default AT91_PMC_UNIT && USE_OF && !AT91_USE_OLD_CLK 23 default USE_OF && !AT91_USE_OLD_CLK
28 select COMMON_CLK 24 select COMMON_CLK
29 25
30config OLD_CLK_AT91 26config OLD_CLK_AT91
31 bool 27 bool
32 default AT91_PMC_UNIT && AT91_USE_OLD_CLK 28 default AT91_USE_OLD_CLK
33 29
34config OLD_IRQ_AT91 30config OLD_IRQ_AT91
35 bool 31 bool
@@ -65,16 +61,6 @@ choice
65 61
66 prompt "Core type" 62 prompt "Core type"
67 63
68config ARCH_AT91X40
69 bool "ARM7 AT91X40"
70 depends on !MMU
71 select CPU_ARM7TDMI
72 select ARCH_USES_GETTIMEOFFSET
73 select OLD_IRQ_AT91
74
75 help
76 Select this if you are using one of Atmel's AT91X40 SoC.
77
78config SOC_SAM_V4_V5 64config SOC_SAM_V4_V5
79 bool "ARM9 AT91SAM9/AT91RM9200" 65 bool "ARM9 AT91SAM9/AT91RM9200"
80 help 66 help
@@ -199,7 +185,7 @@ config SOC_AT91SAM9N12
199endif # SOC_SAM_V4_V5 185endif # SOC_SAM_V4_V5
200 186
201 187
202if SOC_SAM_V4_V5 || ARCH_AT91X40 188if SOC_SAM_V4_V5
203source arch/arm/mach-at91/Kconfig.non_dt 189source arch/arm/mach-at91/Kconfig.non_dt
204endif 190endif
205 191
diff --git a/arch/arm/mach-at91/Kconfig.non_dt b/arch/arm/mach-at91/Kconfig.non_dt
index d8e88219edb4..29a58206dcca 100644
--- a/arch/arm/mach-at91/Kconfig.non_dt
+++ b/arch/arm/mach-at91/Kconfig.non_dt
@@ -5,7 +5,6 @@ config HAVE_AT91_DATAFLASH_CARD
5 5
6choice 6choice
7 prompt "Atmel AT91 Processor Devices for non DT boards" 7 prompt "Atmel AT91 Processor Devices for non DT boards"
8 depends on !ARCH_AT91X40
9 8
10config ARCH_AT91_NONE 9config ARCH_AT91_NONE
11 bool "None" 10 bool "None"
@@ -317,22 +316,6 @@ endif
317 316
318# ---------------------------------------------------------- 317# ----------------------------------------------------------
319 318
320if ARCH_AT91X40
321
322comment "AT91X40 Board Type"
323
324config MACH_AT91EB01
325 bool "Atmel AT91EB01 Evaluation Kit"
326 help
327 Select this if you are using Atmel's AT91EB01 Evaluation Kit.
328 It is also a popular target for simulators such as GDB's
329 ARM simulator (commonly known as the ARMulator) and the
330 Skyeye simulator.
331
332endif
333
334# ----------------------------------------------------------
335
336comment "AT91 Board Options" 319comment "AT91 Board Options"
337 320
338config MTD_AT91_DATAFLASH_CARD 321config MTD_AT91_DATAFLASH_CARD
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 1b9ae0257a6e..009ad7b19485 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -26,7 +26,6 @@ obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261_devices.o
26obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263_devices.o 26obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263_devices.o
27obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl_devices.o 27obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl_devices.o
28obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45_devices.o 28obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45_devices.o
29obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o
30 29
31# AT91RM9200 board-specific support 30# AT91RM9200 board-specific support
32obj-$(CONFIG_MACH_ONEARM) += board-1arm.o 31obj-$(CONFIG_MACH_ONEARM) += board-1arm.o
@@ -82,9 +81,6 @@ obj-$(CONFIG_MACH_AT91SAM9_DT) += board-dt-sam9.o
82# SAMA5 board with device-tree 81# SAMA5 board with device-tree
83obj-$(CONFIG_MACH_SAMA5_DT) += board-dt-sama5.o 82obj-$(CONFIG_MACH_SAMA5_DT) += board-dt-sama5.o
84 83
85# AT91X40 board-specific support
86obj-$(CONFIG_MACH_AT91EB01) += board-eb01.o
87
88# Drivers 84# Drivers
89obj-y += leds.o 85obj-y += leds.o
90 86
diff --git a/arch/arm/mach-at91/at91x40.c b/arch/arm/mach-at91/at91x40.c
deleted file mode 100644
index 7523f1cdfe1d..000000000000
--- a/arch/arm/mach-at91/at91x40.c
+++ /dev/null
@@ -1,93 +0,0 @@
1/*
2 * arch/arm/mach-at91/at91x40.c
3 *
4 * (C) Copyright 2007, Greg Ungerer <gerg@snapgear.com>
5 * Copyright (C) 2005 SAN People
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/irq.h>
16#include <linux/io.h>
17#include <asm/proc-fns.h>
18#include <asm/system_misc.h>
19#include <asm/mach/arch.h>
20#include <mach/at91x40.h>
21#include <mach/at91_st.h>
22#include <mach/hardware.h>
23
24#include "at91_aic.h"
25#include "generic.h"
26
27/*
28 * Export the clock functions for the AT91X40. Some external code common
29 * to all AT91 family parts relys on this, like the gpio and serial support.
30 */
31int clk_enable(struct clk *clk)
32{
33 return 0;
34}
35
36void clk_disable(struct clk *clk)
37{
38}
39
40unsigned long clk_get_rate(struct clk *clk)
41{
42 return AT91X40_MASTER_CLOCK;
43}
44
45static void at91x40_idle(void)
46{
47 /*
48 * Disable the processor clock. The processor will be automatically
49 * re-enabled by an interrupt or by a reset.
50 */
51 __raw_writel(AT91_PS_CR_CPU, AT91_IO_P2V(AT91_PS_CR));
52 cpu_do_idle();
53}
54
55void __init at91x40_initialize(unsigned long main_clock)
56{
57 arm_pm_idle = at91x40_idle;
58}
59
60/*
61 * The default interrupt priority levels (0 = lowest, 7 = highest).
62 */
63static unsigned int at91x40_default_irq_priority[NR_AIC_IRQS] __initdata = {
64 7, /* Advanced Interrupt Controller (FIQ) */
65 0, /* System Peripherals */
66 0, /* USART 0 */
67 0, /* USART 1 */
68 2, /* Timer Counter 0 */
69 2, /* Timer Counter 1 */
70 2, /* Timer Counter 2 */
71 0, /* Watchdog timer */
72 0, /* Parallel IO Controller A */
73 0, /* Reserved */
74 0, /* Reserved */
75 0, /* Reserved */
76 0, /* Reserved */
77 0, /* Reserved */
78 0, /* Reserved */
79 0, /* Reserved */
80 0, /* External IRQ0 */
81 0, /* External IRQ1 */
82 0, /* External IRQ2 */
83};
84
85void __init at91x40_init_interrupts(unsigned int priority[NR_AIC_IRQS])
86{
87 u32 extern_irq = (1 << AT91X40_ID_IRQ0) | (1 << AT91X40_ID_IRQ1)
88 | (1 << AT91X40_ID_IRQ2);
89 if (!priority)
90 priority = at91x40_default_irq_priority;
91
92 at91_aic_init(priority, extern_irq);
93}
diff --git a/arch/arm/mach-at91/at91x40_time.c b/arch/arm/mach-at91/at91x40_time.c
deleted file mode 100644
index 07d0bf2ac2da..000000000000
--- a/arch/arm/mach-at91/at91x40_time.c
+++ /dev/null
@@ -1,85 +0,0 @@
1/*
2 * arch/arm/mach-at91/at91x40_time.c
3 *
4 * (C) Copyright 2007, Greg Ungerer <gerg@snapgear.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#include <linux/kernel.h>
22#include <linux/init.h>
23#include <linux/interrupt.h>
24#include <linux/irq.h>
25#include <linux/time.h>
26#include <linux/io.h>
27#include <mach/hardware.h>
28#include <mach/at91x40.h>
29#include <asm/mach/time.h>
30
31#include "at91_tc.h"
32
33#define at91_tc_read(field) \
34 __raw_readl(AT91_IO_P2V(AT91_TC) + field)
35
36#define at91_tc_write(field, value) \
37 __raw_writel(value, AT91_IO_P2V(AT91_TC) + field)
38
39/*
40 * 3 counter/timer units present.
41 */
42#define AT91_TC_CLK0BASE 0
43#define AT91_TC_CLK1BASE 0x40
44#define AT91_TC_CLK2BASE 0x80
45
46static u32 at91x40_gettimeoffset(void)
47{
48 return (at91_tc_read(AT91_TC_CLK1BASE + AT91_TC_CV) * 1000000 /
49 (AT91X40_MASTER_CLOCK / 128)) * 1000;
50}
51
52static irqreturn_t at91x40_timer_interrupt(int irq, void *dev_id)
53{
54 at91_tc_read(AT91_TC_CLK1BASE + AT91_TC_SR);
55 timer_tick();
56 return IRQ_HANDLED;
57}
58
59static struct irqaction at91x40_timer_irq = {
60 .name = "at91_tick",
61 .flags = IRQF_TIMER,
62 .handler = at91x40_timer_interrupt
63};
64
65void __init at91x40_timer_init(void)
66{
67 unsigned int v;
68
69 arch_gettimeoffset = at91x40_gettimeoffset;
70
71 at91_tc_write(AT91_TC_BCR, 0);
72 v = at91_tc_read(AT91_TC_BMR);
73 v = (v & ~AT91_TC_TC1XC1S) | AT91_TC_TC1XC1S_NONE;
74 at91_tc_write(AT91_TC_BMR, v);
75
76 at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_CCR, AT91_TC_CLKDIS);
77 at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_CMR, (AT91_TC_TIMER_CLOCK4 | AT91_TC_CPCTRG));
78 at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_IDR, 0xffffffff);
79 at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_RC, (AT91X40_MASTER_CLOCK / 128) / HZ - 1);
80 at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_IER, (1<<4));
81
82 setup_irq(AT91X40_ID_TC1, &at91x40_timer_irq);
83
84 at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_CCR, (AT91_TC_SWTRG | AT91_TC_CLKEN));
85}
diff --git a/arch/arm/mach-at91/board-eb01.c b/arch/arm/mach-at91/board-eb01.c
deleted file mode 100644
index becf0a6a289e..000000000000
--- a/arch/arm/mach-at91/board-eb01.c
+++ /dev/null
@@ -1,52 +0,0 @@
1/*
2 * arch/arm/mach-at91/board-eb01.c
3 *
4 * (C) Copyright 2007, Greg Ungerer <gerg@snapgear.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#include <linux/kernel.h>
22#include <linux/init.h>
23#include <linux/module.h>
24#include <linux/platform_device.h>
25#include <linux/irq.h>
26#include <asm/mach-types.h>
27#include <mach/hardware.h>
28#include <asm/mach/arch.h>
29#include <asm/mach/map.h>
30
31#include "at91_aic.h"
32#include "board.h"
33#include "generic.h"
34
35static void __init at91eb01_init_irq(void)
36{
37 at91x40_init_interrupts(NULL);
38}
39
40static void __init at91eb01_init_early(void)
41{
42 at91x40_initialize(40000000);
43}
44
45MACHINE_START(AT91EB01, "Atmel AT91 EB01")
46 /* Maintainer: Greg Ungerer <gerg@snapgear.com> */
47 .init_time = at91x40_timer_init,
48 .handle_irq = at91_aic_handle_irq,
49 .init_early = at91eb01_init_early,
50 .init_irq = at91eb01_init_irq,
51MACHINE_END
52
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index 81959cf4a137..464b08e9830a 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -24,14 +24,12 @@ extern void __init at91_init_sram(int bank, unsigned long base,
24 /* Processors */ 24 /* Processors */
25extern void __init at91rm9200_set_type(int type); 25extern void __init at91rm9200_set_type(int type);
26extern void __init at91_initialize(unsigned long main_clock); 26extern void __init at91_initialize(unsigned long main_clock);
27extern void __init at91x40_initialize(unsigned long main_clock);
28extern void __init at91rm9200_dt_initialize(void); 27extern void __init at91rm9200_dt_initialize(void);
29extern void __init at91_dt_initialize(void); 28extern void __init at91_dt_initialize(void);
30 29
31 /* Interrupts */ 30 /* Interrupts */
32extern void __init at91_init_irq_default(void); 31extern void __init at91_init_irq_default(void);
33extern void __init at91_init_interrupts(unsigned int priority[]); 32extern void __init at91_init_interrupts(unsigned int priority[]);
34extern void __init at91x40_init_interrupts(unsigned int priority[]);
35extern void __init at91_aic_init(unsigned int priority[], 33extern void __init at91_aic_init(unsigned int priority[],
36 unsigned int ext_irq_mask); 34 unsigned int ext_irq_mask);
37extern int __init at91_aic_of_init(struct device_node *node, 35extern int __init at91_aic_of_init(struct device_node *node,
@@ -50,7 +48,6 @@ extern void at91rm9200_ioremap_st(u32 addr);
50extern void at91rm9200_timer_init(void); 48extern void at91rm9200_timer_init(void);
51extern void at91sam926x_ioremap_pit(u32 addr); 49extern void at91sam926x_ioremap_pit(u32 addr);
52extern void at91sam926x_pit_init(int irq); 50extern void at91sam926x_pit_init(int irq);
53extern void at91x40_timer_init(void);
54 51
55 /* Clocks */ 52 /* Clocks */
56#ifdef CONFIG_OLD_CLK_AT91 53#ifdef CONFIG_OLD_CLK_AT91
diff --git a/arch/arm/mach-at91/include/mach/at91_dbgu.h b/arch/arm/mach-at91/include/mach/at91_dbgu.h
index 3b5948566e52..42925e8f78e4 100644
--- a/arch/arm/mach-at91/include/mach/at91_dbgu.h
+++ b/arch/arm/mach-at91/include/mach/at91_dbgu.h
@@ -16,7 +16,6 @@
16#ifndef AT91_DBGU_H 16#ifndef AT91_DBGU_H
17#define AT91_DBGU_H 17#define AT91_DBGU_H
18 18
19#if !defined(CONFIG_ARCH_AT91X40)
20#define AT91_DBGU_CR (0x00) /* Control Register */ 19#define AT91_DBGU_CR (0x00) /* Control Register */
21#define AT91_DBGU_MR (0x04) /* Mode Register */ 20#define AT91_DBGU_MR (0x04) /* Mode Register */
22#define AT91_DBGU_IER (0x08) /* Interrupt Enable Register */ 21#define AT91_DBGU_IER (0x08) /* Interrupt Enable Register */
@@ -34,8 +33,6 @@
34#define AT91_DBGU_FNR (0x48) /* Force NTRST Register [SAM9 only] */ 33#define AT91_DBGU_FNR (0x48) /* Force NTRST Register [SAM9 only] */
35#define AT91_DBGU_FNTRST (1 << 0) /* Force NTRST */ 34#define AT91_DBGU_FNTRST (1 << 0) /* Force NTRST */
36 35
37#endif /* AT91_DBGU */
38
39/* 36/*
40 * Some AT91 parts that don't have full DEBUG units still support the ID 37 * Some AT91 parts that don't have full DEBUG units still support the ID
41 * and extensions register. 38 * and extensions register.
diff --git a/arch/arm/mach-at91/include/mach/at91x40.h b/arch/arm/mach-at91/include/mach/at91x40.h
deleted file mode 100644
index 38dca2bb027f..000000000000
--- a/arch/arm/mach-at91/include/mach/at91x40.h
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 * arch/arm/mach-at91/include/mach/at91x40.h
3 *
4 * (C) Copyright 2007, Greg Ungerer <gerg@snapgear.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 */
11
12#ifndef AT91X40_H
13#define AT91X40_H
14
15/*
16 * IRQ list.
17 */
18#define AT91X40_ID_USART0 2 /* USART port 0 */
19#define AT91X40_ID_USART1 3 /* USART port 1 */
20#define AT91X40_ID_TC0 4 /* Timer/Counter 0 */
21#define AT91X40_ID_TC1 5 /* Timer/Counter 1*/
22#define AT91X40_ID_TC2 6 /* Timer/Counter 2*/
23#define AT91X40_ID_WD 7 /* Watchdog? */
24#define AT91X40_ID_PIOA 8 /* Parallel IO Controller A */
25
26#define AT91X40_ID_IRQ0 16 /* External IRQ 0 */
27#define AT91X40_ID_IRQ1 17 /* External IRQ 1 */
28#define AT91X40_ID_IRQ2 18 /* External IRQ 2 */
29
30/*
31 * System Peripherals
32 */
33#define AT91_BASE_SYS 0xffc00000
34
35#define AT91_EBI 0xffe00000 /* External Bus Interface */
36#define AT91_SF 0xfff00000 /* Special Function */
37#define AT91_USART1 0xfffcc000 /* USART 1 */
38#define AT91_USART0 0xfffd0000 /* USART 0 */
39#define AT91_TC 0xfffe0000 /* Timer Counter */
40#define AT91_PIOA 0xffff0000 /* PIO Controller A */
41#define AT91_PS 0xffff4000 /* Power Save */
42#define AT91_WD 0xffff8000 /* Watchdog Timer */
43
44/*
45 * The AT91x40 series doesn't have a debug unit like the other AT91 parts.
46 * But it does have a chip identify register and extension ID, so define at
47 * least these here.
48 */
49#define AT91_DBGU_CIDR (AT91_SF + 0) /* CIDR in PS segment */
50#define AT91_DBGU_EXID (AT91_SF + 4) /* EXID in PS segment */
51
52/*
53 * Support defines for the simple Power Controller module.
54 */
55#define AT91_PS_CR (AT91_PS + 0) /* PS Control register */
56#define AT91_PS_CR_CPU (1 << 0) /* CPU clock disable bit */
57
58#define AT91X40_MASTER_CLOCK 40000000
59
60#endif /* AT91X40_H */
diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h
index b27e9ca65653..61914fb35f5d 100644
--- a/arch/arm/mach-at91/include/mach/cpu.h
+++ b/arch/arm/mach-at91/include/mach/cpu.h
@@ -62,7 +62,6 @@
62#define ARCH_EXID_SAMA5D43 0x00000003 62#define ARCH_EXID_SAMA5D43 0x00000003
63#define ARCH_EXID_SAMA5D44 0x00000004 63#define ARCH_EXID_SAMA5D44 0x00000004
64 64
65#define ARCH_FAMILY_AT91X92 0x09200000
66#define ARCH_FAMILY_AT91SAM9 0x01900000 65#define ARCH_FAMILY_AT91SAM9 0x01900000
67#define ARCH_FAMILY_AT91SAM9XE 0x02900000 66#define ARCH_FAMILY_AT91SAM9XE 0x02900000
68 67
diff --git a/arch/arm/mach-at91/include/mach/hardware.h b/arch/arm/mach-at91/include/mach/hardware.h
index c13797352688..a57c1c52a574 100644
--- a/arch/arm/mach-at91/include/mach/hardware.h
+++ b/arch/arm/mach-at91/include/mach/hardware.h
@@ -24,9 +24,6 @@
24/* sama5d4 */ 24/* sama5d4 */
25#define AT91_BASE_DBGU2 0xfc069000 25#define AT91_BASE_DBGU2 0xfc069000
26 26
27#if defined(CONFIG_ARCH_AT91X40)
28#include <mach/at91x40.h>
29#else
30#include <mach/at91rm9200.h> 27#include <mach/at91rm9200.h>
31#include <mach/at91sam9260.h> 28#include <mach/at91sam9260.h>
32#include <mach/at91sam9261.h> 29#include <mach/at91sam9261.h>
@@ -51,8 +48,6 @@
51 */ 48 */
52#define AT91_BASE_SYS 0xffffc000 49#define AT91_BASE_SYS 0xffffc000
53 50
54#endif
55
56/* 51/*
57 * On sama5d4 there is no system controller, we map some needed peripherals 52 * On sama5d4 there is no system controller, we map some needed peripherals
58 */ 53 */
diff --git a/arch/arm/mach-at91/include/mach/uncompress.h b/arch/arm/mach-at91/include/mach/uncompress.h
index acb2d890ad7e..4ebb609369e3 100644
--- a/arch/arm/mach-at91/include/mach/uncompress.h
+++ b/arch/arm/mach-at91/include/mach/uncompress.h
@@ -31,7 +31,6 @@
31 31
32void __iomem *at91_uart; 32void __iomem *at91_uart;
33 33
34#if !defined(CONFIG_ARCH_AT91X40)
35static const u32 uarts_rm9200[] = { 34static const u32 uarts_rm9200[] = {
36 AT91_BASE_DBGU0, 35 AT91_BASE_DBGU0,
37 AT91RM9200_BASE_US0, 36 AT91RM9200_BASE_US0,
@@ -188,12 +187,6 @@ static inline void arch_decomp_setup(void)
188 187
189 at91_uart = NULL; 188 at91_uart = NULL;
190} 189}
191#else
192static inline void arch_decomp_setup(void)
193{
194 at91_uart = NULL;
195}
196#endif
197 190
198/* 191/*
199 * The following code assumes the serial port has already been 192 * The following code assumes the serial port has already been
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
index 961079250b83..a78fbb7b13c9 100644
--- a/arch/arm/mach-at91/setup.c
+++ b/arch/arm/mach-at91/setup.c
@@ -418,7 +418,7 @@ void __init at91_ioremap_matrix(u32 base_addr)
418 panic(pr_fmt("Impossible to ioremap at91_matrix_base\n")); 418 panic(pr_fmt("Impossible to ioremap at91_matrix_base\n"));
419} 419}
420 420
421#if defined(CONFIG_OF) && !defined(CONFIG_ARCH_AT91X40) 421#if defined(CONFIG_OF)
422static struct of_device_id ramc_ids[] = { 422static struct of_device_id ramc_ids[] = {
423 { .compatible = "atmel,at91rm9200-sdramc", .data = at91rm9200_standby }, 423 { .compatible = "atmel,at91rm9200-sdramc", .data = at91rm9200_standby },
424 { .compatible = "atmel,at91sam9260-sdramc", .data = at91sam9_sdram_standby }, 424 { .compatible = "atmel,at91sam9260-sdramc", .data = at91sam9_sdram_standby },
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 94ae1798d48a..7e024f1344c6 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -1110,7 +1110,7 @@ config RTC_DRV_AT91RM9200
1110 1110
1111config RTC_DRV_AT91SAM9 1111config RTC_DRV_AT91SAM9
1112 tristate "AT91SAM9x/AT91CAP9 RTT as RTC" 1112 tristate "AT91SAM9x/AT91CAP9 RTT as RTC"
1113 depends on ARCH_AT91 && !(ARCH_AT91RM9200 || ARCH_AT91X40) 1113 depends on ARCH_AT91 && !ARCH_AT91RM9200
1114 help 1114 help
1115 RTC driver for the Atmel AT91SAM9x and AT91CAP9 internal RTT 1115 RTC driver for the Atmel AT91SAM9x and AT91CAP9 internal RTT
1116 (Real Time Timer). These timers are powered by the backup power 1116 (Real Time Timer). These timers are powered by the backup power