aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/at91rm9200_defconfig1
-rw-r--r--arch/arm/mach-at91/Kconfig91
-rw-r--r--arch/arm/mach-at91/Makefile25
-rw-r--r--arch/arm/mach-at91/include/mach/cpu.h28
-rw-r--r--arch/arm/mach-at91/pm.h2
-rw-r--r--arch/arm/mach-at91/pm_slowclock.S2
-rw-r--r--arch/arm/mach-at91/soc.h14
7 files changed, 101 insertions, 62 deletions
diff --git a/arch/arm/configs/at91rm9200_defconfig b/arch/arm/configs/at91rm9200_defconfig
index bbe4e1a1f5d8..d54e2acd3ab1 100644
--- a/arch/arm/configs/at91rm9200_defconfig
+++ b/arch/arm/configs/at91rm9200_defconfig
@@ -14,6 +14,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y
14# CONFIG_BLK_DEV_BSG is not set 14# CONFIG_BLK_DEV_BSG is not set
15# CONFIG_IOSCHED_CFQ is not set 15# CONFIG_IOSCHED_CFQ is not set
16CONFIG_ARCH_AT91=y 16CONFIG_ARCH_AT91=y
17CONFIG_ARCH_AT91RM9200=y
17CONFIG_MACH_ONEARM=y 18CONFIG_MACH_ONEARM=y
18CONFIG_ARCH_AT91RM9200DK=y 19CONFIG_ARCH_AT91RM9200DK=y
19CONFIG_MACH_AT91RM9200EK=y 20CONFIG_MACH_AT91RM9200EK=y
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 40e31c7daf08..98a42f3472d5 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -24,68 +24,66 @@ config SOC_AT91SAM9
24 24
25menu "Atmel AT91 System-on-Chip" 25menu "Atmel AT91 System-on-Chip"
26 26
27choice 27comment "Atmel AT91 Processor"
28 prompt "Atmel AT91 Processor"
29 28
30config ARCH_AT91RM9200 29config SOC_AT91SAM9
30 bool
31 select CPU_ARM926T
32 select AT91_SAM9_TIME
33 select AT91_SAM9_SMC
34
35config SOC_AT91RM9200
31 bool "AT91RM9200" 36 bool "AT91RM9200"
32 select CPU_ARM920T 37 select CPU_ARM920T
33 select GENERIC_CLOCKEVENTS 38 select GENERIC_CLOCKEVENTS
34 select HAVE_AT91_DBGU0 39 select HAVE_AT91_DBGU0
35 40
36config ARCH_AT91SAM9260 41config SOC_AT91SAM9260
37 bool "AT91SAM9260 or AT91SAM9XE" 42 bool "AT91SAM9260, AT91SAM9XE or AT91SAM9G20"
38 select SOC_AT91SAM9 43 select SOC_AT91SAM9
39 select HAVE_AT91_DBGU0 44 select HAVE_AT91_DBGU0
40 select HAVE_NET_MACB 45 select HAVE_NET_MACB
46 help
47 Select this if you are using one of Atmel's AT91SAM9260, AT91SAM9XE
48 or AT91SAM9G20 SoC.
41 49
42config ARCH_AT91SAM9261 50config SOC_AT91SAM9261
43 bool "AT91SAM9261" 51 bool "AT91SAM9261 or AT91SAM9G10"
44 select SOC_AT91SAM9
45 select HAVE_FB_ATMEL
46 select HAVE_AT91_DBGU0
47
48config ARCH_AT91SAM9G10
49 bool "AT91SAM9G10"
50 select SOC_AT91SAM9 52 select SOC_AT91SAM9
51 select HAVE_AT91_DBGU0 53 select HAVE_AT91_DBGU0
52 select HAVE_FB_ATMEL 54 select HAVE_FB_ATMEL
55 help
56 Select this if you are using one of Atmel's AT91SAM9261 or AT91SAM9G10 SoC.
53 57
54config ARCH_AT91SAM9263 58config SOC_AT91SAM9263
55 bool "AT91SAM9263" 59 bool "AT91SAM9263"
56 select SOC_AT91SAM9 60 select SOC_AT91SAM9
61 select HAVE_AT91_DBGU1
57 select HAVE_FB_ATMEL 62 select HAVE_FB_ATMEL
58 select HAVE_NET_MACB 63 select HAVE_NET_MACB
59 select HAVE_AT91_DBGU1
60 64
61config ARCH_AT91SAM9RL 65config SOC_AT91SAM9RL
62 bool "AT91SAM9RL" 66 bool "AT91SAM9RL"
63 select SOC_AT91SAM9 67 select SOC_AT91SAM9
64 select HAVE_FB_ATMEL
65 select HAVE_AT91_DBGU0 68 select HAVE_AT91_DBGU0
69 select HAVE_FB_ATMEL
66 70
67config ARCH_AT91SAM9G20 71config SOC_AT91SAM9G45
68 bool "AT91SAM9G20"
69 select SOC_AT91SAM9
70 select HAVE_AT91_DBGU0
71 select HAVE_NET_MACB
72
73config ARCH_AT91SAM9G45
74 bool "AT91SAM9G45 or AT91SAM9M10 families" 72 bool "AT91SAM9G45 or AT91SAM9M10 families"
75 select SOC_AT91SAM9 73 select SOC_AT91SAM9
74 select HAVE_AT91_DBGU1
76 select HAVE_FB_ATMEL 75 select HAVE_FB_ATMEL
77 select HAVE_NET_MACB 76 select HAVE_NET_MACB
78 select HAVE_AT91_DBGU1
79 help 77 help
80 Select this if you are using one of Atmel's AT91SAM9G45 family SoC. 78 Select this if you are using one of Atmel's AT91SAM9G45 family SoC.
81 This support covers AT91SAM9G45, AT91SAM9G46, AT91SAM9M10 and AT91SAM9M11. 79 This support covers AT91SAM9G45, AT91SAM9G46, AT91SAM9M10 and AT91SAM9M11.
82 80
83config ARCH_AT91SAM9X5 81config SOC_AT91SAM9X5
84 bool "AT91SAM9x5 family" 82 bool "AT91SAM9x5 family"
85 select SOC_AT91SAM9 83 select SOC_AT91SAM9
84 select HAVE_AT91_DBGU0
86 select HAVE_FB_ATMEL 85 select HAVE_FB_ATMEL
87 select HAVE_NET_MACB 86 select HAVE_NET_MACB
88 select HAVE_AT91_DBGU0
89 help 87 help
90 Select this if you are using one of Atmel's AT91SAM9x5 family SoC. 88 Select this if you are using one of Atmel's AT91SAM9x5 family SoC.
91 This means that your SAM9 name finishes with a '5' (except if it is 89 This means that your SAM9 name finishes with a '5' (except if it is
@@ -93,8 +91,47 @@ config ARCH_AT91SAM9X5
93 This support covers AT91SAM9G15, AT91SAM9G25, AT91SAM9X25, AT91SAM9G35 91 This support covers AT91SAM9G15, AT91SAM9G25, AT91SAM9X25, AT91SAM9G35
94 and AT91SAM9X35. 92 and AT91SAM9X35.
95 93
94choice
95 prompt "Atmel AT91 Processor Devices for non DT boards"
96
97config ARCH_AT91_NONE
98 bool "None"
99
100config ARCH_AT91RM9200
101 bool "AT91RM9200"
102 select SOC_AT91RM9200
103
104config ARCH_AT91SAM9260
105 bool "AT91SAM9260 or AT91SAM9XE"
106 select SOC_AT91SAM9260
107
108config ARCH_AT91SAM9261
109 bool "AT91SAM9261"
110 select SOC_AT91SAM9261
111
112config ARCH_AT91SAM9G10
113 bool "AT91SAM9G10"
114 select SOC_AT91SAM9261
115
116config ARCH_AT91SAM9263
117 bool "AT91SAM9263"
118 select SOC_AT91SAM9263
119
120config ARCH_AT91SAM9RL
121 bool "AT91SAM9RL"
122 select SOC_AT91SAM9RL
123
124config ARCH_AT91SAM9G20
125 bool "AT91SAM9G20"
126 select SOC_AT91SAM9260
127
128config ARCH_AT91SAM9G45
129 bool "AT91SAM9G45"
130 select SOC_AT91SAM9G45
131
96config ARCH_AT91X40 132config ARCH_AT91X40
97 bool "AT91x40" 133 bool "AT91x40"
134 depends on !MMU
98 select ARCH_USES_GETTIMEOFFSET 135 select ARCH_USES_GETTIMEOFFSET
99 136
100endchoice 137endchoice
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index d97d0f4f4112..79d0f60af0b2 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -13,15 +13,22 @@ obj-$(CONFIG_AT91_SAM9G45_RESET) += at91sam9g45_reset.o
13obj-$(CONFIG_SOC_AT91SAM9) += at91sam926x_time.o sam9_smc.o 13obj-$(CONFIG_SOC_AT91SAM9) += at91sam926x_time.o sam9_smc.o
14 14
15# CPU-specific support 15# CPU-specific support
16obj-$(CONFIG_ARCH_AT91RM9200) += at91rm9200.o at91rm9200_time.o at91rm9200_devices.o 16obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o at91rm9200_time.o
17obj-$(CONFIG_ARCH_AT91SAM9260) += at91sam9260.o at91sam9260_devices.o 17obj-$(CONFIG_SOC_AT91SAM9260) += at91sam9260.o
18obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261.o at91sam9261_devices.o 18obj-$(CONFIG_SOC_AT91SAM9261) += at91sam9261.o
19obj-$(CONFIG_ARCH_AT91SAM9G10) += at91sam9261.o at91sam9261_devices.o 19obj-$(CONFIG_SOC_AT91SAM9263) += at91sam9263.o
20obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam9263_devices.o 20obj-$(CONFIG_SOC_AT91SAM9G45) += at91sam9g45.o
21obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam9rl_devices.o 21obj-$(CONFIG_SOC_AT91SAM9X5) += at91sam9x5.o
22obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam9260_devices.o 22obj-$(CONFIG_SOC_AT91SAM9RL) += at91sam9rl.o
23obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam9g45_devices.o 23
24obj-$(CONFIG_ARCH_AT91SAM9X5) += at91sam9x5.o 24obj-$(CONFIG_ARCH_AT91RM9200) += at91rm9200_devices.o
25obj-$(CONFIG_ARCH_AT91SAM9260) += at91sam9260_devices.o
26obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261_devices.o
27obj-$(CONFIG_ARCH_AT91SAM9G10) += at91sam9261_devices.o
28obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263_devices.o
29obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl_devices.o
30obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260_devices.o
31obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45_devices.o
25obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o 32obj-$(CONFIG_ARCH_AT91X40) += at91x40.o at91x40_time.o
26 33
27# AT91RM9200 board-specific support 34# AT91RM9200 board-specific support
diff --git a/arch/arm/mach-at91/include/mach/cpu.h b/arch/arm/mach-at91/include/mach/cpu.h
index 0118c3338552..73d2fd209ce4 100644
--- a/arch/arm/mach-at91/include/mach/cpu.h
+++ b/arch/arm/mach-at91/include/mach/cpu.h
@@ -54,6 +54,7 @@
54#define ARCH_REVISON_9200_BGA (0 << 0) 54#define ARCH_REVISON_9200_BGA (0 << 0)
55#define ARCH_REVISON_9200_PQFP (1 << 0) 55#define ARCH_REVISON_9200_PQFP (1 << 0)
56 56
57#ifndef __ASSEMBLY__
57enum at91_soc_type { 58enum at91_soc_type {
58 /* 920T */ 59 /* 920T */
59 AT91_SOC_RM9200, 60 AT91_SOC_RM9200,
@@ -106,7 +107,7 @@ static inline int at91_soc_is_detected(void)
106 return at91_soc_initdata.type != AT91_SOC_NONE; 107 return at91_soc_initdata.type != AT91_SOC_NONE;
107} 108}
108 109
109#ifdef CONFIG_ARCH_AT91RM9200 110#ifdef CONFIG_SOC_AT91RM9200
110#define cpu_is_at91rm9200() (at91_soc_initdata.type == AT91_SOC_RM9200) 111#define cpu_is_at91rm9200() (at91_soc_initdata.type == AT91_SOC_RM9200)
111#define cpu_is_at91rm9200_bga() (at91_soc_initdata.subtype == AT91_SOC_RM9200_BGA) 112#define cpu_is_at91rm9200_bga() (at91_soc_initdata.subtype == AT91_SOC_RM9200_BGA)
112#define cpu_is_at91rm9200_pqfp() (at91_soc_initdata.subtype == AT91_SOC_RM9200_PQFP) 113#define cpu_is_at91rm9200_pqfp() (at91_soc_initdata.subtype == AT91_SOC_RM9200_PQFP)
@@ -116,45 +117,37 @@ static inline int at91_soc_is_detected(void)
116#define cpu_is_at91rm9200_pqfp() (0) 117#define cpu_is_at91rm9200_pqfp() (0)
117#endif 118#endif
118 119
119#ifdef CONFIG_ARCH_AT91SAM9260 120#ifdef CONFIG_SOC_AT91SAM9260
120#define cpu_is_at91sam9xe() (at91_soc_initdata.subtype == AT91_SOC_SAM9XE) 121#define cpu_is_at91sam9xe() (at91_soc_initdata.subtype == AT91_SOC_SAM9XE)
121#define cpu_is_at91sam9260() (at91_soc_initdata.type == AT91_SOC_SAM9260) 122#define cpu_is_at91sam9260() (at91_soc_initdata.type == AT91_SOC_SAM9260)
123#define cpu_is_at91sam9g20() (at91_soc_initdata.type == AT91_SOC_SAM9G20)
122#else 124#else
123#define cpu_is_at91sam9xe() (0) 125#define cpu_is_at91sam9xe() (0)
124#define cpu_is_at91sam9260() (0) 126#define cpu_is_at91sam9260() (0)
125#endif
126
127#ifdef CONFIG_ARCH_AT91SAM9G20
128#define cpu_is_at91sam9g20() (at91_soc_initdata.type == AT91_SOC_SAM9G20)
129#else
130#define cpu_is_at91sam9g20() (0) 127#define cpu_is_at91sam9g20() (0)
131#endif 128#endif
132 129
133#ifdef CONFIG_ARCH_AT91SAM9261 130#ifdef CONFIG_SOC_AT91SAM9261
134#define cpu_is_at91sam9261() (at91_soc_initdata.type == AT91_SOC_SAM9261) 131#define cpu_is_at91sam9261() (at91_soc_initdata.type == AT91_SOC_SAM9261)
135#else
136#define cpu_is_at91sam9261() (0)
137#endif
138
139#ifdef CONFIG_ARCH_AT91SAM9G10
140#define cpu_is_at91sam9g10() (at91_soc_initdata.type == AT91_SOC_SAM9G10) 132#define cpu_is_at91sam9g10() (at91_soc_initdata.type == AT91_SOC_SAM9G10)
141#else 133#else
134#define cpu_is_at91sam9261() (0)
142#define cpu_is_at91sam9g10() (0) 135#define cpu_is_at91sam9g10() (0)
143#endif 136#endif
144 137
145#ifdef CONFIG_ARCH_AT91SAM9263 138#ifdef CONFIG_SOC_AT91SAM9263
146#define cpu_is_at91sam9263() (at91_soc_initdata.type == AT91_SOC_SAM9263) 139#define cpu_is_at91sam9263() (at91_soc_initdata.type == AT91_SOC_SAM9263)
147#else 140#else
148#define cpu_is_at91sam9263() (0) 141#define cpu_is_at91sam9263() (0)
149#endif 142#endif
150 143
151#ifdef CONFIG_ARCH_AT91SAM9RL 144#ifdef CONFIG_SOC_AT91SAM9RL
152#define cpu_is_at91sam9rl() (at91_soc_initdata.type == AT91_SOC_SAM9RL) 145#define cpu_is_at91sam9rl() (at91_soc_initdata.type == AT91_SOC_SAM9RL)
153#else 146#else
154#define cpu_is_at91sam9rl() (0) 147#define cpu_is_at91sam9rl() (0)
155#endif 148#endif
156 149
157#ifdef CONFIG_ARCH_AT91SAM9G45 150#ifdef CONFIG_SOC_AT91SAM9G45
158#define cpu_is_at91sam9g45() (at91_soc_initdata.type == AT91_SOC_SAM9G45) 151#define cpu_is_at91sam9g45() (at91_soc_initdata.type == AT91_SOC_SAM9G45)
159#define cpu_is_at91sam9g45es() (at91_soc_initdata.subtype == AT91_SOC_SAM9G45ES) 152#define cpu_is_at91sam9g45es() (at91_soc_initdata.subtype == AT91_SOC_SAM9G45ES)
160#define cpu_is_at91sam9m10() (at91_soc_initdata.subtype == AT91_SOC_SAM9M10) 153#define cpu_is_at91sam9m10() (at91_soc_initdata.subtype == AT91_SOC_SAM9M10)
@@ -168,7 +161,7 @@ static inline int at91_soc_is_detected(void)
168#define cpu_is_at91sam9m11() (0) 161#define cpu_is_at91sam9m11() (0)
169#endif 162#endif
170 163
171#ifdef CONFIG_ARCH_AT91SAM9X5 164#ifdef CONFIG_SOC_AT91SAM9X5
172#define cpu_is_at91sam9x5() (at91_soc_initdata.type == AT91_SOC_SAM9X5) 165#define cpu_is_at91sam9x5() (at91_soc_initdata.type == AT91_SOC_SAM9X5)
173#define cpu_is_at91sam9g15() (at91_soc_initdata.subtype == AT91_SOC_SAM9G15) 166#define cpu_is_at91sam9g15() (at91_soc_initdata.subtype == AT91_SOC_SAM9G15)
174#define cpu_is_at91sam9g35() (at91_soc_initdata.subtype == AT91_SOC_SAM9G35) 167#define cpu_is_at91sam9g35() (at91_soc_initdata.subtype == AT91_SOC_SAM9G35)
@@ -189,5 +182,6 @@ static inline int at91_soc_is_detected(void)
189 * definitions may reduce clutter in common drivers. 182 * definitions may reduce clutter in common drivers.
190 */ 183 */
191#define cpu_is_at32ap7000() (0) 184#define cpu_is_at32ap7000() (0)
185#endif /* __ASSEMBLY__ */
192 186
193#endif /* __MACH_CPU_H__ */ 187#endif /* __MACH_CPU_H__ */
diff --git a/arch/arm/mach-at91/pm.h b/arch/arm/mach-at91/pm.h
index 1b4865e7571d..38f467c6b710 100644
--- a/arch/arm/mach-at91/pm.h
+++ b/arch/arm/mach-at91/pm.h
@@ -70,7 +70,7 @@ static inline void at91sam9g45_standby(void)
70 at91_ramc_write(1, AT91_DDRSDRC_LPR, saved_lpr1); 70 at91_ramc_write(1, AT91_DDRSDRC_LPR, saved_lpr1);
71} 71}
72 72
73#ifdef CONFIG_ARCH_AT91SAM9263 73#ifdef CONFIG_SOC_AT91SAM9263
74/* 74/*
75 * FIXME either or both the SDRAM controllers (EB0, EB1) might be in use; 75 * FIXME either or both the SDRAM controllers (EB0, EB1) might be in use;
76 * handle those cases both here and in the Suspend-To-RAM support. 76 * handle those cases both here and in the Suspend-To-RAM support.
diff --git a/arch/arm/mach-at91/pm_slowclock.S b/arch/arm/mach-at91/pm_slowclock.S
index db5452123f17..098c28ddf025 100644
--- a/arch/arm/mach-at91/pm_slowclock.S
+++ b/arch/arm/mach-at91/pm_slowclock.S
@@ -18,7 +18,7 @@
18#include <mach/at91_ramc.h> 18#include <mach/at91_ramc.h>
19 19
20 20
21#ifdef CONFIG_ARCH_AT91SAM9263 21#ifdef CONFIG_SOC_AT91SAM9263
22/* 22/*
23 * FIXME either or both the SDRAM controllers (EB0, EB1) might be in use; 23 * FIXME either or both the SDRAM controllers (EB0, EB1) might be in use;
24 * handle those cases both here and in the Suspend-To-RAM support. 24 * handle those cases both here and in the Suspend-To-RAM support.
diff --git a/arch/arm/mach-at91/soc.h b/arch/arm/mach-at91/soc.h
index 5db4aa45404a..683dddfd8b13 100644
--- a/arch/arm/mach-at91/soc.h
+++ b/arch/arm/mach-at91/soc.h
@@ -26,30 +26,30 @@ static inline int at91_soc_is_enabled(void)
26 return at91_boot_soc.init != NULL; 26 return at91_boot_soc.init != NULL;
27} 27}
28 28
29#if !defined(CONFIG_ARCH_AT91RM9200) 29#if !defined(CONFIG_SOC_AT91RM9200)
30#define at91rm9200_soc at91_boot_soc 30#define at91rm9200_soc at91_boot_soc
31#endif 31#endif
32 32
33#if !(defined(CONFIG_ARCH_AT91SAM9260) || defined(CONFIG_ARCH_AT91SAM9G20)) 33#if !defined(CONFIG_SOC_AT91SAM9260)
34#define at91sam9260_soc at91_boot_soc 34#define at91sam9260_soc at91_boot_soc
35#endif 35#endif
36 36
37#if !(defined(CONFIG_ARCH_AT91SAM9261) || defined(CONFIG_ARCH_AT91SAM9G10)) 37#if !defined(CONFIG_SOC_AT91SAM9261)
38#define at91sam9261_soc at91_boot_soc 38#define at91sam9261_soc at91_boot_soc
39#endif 39#endif
40 40
41#if !defined(CONFIG_ARCH_AT91SAM9263) 41#if !defined(CONFIG_SOC_AT91SAM9263)
42#define at91sam9263_soc at91_boot_soc 42#define at91sam9263_soc at91_boot_soc
43#endif 43#endif
44 44
45#if !defined(CONFIG_ARCH_AT91SAM9G45) 45#if !defined(CONFIG_SOC_AT91SAM9G45)
46#define at91sam9g45_soc at91_boot_soc 46#define at91sam9g45_soc at91_boot_soc
47#endif 47#endif
48 48
49#if !defined(CONFIG_ARCH_AT91SAM9RL) 49#if !defined(CONFIG_SOC_AT91SAM9RL)
50#define at91sam9rl_soc at91_boot_soc 50#define at91sam9rl_soc at91_boot_soc
51#endif 51#endif
52 52
53#if !defined(CONFIG_ARCH_AT91SAM9X5) 53#if !defined(CONFIG_SOC_AT91SAM9X5)
54#define at91sam9x5_soc at91_boot_soc 54#define at91sam9x5_soc at91_boot_soc
55#endif 55#endif