Skip to content
Snippets Groups Projects
Commit d49fe4be authored by Stelian Pop's avatar Stelian Pop Committed by Peter Pearse
Browse files

Improve DataFlash CS definition.


Use a structure instead of the error prone unnamed array to
define the possible dataflash banks.

Signed-off-by: default avatarStelian Pop <stelian@popies.net>
parent a6cdd21b
No related branches found
No related tags found
No related merge requests found
...@@ -26,17 +26,22 @@ ...@@ -26,17 +26,22 @@
AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS]; AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];
static AT91S_DataFlash DataFlashInst; static AT91S_DataFlash DataFlashInst;
struct dataflash_addr {
unsigned long addr;
int cs;
};
#ifdef CONFIG_AT91SAM9260EK #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_CS0, 0}, /* Logical adress, CS */
{CFG_DATAFLASH_LOGIC_ADDR_CS1, 1} {CFG_DATAFLASH_LOGIC_ADDR_CS1, 1}
}; };
#elif defined(CONFIG_AT91SAM9263EK) #elif defined(CONFIG_AT91SAM9263EK)
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_CS0, 0}, /* Logical adress, CS */
}; };
#else #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_CS0, 0}, /* Logical adress, CS */
{CFG_DATAFLASH_LOGIC_ADDR_CS3, 3} {CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
}; };
...@@ -114,7 +119,7 @@ int AT91F_DataflashInit (void) ...@@ -114,7 +119,7 @@ int AT91F_DataflashInit (void)
dataflash_info[i].Desc.state = IDLE; dataflash_info[i].Desc.state = IDLE;
dataflash_info[i].id = 0; dataflash_info[i].id = 0;
dataflash_info[i].Device.pages_number = 0; dataflash_info[i].Device.pages_number = 0;
dfcode = AT91F_DataflashProbe (cs[i][1], dfcode = AT91F_DataflashProbe (cs[i].cs,
&dataflash_info[i].Desc); &dataflash_info[i].Desc);
switch (dfcode) { switch (dfcode) {
...@@ -123,9 +128,9 @@ int AT91F_DataflashInit (void) ...@@ -123,9 +128,9 @@ int AT91F_DataflashInit (void)
dataflash_info[i].Device.pages_size = 528; dataflash_info[i].Device.pages_size = 528;
dataflash_info[i].Device.page_offset = 10; dataflash_info[i].Device.page_offset = 10;
dataflash_info[i].Device.byte_mask = 0x300; 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].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; dataflash_info[i].id = dfcode;
found[i] += dfcode;; found[i] += dfcode;;
break; break;
...@@ -135,9 +140,9 @@ int AT91F_DataflashInit (void) ...@@ -135,9 +140,9 @@ int AT91F_DataflashInit (void)
dataflash_info[i].Device.pages_size = 528; dataflash_info[i].Device.pages_size = 528;
dataflash_info[i].Device.page_offset = 10; dataflash_info[i].Device.page_offset = 10;
dataflash_info[i].Device.byte_mask = 0x300; 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].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; dataflash_info[i].id = dfcode;
found[i] += dfcode;; found[i] += dfcode;;
break; break;
...@@ -147,9 +152,9 @@ int AT91F_DataflashInit (void) ...@@ -147,9 +152,9 @@ int AT91F_DataflashInit (void)
dataflash_info[i].Device.pages_size = 1056; dataflash_info[i].Device.pages_size = 1056;
dataflash_info[i].Device.page_offset = 11; dataflash_info[i].Device.page_offset = 11;
dataflash_info[i].Device.byte_mask = 0x700; 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].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; dataflash_info[i].id = dfcode;
found[i] += dfcode;; found[i] += dfcode;;
break; break;
...@@ -159,9 +164,9 @@ int AT91F_DataflashInit (void) ...@@ -159,9 +164,9 @@ int AT91F_DataflashInit (void)
dataflash_info[i].Device.pages_size = 1056; dataflash_info[i].Device.pages_size = 1056;
dataflash_info[i].Device.page_offset = 11; dataflash_info[i].Device.page_offset = 11;
dataflash_info[i].Device.byte_mask = 0x700; 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].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; dataflash_info[i].id = dfcode;
found[i] += dfcode;; found[i] += dfcode;;
break; break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment