diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/mtd/st_smi.c | 50 | 
1 files changed, 18 insertions, 32 deletions
| diff --git a/drivers/mtd/st_smi.c b/drivers/mtd/st_smi.c index 38f22b736..83a57d299 100644 --- a/drivers/mtd/st_smi.c +++ b/drivers/mtd/st_smi.c @@ -37,8 +37,6 @@ static ulong bank_base[CONFIG_SYS_MAX_FLASH_BANKS] =      CONFIG_SYS_FLASH_ADDR_BASE;  flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS]; -#define ST_M25Pxx_ID		0x00002020 -  static struct flash_dev flash_ids[] = {  	{0x10, 0x10000, 2},	/* 64K Byte */  	{0x11, 0x20000, 4},	/* 128K Byte */ @@ -287,39 +285,32 @@ static int smi_sector_erase(flash_info_t *info, unsigned int sector)  	writel(readl(&smicntl->smi_sr) & ~(ERF1 | ERF2), &smicntl->smi_sr); -	if (info->flash_id == ST_M25Pxx_ID) { -		/* Wait until finished previous write command. */ -		if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT)) -			return -EBUSY; +	/* Wait until finished previous write command. */ +	if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT)) +		return -EBUSY; -		/* Send write enable, before erase commands. */ -		if (smi_write_enable(bank)) -			return -EIO; +	/* Send write enable, before erase commands. */ +	if (smi_write_enable(bank)) +		return -EIO; -		/* Put SMI in SW mode */ -		writel(readl(&smicntl->smi_cr1) | SW_MODE, &smicntl->smi_cr1); +	/* Put SMI in SW mode */ +	writel(readl(&smicntl->smi_cr1) | SW_MODE, &smicntl->smi_cr1); -		/* Send Sector Erase command in SW Mode */ -		writel(instruction, &smicntl->smi_tr); -		writel((bank << BANKSEL_SHIFT) | SEND | TX_LEN_4, +	/* Send Sector Erase command in SW Mode */ +	writel(instruction, &smicntl->smi_tr); +	writel((bank << BANKSEL_SHIFT) | SEND | TX_LEN_4,  		       &smicntl->smi_cr2); -		if (smi_wait_xfer_finish(XFER_FINISH_TOUT)) -			return -EIO; +	if (smi_wait_xfer_finish(XFER_FINISH_TOUT)) +		return -EIO; -		if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT)) -			return -EBUSY; +	if (smi_wait_till_ready(bank, CONFIG_SYS_FLASH_ERASE_TOUT)) +		return -EBUSY; -		/* Put SMI in HW mode */ -		writel(readl(&smicntl->smi_cr1) & ~SW_MODE, +	/* Put SMI in HW mode */ +	writel(readl(&smicntl->smi_cr1) & ~SW_MODE,  		       &smicntl->smi_cr1); -		return 0; -	} else { -		/* Put SMI in HW mode */ -		writel(readl(&smicntl->smi_cr1) & ~SW_MODE, -		       &smicntl->smi_cr1); -		return -EINVAL; -	} +	return 0;  }  /* @@ -496,11 +487,6 @@ int flash_erase(flash_info_t *info, int s_first, int s_last)  	int prot = 0;  	flash_sect_t sect; -	if (info->flash_id != ST_M25Pxx_ID) { -		puts("Can't erase unknown flash type - aborted\n"); -		return 1; -	} -  	if ((s_first < 0) || (s_first > s_last)) {  		puts("- no sectors to erase\n");  		return 1; |