Remove build warnings from sprd mmc driver.
Change-Id: I18bea9d21c45d814bb71ada654dad4549c059d7e
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
** Dependencies *
**---------------------------------------------------------------------------*/
+#include <common.h>
+#include <asm/arch/gpio.h>
#include "asm/arch/sci_types.h"
#include "asm/arch/os_api.h"
#include "card_sdio.h"
#ifdef MBBMS_SUPPORT
#include "sdua_config.h"
#endif
+#if defined(CONFIG_SC8830)
+#include <asm/arch/pinmap.h>
+#endif
+
+#ifndef __maybe_unused
+#define __maybe_unused __attribute__((unused))
+#endif
#define CARD_SDIO_HIGHSPEED_SUPPORT
extern int LDO_Init(void);
extern void SDIO_Card_Pal_SetType(SDIO_CARD_PAL_HANDLE handle, SDIO_CARD_PAL_TYPE_E sdio_type);
+extern int sprd_gpio_request(struct gpio_chip *chip, unsigned offset);
+extern int sprd_gpio_direction_output(struct gpio_chip *chip, unsigned offset, int value);
//-----------------------------------------------------------------------------------
// To judge whether the handle is valid
//-----------------------------------------------------------------------------------
-LOCAL BOOLEAN _IsCardHandleValid(CARD_SDIO_HANDLE cardHandle)
+LOCAL BOOLEAN __maybe_unused _IsCardHandleValid(CARD_SDIO_HANDLE cardHandle)
{
uint32 i;
//-----------------------------------------------------------------------------------
// Analyze SD CID buffer
//-----------------------------------------------------------------------------------
-LOCAL void _SD_CID_Analyze(uint8* CIDbuf,CARD_SD_CID_T *CID)
+LOCAL void __maybe_unused _SD_CID_Analyze(uint8* CIDbuf,CARD_SD_CID_T *CID)
{
uint16 tmp16;
uint32 tmp32;
BOOLEAN CARD_SDIO_Select_CurPartition(CARD_SDIO_HANDLE cardHandle, CARD_EMMC_PARTITION_TPYE cardPartiton)
{
uint8 rspBuf[16];
- uint16 RCA = cardHandle->RCA;
uint32 argument = 0;
argument = CMD6_ACCESS_MODE_WRITE_BYTE | ( EXT_CSD_PARTITION_CFG_INDEX<<CMD6_BIT_MODE_OFFSET_INDEX & CMD6_BIT_MODE_MASK_INDEX) | CMD6_CMD_SET;
LOCAL BOOLEAN _SetBusWidth(CARD_SDIO_HANDLE cardHandle,CARD_BUS_WIDTH_E width)
{
uint8 rspBuf[16];
- uint16 RCA = cardHandle->RCA;
uint32 argument = 0;
argument = CMD6_ACCESS_MODE_WRITE_BYTE | ( EXT_CSD_BUS_WIDTH_INDEX<<CMD6_BIT_MODE_OFFSET_INDEX & CMD6_BIT_MODE_MASK_INDEX) ;
}CARD_CMD6_STATUS_T;
-LOCAL void _CMD6_Response_Analyze(uint8* resBuf,CARD_CMD6_STATUS_T* cmdStatus)
+LOCAL void __maybe_unused _CMD6_Response_Analyze(uint8* resBuf,CARD_CMD6_STATUS_T* cmdStatus)
{
cmdStatus->currentVal = ((resBuf[0]<<8)|(resBuf[1]));
cmdStatus->grp6Supported = ((resBuf[2]<<8)|(resBuf[3]));
CARD_CSD_T CSD;
CARD_BUS_WIDTH_E busWidth = CARD_WIDTH_1_BIT;
uint16 RCA;
- BOOLEAN vertion_flag; //TRUE: SD2.0 FALSE: SD1.x
- SDIO_CARD_PAL_ERROR_E errCode;
-
- uint8 extcsd_Part_Config;
CARD_SDIO_ASSERT(TRUE == _IsCardHandleValid(cardHandle)); /*assert verified*/
{
cardHandle->Capacity = (((uint32)s_extcsdbuf[215])<<24)+ (((uint32)s_extcsdbuf[214])<<16)+ (((uint32)s_extcsdbuf[213])<<8)+ ((uint32)s_extcsdbuf[212]); //unit is 512 byte
}
- extcsd_Part_Config = s_extcsdbuf[179];
cardHandle->Rpmb_Capacity = s_extcsdbuf[168]*256; //128/512 ==256 ,unit is 512 byte
if(SDIO_CARD_PAL_ERR_NONE != SDIO_Card_Pal_SendCmd(cardHandle->sdioPalHd,CARD_CMD13_SEND_STATUS, 1<<16,NULL,rspBuf))
{
return FALSE;
}
CARD_SDIO_ReadExtCSD(cardHandle);
- extcsd_Part_Config = s_extcsdbuf[179];
cardHandle->Boot1_Capacity = s_extcsdbuf[226]*256; //128/512 ==256 ,unit is 512 byte
if(SDIO_CARD_PAL_ERR_NONE != SDIO_Card_Pal_SendCmd(cardHandle->sdioPalHd,CARD_CMD13_SEND_STATUS, 1<<16,NULL,rspBuf))
{
return FALSE;
}
CARD_SDIO_ReadExtCSD(cardHandle);
- extcsd_Part_Config = s_extcsdbuf[179];
cardHandle->Boot2_Capacity = s_extcsdbuf[226]*256; //128/512 ==256 ,unit is 512 byte
if(SDIO_CARD_PAL_ERR_NONE != SDIO_Card_Pal_SendCmd(cardHandle->sdioPalHd,CARD_CMD13_SEND_STATUS, 1<<16,NULL,rspBuf))
{
uint8 CARD_SDIO_getCID(unsigned int *uid)
{
- uid[0] = g_CID.MMC_CID.MID << 24 | g_CID.MMC_CID.OID & 0xff << 16 | (g_CID.MMC_CID.OID >> 8) & 0xff << 8 | g_CID.MMC_CID.PNM[0];
- uid[1] = g_CID.MMC_CID.PNM[1] << 24 | g_CID.MMC_CID.PNM[2] << 16 | g_CID.MMC_CID.PNM[3] << 8 | g_CID.MMC_CID.PNM[4];
- uid[2] = g_CID.MMC_CID.PRV << 24 | g_CID.MMC_CID.PSN & 0xff << 16 | (g_CID.MMC_CID.PSN >> 8) & 0xff << 8 | (g_CID.MMC_CID.PSN >> 16) & 0xff;
- uid[3] = (g_CID.MMC_CID.PSN >> 24) & 0xff << 24 | g_CID.MMC_CID.MDT & 0xff << 16 | (g_CID.MMC_CID.MDT >> 8) & 0xff << 8 | 1;
+ uid[0] = (g_CID.MMC_CID.MID << 24) | ((g_CID.MMC_CID.OID & 0xff) << 16) | (((g_CID.MMC_CID.OID >> 8) & 0xff) << 8) | g_CID.MMC_CID.PNM[0];
+ uid[1] = (g_CID.MMC_CID.PNM[1] << 24) | (g_CID.MMC_CID.PNM[2] << 16) | (g_CID.MMC_CID.PNM[3] << 8) | (g_CID.MMC_CID.PNM[4]);
+ uid[2] = (g_CID.MMC_CID.PRV << 24) | ((g_CID.MMC_CID.PSN & 0xff) << 16) | (((g_CID.MMC_CID.PSN >> 8) & 0xff) << 8) | ((g_CID.MMC_CID.PSN >> 16) & 0xff);
+ uid[3] = (((g_CID.MMC_CID.PSN >> 24) & 0xff) << 24) | ((g_CID.MMC_CID.MDT & 0xff) << 16) | (((g_CID.MMC_CID.MDT >> 8) & 0xff) << 8) | 1;
return 1;
}
uint8 rspBuf[16];
uint32 pre_tick, cur_tick,temp;
CARD_CSD_T CSD;
- CARD_BUS_WIDTH_E busWidth = CARD_WIDTH_1_BIT;
uint16 RCA;
BOOLEAN vertion_flag; //TRUE: SD2.0 FALSE: SD1.x
SDIO_CARD_PAL_ERROR_E errCode;
cardHandle->BlockLen = 0;
cardHandle->vertion = CARD_V_UNKONWN;
#if defined(CONFIG_SC8830)
-#include <asm/arch/pinmap.h>
temp = (*(volatile unsigned int *)((SPRD_PIN_PHYS+REG_PIN_SD0_D3)));
*((volatile unsigned int *)(SPRD_PIN_PHYS+REG_PIN_SD0_D3)) = BIT_PIN_NULL|BITS_PIN_DS(1)|BITS_PIN_AF(3)|BIT_PIN_SLP_NUL|BIT_PIN_SLP_Z;
return SDCARD_SDIO_ReadMultiBlock(sdcard_handle, startBlcok, blkCnt, buf);
}
-PUBLIC BOOLEAN SDCARD_Init()
+PUBLIC BOOLEAN SDCARD_Init(void)
{
- uint32 ret = 0;
-
sdcard_handle = CARD_SDIO_Open(CARD_SDIO_SLOT_6);
SDIO_Card_Pal_SetType(sdcard_handle->sdioPalHd, SDIO_CARD_PAL_TYPE_SD);
#endif
-PUBLIC BOOLEAN SDCARD_PowerOn()
+PUBLIC BOOLEAN SDCARD_PowerOn(void)
{
sdcard_handle = CARD_SDIO_Open(CARD_SDIO_SLOT_6);
SDIO_Card_Pal_SetType(sdcard_handle->sdioPalHd, SDIO_CARD_PAL_TYPE_SD);
PUBLIC uint32 Emmc_GetCapacity(CARD_EMMC_PARTITION_TPYE cardPartiton);
-PUBLIC void Emmc_DisSdClk();
+PUBLIC void Emmc_DisSdClk(void);
+
+PUBLIC BOOLEAN SDCARD_PowerOn(void);
#endif
#include <asm/arch/sc8810_reg_global.h>
#include <asm/arch/sc8810_module_config.h>
#endif
+#include "card_sdio.h"
static struct list_head mmc_devices;
static int cur_dev_num = -1;
#define MMCSD_SECTOR_SIZE 512
int mmc_legacy_init(int dev)
{
+ int rc = -ENODEV;
printf("mmc_legacy_init\n");
- int retries, rc = -ENODEV;
- uint32_t cid_resp[4];
- uint32_t *resp;
- uint16_t rca = 0;
if(TRUE == Emmc_Init())
{
#endif
#ifdef CONFIG_GENERIC_MMC
-int mmc_sdcard_init()
+int mmc_sdcard_init(void)
{
#if defined(CONFIG_SC8830) || defined(CONFIG_SC9630)
if (TRUE == SDCARD_PowerOn()) {
printf(KERN_DEBUG DRIVER_NAME ":AHB CTRL 0x%08x\n", *((unsigned int*)0x20900200));
#if 1
for(i = 0; i < MAX_DUMP_NUM; i++){
- printf(KERN_DEBUG DRIVER_NAME ": address 0x%08x | value 0x%08x\n", host->ioaddr + i*4, sdhci_readl(host, i*4));
+ printf(KERN_DEBUG DRIVER_NAME ": address 0x%08lx | value 0x%08x\n", (unsigned long)host->ioaddr + i*4, sdhci_readl(host, i*4));
}
#endif
#define __raw_bits_and(v, a) writel((readl(a)&v), a)
#define __raw_bits_or(v, a) writel((readl(a)|v), a)
+
+#if !defined(CONFIG_SC8830) && !defined(CONFIG_SC9630)
static void sdhci_sprd_set_base_clock(unsigned int clock)
{
- unsigned long flags;
-
/* don't bother if the clock is going off. */
if (clock == 0)
return;
__raw_readl(GR_CLK_GEN5));
return;
}
-
+#endif
#ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS
static struct sdhci_ops mv_ops;
#include <mmc.h>
#include <sdhci.h>
+#ifdef CONFIG_MMC_SDMA
+extern void Dcache_InvalRegion(unsigned int addr, unsigned int length);
+extern void Dcache_CleanRegion(unsigned int addr, unsigned int length);
+#endif
+
void *aligned_buffer;
void sdhci_dumpregs(struct sdhci_host *host);
#else
#define SDHOST_PRINT(x) SCI_TRACE_LOW x
#endif
+
+#ifndef __maybe_unused
+#define __maybe_unused __attribute__((unused))
+#endif
+
/*****************************************************************************/
// Description: Handle of sdhost
// Author: Jason.wu
LOCAL SDHOST_PORT_T sdio_port_ctl[SDHOST_SLOT_MAX_NUM];
#ifndef OS_NONE
LOCAL DEVICE_HANDLE s_dev_sdio = SCI_NULL;
+LOCAL void SdhostHisrFunc (uint32 cnt, void *pData);
#endif
-
PUBLIC ISR_EXE_T _SDHOST_IrqHandle (uint32 isrnum);
-LOCAL void SdhostHisrFunc (uint32 cnt, void *pData);
PUBLIC void SDHOST_Delayus(uint32 usec)
{
// FALSE:the handle is not valid
// Note:
/*****************************************************************************/
-LOCAL BOOLEAN _RegisterVerifyHOST (SDHOST_HANDLE sdhost_handler)
+LOCAL BOOLEAN __maybe_unused _RegisterVerifyHOST (SDHOST_HANDLE sdhost_handler)
{
uint32 index;
// NONE
// Note:
/*****************************************************************************/
-LOCAL void _GetSDHOSTCapbility (SDHOST_HANDLE sdhost_handler,SDHOST_CAPBILIT_T *capbility)
+LOCAL void __maybe_unused _GetSDHOSTCapbility (SDHOST_HANDLE sdhost_handler,SDHOST_CAPBILIT_T *capbility)
{
volatile uint32 tmpReg;
SCI_MEMSET (capbility,0,sizeof (SDHOST_CAPBILIT_T));
// uint32 value: indicate which slot event happened
// Note:
/*****************************************************************************/
-LOCAL SDHOST_SLOT_NO _GetIntSDHOSTSlotNum (uint32 port)
+LOCAL SDHOST_SLOT_NO __maybe_unused _GetIntSDHOSTSlotNum (uint32 port)
{
- uint32 tmpReg;
SDHOST_SLOT_NO ret;
#if defined(CONFIG_SC8830) || (defined CONFIG_SC9630)
ret = SDHOST_SLOT_7;
#else
+ uint32 tmpReg;
#if defined(CONFIG_TIGER)|| defined (CONFIG_SC7710G2)
if(SDHOST_SLOT_6 == port){
tmpReg = REG32 (SDIO2_NML_INT_SIG_EN);
return CALL_HISR;
}
+#ifndef OS_NONE
/*****************************************************************************/
// Description: This function is SDIO 's HISR.
// 1. THE priority is higher than normal task.
buffer.pSdhost_handler->sigCallBack (buffer.msg, buffer.errCode, buffer.slotNum);
}
}
+#endif
+#if !defined (CONFIG_SC8825) && !defined(CONFIG_SPX15) && !defined(CONFIG_SPX30G) && !defined(CONFIG_SC9630) && !defined (CONFIG_SC8830) && !defined(CONFIG_SC7710G2)
LOCAL void _SDHOST_Pin_select(SDHOST_SLOT_NO slot_NO)
{
if(slot_NO == SDHOST_SLOT_1){
*(volatile uint32*)(0x8c0003fc) = 0x280; //SD1 D3 pullup drv3, strongest strength
}
}
+#endif
/*****************************************************************************/
// Description: Regist host slot
/*****************************************************************************/
PUBLIC SDHOST_HANDLE SDHOST_Register (SDHOST_SLOT_NO slot_NO,SDIO_CALLBACK fun)
{
- uint32 status = 0, i = 0;
+#ifndef OS_NONE
+ uint32 status = 0;
+#endif
SCI_ASSERT (slot_NO < SDHOST_SLOT_MAX_NUM);/*assert verified*/
-
+#include <common.h>
#include "asm/arch/sci_types.h"
#include "sdio_card_pal.h"
#include "sdhost_drv.h"
+#include "asm/arch/isr_drvapi.h"
#include "asm/arch/mmu_drvapi.h"
//#include "asm/arch/chng_freq.h"
#include "asm/arch/sc_reg.h"
#endif
/*-----------------------------------------*/
+extern void Dcache_InvalRegion(unsigned int addr, unsigned int length);
+extern void Dcache_CleanRegion(unsigned int addr, unsigned int length);
+extern ISR_EXE_T _SDHOST_IrqHandle (uint32 isrnum);
typedef struct
{
#endif
curCmdInfo = &s_cmdDetail[cmd];
-
-#ifdef OS_NONE
- uint32 isr_status;
-#endif
SDIO_CARD_PRINT(("%s : cmd:%x, cmdIndex:%x, argument:%x\r\n", __FUNCTION__, cmd, curCmdInfo->cmdIndex, argument));
SDIO_CARD_PAL_ASSERT ( /*assert verified*/