diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-02-12 10:28:56 -0500 |
---|---|---|
committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-04-27 07:44:14 -0400 |
commit | e3e7d8d4ea37b8372ee417452d03171c5dc55125 (patch) | |
tree | 247a899f472e5cf1a3f7467dda88a017bee134a6 /arch | |
parent | 92b728c147adb8c690b520304f4c9ee3eee43c21 (diff) |
[AVR32] Make I/O access macros work with external devices
Fix the I/O access macros so that they work with externally connected
devices accessed in little-endian mode over any bus width:
* Use a set of macros to define I/O port- and memory operations
borrowed from MIPS.
* Allow subarchitecture to specify address- and data-mangling
* Implement at32ap-specific port mangling (with build-time
configurable bus width. Only one bus width at a time supported
for now.)
* Rewrite iowriteN and friends to use write[bwl] and friends
(not the __raw counterparts.)
This has been tested using pata_pcmcia to access a CompactFlash card
connected to the EBI (16-bit bus width.)
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/avr32/mach-at32ap/Kconfig | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/arch/avr32/mach-at32ap/Kconfig b/arch/avr32/mach-at32ap/Kconfig index d7497715cc02..eb307838457b 100644 --- a/arch/avr32/mach-at32ap/Kconfig +++ b/arch/avr32/mach-at32ap/Kconfig | |||
@@ -2,6 +2,30 @@ if PLATFORM_AT32AP | |||
2 | 2 | ||
3 | menu "Atmel AVR32 AP options" | 3 | menu "Atmel AVR32 AP options" |
4 | 4 | ||
5 | choice | ||
6 | prompt "AT32AP7000 static memory bus width" | ||
7 | depends on CPU_AT32AP7000 | ||
8 | default AP7000_16_BIT_SMC | ||
9 | help | ||
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 | ||
12 | when doing little-endian port access. | ||
13 | |||
14 | The current code can only support a single external memory bus | ||
15 | width for all chip selects, excluding the flash (which is using | ||
16 | raw access and is thus not affected by any of this.) | ||
17 | |||
18 | config AP7000_32_BIT_SMC | ||
19 | bool "32 bit" | ||
20 | |||
21 | config AP7000_16_BIT_SMC | ||
22 | bool "16 bit" | ||
23 | |||
24 | config AP7000_8_BIT_SMC | ||
25 | bool "8 bit" | ||
26 | |||
27 | endchoice | ||
28 | |||
5 | endmenu | 29 | endmenu |
6 | 30 | ||
7 | endif | 31 | endif # PLATFORM_AT32AP |