diff options
| author | Marian Balakowicz <m8@semihalf.com> | 2008-02-21 17:18:01 +0100 | 
|---|---|---|
| committer | Marian Balakowicz <m8@semihalf.com> | 2008-02-21 17:18:01 +0100 | 
| commit | 20c93959330aba8b5bbdbfde1ef319e99eba235d (patch) | |
| tree | ef82297e3aeb904f94584e6d136fac55ec32c317 /drivers/mtd/dataflash.c | |
| parent | 5cf746c303710329f8040d9c62ee354313e3e91f (diff) | |
| parent | 928d1d77f8623c120d8763e20e1ca58df9c5c4c6 (diff) | |
| download | olio-uboot-2014.01-20c93959330aba8b5bbdbfde1ef319e99eba235d.tar.xz olio-uboot-2014.01-20c93959330aba8b5bbdbfde1ef319e99eba235d.zip | |
Merge branch 'master' of /home/git/u-boot
Diffstat (limited to 'drivers/mtd/dataflash.c')
| -rw-r--r-- | drivers/mtd/dataflash.c | 38 | 
1 files changed, 22 insertions, 16 deletions
| diff --git a/drivers/mtd/dataflash.c b/drivers/mtd/dataflash.c index 91903c8c8..36c99a049 100644 --- a/drivers/mtd/dataflash.c +++ b/drivers/mtd/dataflash.c @@ -26,24 +26,30 @@  AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];  static AT91S_DataFlash DataFlashInst; +struct dataflash_addr { +	unsigned long addr; +	int cs; +}; +  #ifdef CONFIG_AT91SAM9260EK -int cs[][CFG_MAX_DATAFLASH_BANKS] = { +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {  	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */  	{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}  }; -#elif defined(CONFIG_AT91SAM9263EK) -int cs[][CFG_MAX_DATAFLASH_BANKS] = { -	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0}	/* Logical adress, CS */ +#elif defined(CONFIG_AT91SAM9263EK) || defined(CONFIG_AT91CAP9ADK) +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = { +	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */  };  #else -int cs[][CFG_MAX_DATAFLASH_BANKS] = { +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {  	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */  	{CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}  };  #endif  /*define the area offsets*/ -#if defined(CONFIG_AT91SAM9261EK) || defined(CONFIG_AT91SAM9260EK) || defined(CONFIG_AT91SAM9263EK) +#if defined(CONFIG_AT91SAM9261EK) || defined(CONFIG_AT91SAM9260EK) || \ +	defined(CONFIG_AT91SAM9263EK) || defined(CONFIG_AT91CAP9ADK)  #if	defined(CONFIG_NEW_PARTITION)  dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {  	{0x00000000,	0x00003FFF, 	FLAG_PROTECT_SET,	0,    		"Bootstrap"},  	/* ROM code */ @@ -114,7 +120,7 @@ int AT91F_DataflashInit (void)  		dataflash_info[i].Desc.state = IDLE;  		dataflash_info[i].id = 0;  		dataflash_info[i].Device.pages_number = 0; -		dfcode = AT91F_DataflashProbe (cs[i][1], +		dfcode = AT91F_DataflashProbe (cs[i].cs,  				&dataflash_info[i].Desc);  		switch (dfcode) { @@ -123,9 +129,9 @@ int AT91F_DataflashInit (void)  			dataflash_info[i].Device.pages_size = 528;  			dataflash_info[i].Device.page_offset = 10;  			dataflash_info[i].Device.byte_mask = 0x300; -			dataflash_info[i].Device.cs = cs[i][1]; +			dataflash_info[i].Device.cs = cs[i].cs;  			dataflash_info[i].Desc.DataFlash_state = IDLE; -			dataflash_info[i].logical_address = cs[i][0]; +			dataflash_info[i].logical_address = cs[i].addr;  			dataflash_info[i].id = dfcode;  			found[i] += dfcode;;  			break; @@ -135,9 +141,9 @@ int AT91F_DataflashInit (void)  			dataflash_info[i].Device.pages_size = 528;  			dataflash_info[i].Device.page_offset = 10;  			dataflash_info[i].Device.byte_mask = 0x300; -			dataflash_info[i].Device.cs = cs[i][1]; +			dataflash_info[i].Device.cs = cs[i].cs;  			dataflash_info[i].Desc.DataFlash_state = IDLE; -			dataflash_info[i].logical_address = cs[i][0]; +			dataflash_info[i].logical_address = cs[i].addr;  			dataflash_info[i].id = dfcode;  			found[i] += dfcode;;  			break; @@ -147,9 +153,9 @@ int AT91F_DataflashInit (void)  			dataflash_info[i].Device.pages_size = 1056;  			dataflash_info[i].Device.page_offset = 11;  			dataflash_info[i].Device.byte_mask = 0x700; -			dataflash_info[i].Device.cs = cs[i][1]; +			dataflash_info[i].Device.cs = cs[i].cs;  			dataflash_info[i].Desc.DataFlash_state = IDLE; -			dataflash_info[i].logical_address = cs[i][0]; +			dataflash_info[i].logical_address = cs[i].addr;  			dataflash_info[i].id = dfcode;  			found[i] += dfcode;;  			break; @@ -159,9 +165,9 @@ int AT91F_DataflashInit (void)  			dataflash_info[i].Device.pages_size = 1056;  			dataflash_info[i].Device.page_offset = 11;  			dataflash_info[i].Device.byte_mask = 0x700; -			dataflash_info[i].Device.cs = cs[i][1]; +			dataflash_info[i].Device.cs = cs[i].cs;  			dataflash_info[i].Desc.DataFlash_state = IDLE; -			dataflash_info[i].logical_address = cs[i][0]; +			dataflash_info[i].logical_address = cs[i].addr;  			dataflash_info[i].id = dfcode;  			found[i] += dfcode;;  			break; @@ -304,7 +310,7 @@ AT91PS_DataFlash AT91F_DataflashSelect (AT91PS_DataFlash pFlash,  	for (i = 0; i < CFG_MAX_DATAFLASH_BANKS; i++)  		if ( dataflash_info[i].id -			&& ((((int) addr) & 0xFF000000) == +			&& ((((int) *addr) & 0xFF000000) ==  			dataflash_info[i].logical_address)) {  			addr_valid = 1;  			break; |