aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/atheros-2.6/files/arch
diff options
context:
space:
mode:
authorImre Kaloz <kaloz@openwrt.org>2007-02-19 22:33:06 +0000
committerImre Kaloz <kaloz@openwrt.org>2007-02-19 22:33:06 +0000
commit1d7bfc46eccc002136bc208ee60f1532dc231ffa (patch)
treecfd2732ef5add9c59464498229c8644a20b755e1 /target/linux/atheros-2.6/files/arch
parente32f19c986563ae9112b201c017e54f47be95dc0 (diff)
downloadupstream-1d7bfc46eccc002136bc208ee60f1532dc231ffa.tar.gz
upstream-1d7bfc46eccc002136bc208ee60f1532dc231ffa.tar.bz2
upstream-1d7bfc46eccc002136bc208ee60f1532dc231ffa.zip
autodetect flash width - thanks to Kestutis Kupciunas
SVN-Revision: 6327
Diffstat (limited to 'target/linux/atheros-2.6/files/arch')
-rw-r--r--target/linux/atheros-2.6/files/arch/mips/atheros/ar5312.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/target/linux/atheros-2.6/files/arch/mips/atheros/ar5312.c b/target/linux/atheros-2.6/files/arch/mips/atheros/ar5312.c
index 8404b882c2..384020b27e 100644
--- a/target/linux/atheros-2.6/files/arch/mips/atheros/ar5312.c
+++ b/target/linux/atheros-2.6/files/arch/mips/atheros/ar5312.c
@@ -215,6 +215,7 @@ int __init ar5312_init_devices(void)
struct ar531x_boarddata *bcfg;
char *radio, *c;
int dev = 0;
+ uint32_t fctl = 0;
if (!is_5312)
return 0;
@@ -253,6 +254,19 @@ int __init ar5312_init_devices(void)
ar5312_eth0_data.board_config = board_config;
ar5312_eth1_data.board_config = board_config;
+
+ /* fixup flash width; TODO: constants -> defines */
+ fctl = sysRegRead(AR531X_FLASHCTL) & 0x30000000;
+ switch (fctl) {
+ case 0x20000000:
+ ar5312_flash_data.width = 2;
+ break;
+ case 0x00000000:
+ default:
+ ar5312_flash_data.width = 1;
+ break;
+ }
+
ar5312_devs[dev++] = &ar5312_physmap_flash;
if (!memcmp(bcfg->enet0Mac, "\xff\xff\xff\xff\xff\xff", 6))