summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2007-02-12 16:28:56 +0100
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2007-04-27 13:44:14 +0200
commite3e7d8d4ea37b8372ee417452d03171c5dc55125 (patch)
tree247a899f472e5cf1a3f7467dda88a017bee134a6 /arch
parent92b728c147adb8c690b520304f4c9ee3eee43c21 (diff)
downloadlinux-3.10-e3e7d8d4ea37b8372ee417452d03171c5dc55125.tar.gz
linux-3.10-e3e7d8d4ea37b8372ee417452d03171c5dc55125.tar.bz2
linux-3.10-e3e7d8d4ea37b8372ee417452d03171c5dc55125.zip
[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/Kconfig26
1 files changed, 25 insertions, 1 deletions
diff --git a/arch/avr32/mach-at32ap/Kconfig b/arch/avr32/mach-at32ap/Kconfig
index d7497715cc0..eb307838457 100644
--- a/arch/avr32/mach-at32ap/Kconfig
+++ b/arch/avr32/mach-at32ap/Kconfig
@@ -2,6 +2,30 @@ if PLATFORM_AT32AP
menu "Atmel AVR32 AP options"
+choice
+ prompt "AT32AP7000 static memory bus width"
+ depends on CPU_AT32AP7000
+ default AP7000_16_BIT_SMC
+ help
+ Define the width of the AP7000 external static memory interface.
+ This is used to determine how to mangle the address and/or data
+ when doing little-endian port access.
+
+ The current code can only support a single external memory bus
+ width for all chip selects, excluding the flash (which is using
+ raw access and is thus not affected by any of this.)
+
+config AP7000_32_BIT_SMC
+ bool "32 bit"
+
+config AP7000_16_BIT_SMC
+ bool "16 bit"
+
+config AP7000_8_BIT_SMC
+ bool "8 bit"
+
+endchoice
+
endmenu
-endif
+endif # PLATFORM_AT32AP