diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-10-29 10:28:07 -0400 |
---|---|---|
committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-01-25 02:31:41 -0500 |
commit | 438ff3f3cc33833206a48492e9d6674e4e82bed8 (patch) | |
tree | 5159b43453c6a86949798af889d3cb0200818b74 /arch | |
parent | 281ef58ccf62eaa6c4e4b7e4c0a3ee6b52e84e5b (diff) |
[AVR32] Add support for AT32AP7001 and AT32AP7002
These are derivatives of the AT32AP7000 chip, which means that most of
the code stays the same. Rename a few files, functions, definitions
and config symbols to reflect that they apply to all AP700x chips, and
exclude some platform devices from chips where they aren't present.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/avr32/Kconfig | 21 | ||||
-rw-r--r-- | arch/avr32/Makefile | 2 | ||||
-rw-r--r-- | arch/avr32/boards/atngw100/setup.c | 2 | ||||
-rw-r--r-- | arch/avr32/configs/atngw100_defconfig | 9 | ||||
-rw-r--r-- | arch/avr32/configs/atstk1002_defconfig | 8 | ||||
-rw-r--r-- | arch/avr32/mach-at32ap/Kconfig | 12 | ||||
-rw-r--r-- | arch/avr32/mach-at32ap/Makefile | 4 | ||||
-rw-r--r-- | arch/avr32/mach-at32ap/at32ap700x.c (renamed from arch/avr32/mach-at32ap/at32ap7000.c) | 14 |
8 files changed, 51 insertions, 21 deletions
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 767a19cfa423..e37e6b92658d 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -84,13 +84,26 @@ config PLATFORM_AT32AP | |||
84 | select MMU | 84 | select MMU |
85 | select PERFORMANCE_COUNTERS | 85 | select PERFORMANCE_COUNTERS |
86 | 86 | ||
87 | config CPU_AT32AP700X | ||
88 | bool | ||
89 | select PLATFORM_AT32AP | ||
90 | |||
87 | choice | 91 | choice |
88 | prompt "AVR32 CPU type" | 92 | prompt "AVR32 CPU type" |
89 | default CPU_AT32AP7000 | 93 | default CPU_AT32AP7000 |
90 | 94 | ||
91 | config CPU_AT32AP7000 | 95 | config CPU_AT32AP7000 |
92 | bool "AT32AP7000" | 96 | bool "AT32AP7000" |
93 | select PLATFORM_AT32AP | 97 | select CPU_AT32AP700X |
98 | |||
99 | config CPU_AT32AP7001 | ||
100 | bool "AT32AP7001" | ||
101 | select CPU_AT32AP700X | ||
102 | |||
103 | config CPU_AT32AP7002 | ||
104 | bool "AT32AP7002" | ||
105 | select CPU_AT32AP700X | ||
106 | |||
94 | endchoice | 107 | endchoice |
95 | 108 | ||
96 | # | 109 | # |
@@ -126,15 +139,15 @@ source "arch/avr32/mach-at32ap/Kconfig" | |||
126 | 139 | ||
127 | config LOAD_ADDRESS | 140 | config LOAD_ADDRESS |
128 | hex | 141 | hex |
129 | default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP7000=y | 142 | default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y |
130 | 143 | ||
131 | config ENTRY_ADDRESS | 144 | config ENTRY_ADDRESS |
132 | hex | 145 | hex |
133 | default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP7000=y | 146 | default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y |
134 | 147 | ||
135 | config PHYS_OFFSET | 148 | config PHYS_OFFSET |
136 | hex | 149 | hex |
137 | default 0x10000000 if CPU_AT32AP7000=y | 150 | default 0x10000000 if CPU_AT32AP700X=y |
138 | 151 | ||
139 | source "kernel/Kconfig.preempt" | 152 | source "kernel/Kconfig.preempt" |
140 | 153 | ||
diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile index f75d52cd2a4c..17a3529341dd 100644 --- a/arch/avr32/Makefile +++ b/arch/avr32/Makefile | |||
@@ -16,7 +16,7 @@ KBUILD_AFLAGS += -mrelax -mno-pic | |||
16 | CFLAGS_MODULE += -mno-relax | 16 | CFLAGS_MODULE += -mno-relax |
17 | LDFLAGS_vmlinux += --relax | 17 | LDFLAGS_vmlinux += --relax |
18 | 18 | ||
19 | cpuflags-$(CONFIG_CPU_AT32AP7000) += -mcpu=ap7000 | 19 | cpuflags-$(CONFIG_PLATFORM_AT32AP) += -march=ap |
20 | 20 | ||
21 | KBUILD_CFLAGS += $(cpuflags-y) | 21 | KBUILD_CFLAGS += $(cpuflags-y) |
22 | KBUILD_AFLAGS += $(cpuflags-y) | 22 | KBUILD_AFLAGS += $(cpuflags-y) |
diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c index 52987c81d668..a398be284966 100644 --- a/arch/avr32/boards/atngw100/setup.c +++ b/arch/avr32/boards/atngw100/setup.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/io.h> | 20 | #include <asm/io.h> |
21 | #include <asm/setup.h> | 21 | #include <asm/setup.h> |
22 | 22 | ||
23 | #include <asm/arch/at32ap7000.h> | 23 | #include <asm/arch/at32ap700x.h> |
24 | #include <asm/arch/board.h> | 24 | #include <asm/arch/board.h> |
25 | #include <asm/arch/init.h> | 25 | #include <asm/arch/init.h> |
26 | #include <asm/arch/portmux.h> | 26 | #include <asm/arch/portmux.h> |
diff --git a/arch/avr32/configs/atngw100_defconfig b/arch/avr32/configs/atngw100_defconfig index b799a68ffd97..374c17bcc05e 100644 --- a/arch/avr32/configs/atngw100_defconfig +++ b/arch/avr32/configs/atngw100_defconfig | |||
@@ -111,7 +111,10 @@ CONFIG_SUBARCH_AVR32B=y | |||
111 | CONFIG_MMU=y | 111 | CONFIG_MMU=y |
112 | CONFIG_PERFORMANCE_COUNTERS=y | 112 | CONFIG_PERFORMANCE_COUNTERS=y |
113 | CONFIG_PLATFORM_AT32AP=y | 113 | CONFIG_PLATFORM_AT32AP=y |
114 | CONFIG_CPU_AT32AP700X=y | ||
114 | CONFIG_CPU_AT32AP7000=y | 115 | CONFIG_CPU_AT32AP7000=y |
116 | # CONFIG_CPU_AT32AP7001 is not set | ||
117 | # CONFIG_CPU_AT32AP7002 is not set | ||
115 | # CONFIG_BOARD_ATSTK1000 is not set | 118 | # CONFIG_BOARD_ATSTK1000 is not set |
116 | CONFIG_BOARD_ATNGW100=y | 119 | CONFIG_BOARD_ATNGW100=y |
117 | CONFIG_LOADER_U_BOOT=y | 120 | CONFIG_LOADER_U_BOOT=y |
@@ -119,9 +122,9 @@ CONFIG_LOADER_U_BOOT=y | |||
119 | # | 122 | # |
120 | # Atmel AVR32 AP options | 123 | # Atmel AVR32 AP options |
121 | # | 124 | # |
122 | # CONFIG_AP7000_32_BIT_SMC is not set | 125 | # CONFIG_AP700X_32_BIT_SMC is not set |
123 | CONFIG_AP7000_16_BIT_SMC=y | 126 | CONFIG_AP700X_16_BIT_SMC=y |
124 | # CONFIG_AP7000_8_BIT_SMC is not set | 127 | # CONFIG_AP700X_8_BIT_SMC is not set |
125 | CONFIG_LOAD_ADDRESS=0x10000000 | 128 | CONFIG_LOAD_ADDRESS=0x10000000 |
126 | CONFIG_ENTRY_ADDRESS=0x90000000 | 129 | CONFIG_ENTRY_ADDRESS=0x90000000 |
127 | CONFIG_PHYS_OFFSET=0x10000000 | 130 | CONFIG_PHYS_OFFSET=0x10000000 |
diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig index 3b977fdbaa78..7614c5465cd6 100644 --- a/arch/avr32/configs/atstk1002_defconfig +++ b/arch/avr32/configs/atstk1002_defconfig | |||
@@ -114,6 +114,8 @@ CONFIG_MMU=y | |||
114 | CONFIG_PERFORMANCE_COUNTERS=y | 114 | CONFIG_PERFORMANCE_COUNTERS=y |
115 | CONFIG_PLATFORM_AT32AP=y | 115 | CONFIG_PLATFORM_AT32AP=y |
116 | CONFIG_CPU_AT32AP7000=y | 116 | CONFIG_CPU_AT32AP7000=y |
117 | # CONFIG_CPU_AT32AP7001 is not set | ||
118 | # CONFIG_CPU_AT32AP7002 is not set | ||
117 | CONFIG_BOARD_ATSTK1002=y | 119 | CONFIG_BOARD_ATSTK1002=y |
118 | CONFIG_BOARD_ATSTK1000=y | 120 | CONFIG_BOARD_ATSTK1000=y |
119 | # CONFIG_BOARD_ATNGW100 is not set | 121 | # CONFIG_BOARD_ATNGW100 is not set |
@@ -122,9 +124,9 @@ CONFIG_LOADER_U_BOOT=y | |||
122 | # | 124 | # |
123 | # Atmel AVR32 AP options | 125 | # Atmel AVR32 AP options |
124 | # | 126 | # |
125 | # CONFIG_AP7000_32_BIT_SMC is not set | 127 | # CONFIG_AP700X_32_BIT_SMC is not set |
126 | CONFIG_AP7000_16_BIT_SMC=y | 128 | CONFIG_AP700X_16_BIT_SMC=y |
127 | # CONFIG_AP7000_8_BIT_SMC is not set | 129 | # CONFIG_AP700X_8_BIT_SMC is not set |
128 | CONFIG_LOAD_ADDRESS=0x10000000 | 130 | CONFIG_LOAD_ADDRESS=0x10000000 |
129 | CONFIG_ENTRY_ADDRESS=0x90000000 | 131 | CONFIG_ENTRY_ADDRESS=0x90000000 |
130 | CONFIG_PHYS_OFFSET=0x10000000 | 132 | CONFIG_PHYS_OFFSET=0x10000000 |
diff --git a/arch/avr32/mach-at32ap/Kconfig b/arch/avr32/mach-at32ap/Kconfig index eb307838457b..a7bbcc82058e 100644 --- a/arch/avr32/mach-at32ap/Kconfig +++ b/arch/avr32/mach-at32ap/Kconfig | |||
@@ -3,9 +3,9 @@ if PLATFORM_AT32AP | |||
3 | menu "Atmel AVR32 AP options" | 3 | menu "Atmel AVR32 AP options" |
4 | 4 | ||
5 | choice | 5 | choice |
6 | prompt "AT32AP7000 static memory bus width" | 6 | prompt "AT32AP700x static memory bus width" |
7 | depends on CPU_AT32AP7000 | 7 | depends on CPU_AT32AP700X |
8 | default AP7000_16_BIT_SMC | 8 | default AP700X_16_BIT_SMC |
9 | help | 9 | help |
10 | Define the width of the AP7000 external static memory interface. | 10 | Define the width of the AP7000 external static memory interface. |
11 | This is used to determine how to mangle the address and/or data | 11 | This is used to determine how to mangle the address and/or data |
@@ -15,13 +15,13 @@ choice | |||
15 | width for all chip selects, excluding the flash (which is using | 15 | width for all chip selects, excluding the flash (which is using |
16 | raw access and is thus not affected by any of this.) | 16 | raw access and is thus not affected by any of this.) |
17 | 17 | ||
18 | config AP7000_32_BIT_SMC | 18 | config AP700X_32_BIT_SMC |
19 | bool "32 bit" | 19 | bool "32 bit" |
20 | 20 | ||
21 | config AP7000_16_BIT_SMC | 21 | config AP700X_16_BIT_SMC |
22 | bool "16 bit" | 22 | bool "16 bit" |
23 | 23 | ||
24 | config AP7000_8_BIT_SMC | 24 | config AP700X_8_BIT_SMC |
25 | bool "8 bit" | 25 | bool "8 bit" |
26 | 26 | ||
27 | endchoice | 27 | endchoice |
diff --git a/arch/avr32/mach-at32ap/Makefile b/arch/avr32/mach-at32ap/Makefile index a8b445046e3e..5e9f8217befc 100644 --- a/arch/avr32/mach-at32ap/Makefile +++ b/arch/avr32/mach-at32ap/Makefile | |||
@@ -1,4 +1,4 @@ | |||
1 | obj-y += at32ap.o clock.o intc.o extint.o pio.o hsmc.o | 1 | obj-y += at32ap.o clock.o intc.o extint.o pio.o hsmc.o |
2 | obj-$(CONFIG_CPU_AT32AP7000) += at32ap7000.o | 2 | obj-$(CONFIG_CPU_AT32AP700X) += at32ap700x.o |
3 | obj-$(CONFIG_CPU_AT32AP7000) += time-tc.o | 3 | obj-$(CONFIG_CPU_AT32AP700X) += time-tc.o |
4 | obj-$(CONFIG_CPU_FREQ_AT32AP) += cpufreq.o | 4 | obj-$(CONFIG_CPU_FREQ_AT32AP) += cpufreq.o |
diff --git a/arch/avr32/mach-at32ap/at32ap7000.c b/arch/avr32/mach-at32ap/at32ap700x.c index 7c4388f4f17f..9386e1f82fb8 100644 --- a/arch/avr32/mach-at32ap/at32ap7000.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
16 | 16 | ||
17 | #include <asm/arch/at32ap7000.h> | 17 | #include <asm/arch/at32ap700x.h> |
18 | #include <asm/arch/board.h> | 18 | #include <asm/arch/board.h> |
19 | #include <asm/arch/portmux.h> | 19 | #include <asm/arch/portmux.h> |
20 | 20 | ||
@@ -803,6 +803,7 @@ void __init at32_setup_serial_console(unsigned int usart_id) | |||
803 | * Ethernet | 803 | * Ethernet |
804 | * -------------------------------------------------------------------- */ | 804 | * -------------------------------------------------------------------- */ |
805 | 805 | ||
806 | #ifdef CONFIG_CPU_AT32AP7000 | ||
806 | static struct eth_platform_data macb0_data; | 807 | static struct eth_platform_data macb0_data; |
807 | static struct resource macb0_resource[] = { | 808 | static struct resource macb0_resource[] = { |
808 | PBMEM(0xfff01800), | 809 | PBMEM(0xfff01800), |
@@ -890,6 +891,7 @@ at32_add_device_eth(unsigned int id, struct eth_platform_data *data) | |||
890 | 891 | ||
891 | return pdev; | 892 | return pdev; |
892 | } | 893 | } |
894 | #endif | ||
893 | 895 | ||
894 | /* -------------------------------------------------------------------- | 896 | /* -------------------------------------------------------------------- |
895 | * SPI | 897 | * SPI |
@@ -1064,6 +1066,7 @@ err_add_resources: | |||
1064 | /* -------------------------------------------------------------------- | 1066 | /* -------------------------------------------------------------------- |
1065 | * LCDC | 1067 | * LCDC |
1066 | * -------------------------------------------------------------------- */ | 1068 | * -------------------------------------------------------------------- */ |
1069 | #if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7002) | ||
1067 | static struct atmel_lcdfb_info atmel_lcdfb0_data; | 1070 | static struct atmel_lcdfb_info atmel_lcdfb0_data; |
1068 | static struct resource atmel_lcdfb0_resource[] = { | 1071 | static struct resource atmel_lcdfb0_resource[] = { |
1069 | { | 1072 | { |
@@ -1179,6 +1182,7 @@ err_dup_modedb: | |||
1179 | kfree(monspecs); | 1182 | kfree(monspecs); |
1180 | return NULL; | 1183 | return NULL; |
1181 | } | 1184 | } |
1185 | #endif | ||
1182 | 1186 | ||
1183 | /* -------------------------------------------------------------------- | 1187 | /* -------------------------------------------------------------------- |
1184 | * SSC | 1188 | * SSC |
@@ -1332,6 +1336,7 @@ out_free_pdev: | |||
1332 | /* -------------------------------------------------------------------- | 1336 | /* -------------------------------------------------------------------- |
1333 | * IDE / CompactFlash | 1337 | * IDE / CompactFlash |
1334 | * -------------------------------------------------------------------- */ | 1338 | * -------------------------------------------------------------------- */ |
1339 | #if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7001) | ||
1335 | static struct resource at32_smc_cs4_resource[] __initdata = { | 1340 | static struct resource at32_smc_cs4_resource[] __initdata = { |
1336 | { | 1341 | { |
1337 | .start = 0x04000000, | 1342 | .start = 0x04000000, |
@@ -1464,6 +1469,7 @@ fail: | |||
1464 | platform_device_put(pdev); | 1469 | platform_device_put(pdev); |
1465 | return NULL; | 1470 | return NULL; |
1466 | } | 1471 | } |
1472 | #endif | ||
1467 | 1473 | ||
1468 | /* -------------------------------------------------------------------- | 1474 | /* -------------------------------------------------------------------- |
1469 | * AC97C | 1475 | * AC97C |
@@ -1639,16 +1645,20 @@ struct clk *at32_clock_list[] = { | |||
1639 | &atmel_usart1_usart, | 1645 | &atmel_usart1_usart, |
1640 | &atmel_usart2_usart, | 1646 | &atmel_usart2_usart, |
1641 | &atmel_usart3_usart, | 1647 | &atmel_usart3_usart, |
1648 | #if defined(CONFIG_CPU_AT32AP7000) | ||
1642 | &macb0_hclk, | 1649 | &macb0_hclk, |
1643 | &macb0_pclk, | 1650 | &macb0_pclk, |
1644 | &macb1_hclk, | 1651 | &macb1_hclk, |
1645 | &macb1_pclk, | 1652 | &macb1_pclk, |
1653 | #endif | ||
1646 | &atmel_spi0_spi_clk, | 1654 | &atmel_spi0_spi_clk, |
1647 | &atmel_spi1_spi_clk, | 1655 | &atmel_spi1_spi_clk, |
1648 | &atmel_twi0_pclk, | 1656 | &atmel_twi0_pclk, |
1649 | &atmel_mci0_pclk, | 1657 | &atmel_mci0_pclk, |
1658 | #if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7002) | ||
1650 | &atmel_lcdfb0_hck1, | 1659 | &atmel_lcdfb0_hck1, |
1651 | &atmel_lcdfb0_pixclk, | 1660 | &atmel_lcdfb0_pixclk, |
1661 | #endif | ||
1652 | &ssc0_pclk, | 1662 | &ssc0_pclk, |
1653 | &ssc1_pclk, | 1663 | &ssc1_pclk, |
1654 | &ssc2_pclk, | 1664 | &ssc2_pclk, |
@@ -1697,7 +1707,9 @@ void __init at32_clock_init(void) | |||
1697 | genclk_init_parent(&gclk2); | 1707 | genclk_init_parent(&gclk2); |
1698 | genclk_init_parent(&gclk3); | 1708 | genclk_init_parent(&gclk3); |
1699 | genclk_init_parent(&gclk4); | 1709 | genclk_init_parent(&gclk4); |
1710 | #if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7002) | ||
1700 | genclk_init_parent(&atmel_lcdfb0_pixclk); | 1711 | genclk_init_parent(&atmel_lcdfb0_pixclk); |
1712 | #endif | ||
1701 | genclk_init_parent(&abdac0_sample_clk); | 1713 | genclk_init_parent(&abdac0_sample_clk); |
1702 | 1714 | ||
1703 | /* | 1715 | /* |