📄 platspecific.c
字号:
/*++
Copyright (c) 2004 BSQUARE Corporation. All rights reserved.
Module Name:
platspecific.c
Module Description:
This file contains platform specific functions for the SD driver.
Author:
Ian Rae 19-Aug-2004
Notes:
Revision History:
--*/
#include "sdcardddk.h"
#include "sdhcd.h"
#include "sdio.h"
#include <gpio.h>
int SDIOPlatNumSlots()
{
return 1;
}
// card insertion interrupts
// mapping BCSR etc
SD_API_STATUS SDIOPlatInit(PSDIO_HW_CONTEXT pController)
{
SD_API_STATUS status = SD_API_STATUS_SUCCESS;
// initialize card insertion GPIOs as inputs
GPIO_SetAsInput(pController->hGPIO, GPIO_16 | GPIO_17 );
// connect slot 0 insertion interrupt
pController->Slots[0].InsertionSysIntr = InterruptConnect(Internal,
0,
HWINTR_GPIO16,
0);
if (SYSINTR_NOP==pController->Slots[0].InsertionSysIntr) {
DbgPrintZo(SDCARD_ZONE_ERROR,(TEXT("InterruptConnect returned SYSINTR_NOP\r\n")));
status = SD_API_STATUS_INSUFFICIENT_RESOURCES;
}
return status;
}
SD_API_STATUS SDIOPlatDeinit(PSDIO_HW_CONTEXT pController)
{
return SD_API_STATUS_SUCCESS;
}
SD_API_STATUS SDIOPlatPower(PSDIO_HW_CONTEXT pController, BOOL PowerOn, ULONG Slot)
{
return SD_API_STATUS_SUCCESS;
}
BOOL SDIOPlatCardWriteProteced(PSDIO_HW_CONTEXT pController, ULONG Slot)
{
ULONG GPIOState;
GPIO_GetState(pController->hGPIO,&GPIOState);
if (GPIOState & GPIO_17) {
return TRUE;
} else {
return FALSE;
}
}
BOOL SDIOPlatCardInserted(PSDIO_HW_CONTEXT pController, ULONG Slot)
{
ULONG GPIOState;
GPIO_GetState(pController->hGPIO,&GPIOState);
if (~GPIOState & GPIO_16) {
return TRUE;
} else {
return FALSE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -