diff options
| author | Vipin KUMAR <vipin.kumar@st.com> | 2012-05-07 13:00:19 +0530 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-07-07 14:07:38 +0200 | 
| commit | f3fcf92d595b297b47a1b58b8ec39f93f40ef912 (patch) | |
| tree | f7993a0d0efaac1ea918b75503baa373418e119b | |
| parent | 0def98e7be905e4e02eb22cb312bb4e3b327d2fa (diff) | |
| download | olio-uboot-2014.01-f3fcf92d595b297b47a1b58b8ec39f93f40ef912.tar.xz olio-uboot-2014.01-f3fcf92d595b297b47a1b58b8ec39f93f40ef912.zip | |
st_smi: Add support for SPEAr SMI driver
SMI is the serial memory interface controller provided by ST.
Earlier, a driver exists in the u-boot source code for the SMI IP. However, it
was specific to spear platforms. This commit converts the same driver to a more
generic driver. As a result, the driver files are renamed to st_smi.c and
st_smi.h and moved into drivers/mtd folder for reusability by other platforms
using smi controller peripheral.
Signed-off-by: Vipin Kumar <vipin.kumar@st.com>
Signed-off-by: Amit Virdi <amit.virdi@st.com>
Signed-off-by: Stefan Roese <sr@denx.de>
| -rw-r--r-- | drivers/mtd/Makefile | 2 | ||||
| -rw-r--r-- | drivers/mtd/st_smi.c (renamed from drivers/mtd/spr_smi.c) | 7 | ||||
| -rw-r--r-- | include/configs/spear-common.h | 6 | ||||
| -rw-r--r-- | include/linux/mtd/st_smi.h (renamed from arch/arm/include/asm/arch-spear/spr_smi.h) | 6 | 
4 files changed, 12 insertions, 9 deletions
| diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile index 5a5ecdfe3..543c845ff 100644 --- a/drivers/mtd/Makefile +++ b/drivers/mtd/Makefile @@ -35,7 +35,7 @@ COBJS-$(CONFIG_HAS_DATAFLASH) += dataflash.o  COBJS-$(CONFIG_FTSMC020) += ftsmc020.o  COBJS-$(CONFIG_FLASH_CFI_LEGACY) += jedec_flash.o  COBJS-$(CONFIG_MW_EEPROM) += mw_eeprom.o -COBJS-$(CONFIG_SPEARSMI) += spr_smi.o +COBJS-$(CONFIG_ST_SMI) += st_smi.o  COBJS	:= $(COBJS-y)  SRCS	:= $(COBJS:.o=.c) diff --git a/drivers/mtd/spr_smi.c b/drivers/mtd/st_smi.c index 6d4257a3f..db08ab97e 100644 --- a/drivers/mtd/spr_smi.c +++ b/drivers/mtd/st_smi.c @@ -1,6 +1,6 @@  /*   * (C) Copyright 2009 - * Vipin Kumar, ST Micoelectronics, vipin.kumar@st.com. + * Vipin Kumar, ST Microelectronics, vipin.kumar@st.com.   *   * See file CREDITS for list of people who contributed to this   * project. @@ -24,10 +24,10 @@  #include <common.h>  #include <flash.h>  #include <linux/err.h> +#include <linux/mtd/st_smi.h>  #include <asm/io.h>  #include <asm/arch/hardware.h> -#include <asm/arch/spr_smi.h>  #if !defined(CONFIG_SYS_NO_FLASH) @@ -82,6 +82,7 @@ static unsigned int smi_read_id(flash_info_t *info, int banknum)  	writel(READ_ID, &smicntl->smi_tr);  	writel((banknum << BANKSEL_SHIFT) | SEND | TX_LEN_1 | RX_LEN_3,  	       &smicntl->smi_cr2); +  	smi_wait_xfer_finish(XFER_FINISH_TOUT);  	value = (readl(&smicntl->smi_rr) & 0x00FFFFFF); @@ -232,7 +233,7 @@ static int smi_write_enable(int bank)   *   * SMI initialization routine. Sets SMI control register1.   */ -static void smi_init(void) +void smi_init(void)  {  	/* Setting the fast mode values. SMI working at 166/4 = 41.5 MHz */  	writel(HOLD1 | FAST_MODE | BANK_EN | DSEL_TIME | PRESCAL4, diff --git a/include/configs/spear-common.h b/include/configs/spear-common.h index 8d0f0369c..75cc5fff6 100644 --- a/include/configs/spear-common.h +++ b/include/configs/spear-common.h @@ -55,10 +55,10 @@  #if defined(CONFIG_FLASH_PNOR)  #define CONFIG_SPEAR_EMI			1  #else -#define CONFIG_SPEARSMI				1 +#define CONFIG_ST_SMI  #endif -#if defined(CONFIG_SPEARSMI) +#if defined(CONFIG_ST_SMI)  #define CONFIG_SYS_MAX_FLASH_BANKS		2  #define CONFIG_SYS_FLASH_BASE			(0xF8000000) @@ -125,7 +125,7 @@   * U-Boot Environment placing definitions.   */  #if defined(CONFIG_ENV_IS_IN_FLASH) -#ifdef CONFIG_SPEARSMI +#ifdef CONFIG_ST_SMI  /*   * Environment is in serial NOR flash   */ diff --git a/arch/arm/include/asm/arch-spear/spr_smi.h b/include/linux/mtd/st_smi.h index 06df74557..b7a78acd7 100644 --- a/arch/arm/include/asm/arch-spear/spr_smi.h +++ b/include/linux/mtd/st_smi.h @@ -21,8 +21,8 @@   * MA 02111-1307 USA   */ -#ifndef SPR_SMI_H -#define SPR_SMI_H +#ifndef ST_SMI_H +#define ST_SMI_H  /* 0xF800.0000 . 0xFBFF.FFFF	64MB	SMI (Serial Flash Mem) */  /* 0xFC00.0000 . 0xFC1F.FFFF	2MB	SMI (Serial Flash Reg.) */ @@ -112,4 +112,6 @@ struct flash_dev {  #define XFER_FINISH_TOUT	2	/* xfer finish timeout */  #define WMODE_TOUT		2	/* write enable timeout */ +extern void smi_init(void); +  #endif |