diff options
Diffstat (limited to 'drivers/mtd/dataflash.c')
| -rw-r--r-- | drivers/mtd/dataflash.c | 31 | 
1 files changed, 18 insertions, 13 deletions
| diff --git a/drivers/mtd/dataflash.c b/drivers/mtd/dataflash.c index 3ebb7064f..242140745 100644 --- a/drivers/mtd/dataflash.c +++ b/drivers/mtd/dataflash.c @@ -26,17 +26,22 @@  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 */ +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}  }; @@ -114,7 +119,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 +128,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 +140,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 +152,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 +164,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; |