📄 hd_reference.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link type="text/css" rel="stylesheet" href="CodeTHelp.css">
</head>
<body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" bgcolor="#FFFFFF">
<a name="FUNC_Configure"></a>
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#0000FF" rowspan="2" width="40%"><a href="http://www.codetelligence.com"><img border="0" height="40" width="252" name="image" src="Images/codetelligence_lrg.gif"></a></td><td bgcolor="#0000FF" height="62" width="50%"><font face="Arial, Helvetica, sans-serif" size="5" color="#FFFFFF"><strong>Codetelligence Embedded SDIO Stack<br>Host Controller Driver Documentation</strong></font></td><td bgcolor="#0000FF" height="62" width="10%"><td><a href="HD_Reference_overview.htm"><img border="0" height="32" width="27" src="Images/leftarrow.gif"></a></td><td><a href="#FUNC_GET_CURRENT_REQUEST"><img border="0" height="32" width="27" src="Images/rightarrow.gif"></a></td></td>
</tr>
</table>
<table cellpadding="0" cellspacing="10" border="0" width="100%">
<tr>
<td width="93%"><font face="Arial, Helvetica, sans-serif"><span class="Topic">
<blockquote>
<table width="100%" cellspacing="0" cellpadding="0">
<td>
<br>
<pre>
<span class="FUNCPROTOTYPE">
SDIO_STATUS (*pConfigure) (struct _SDHCD *pHcd, PSDCONFIG pConfig)
</span>
</pre>
</td>
</table>
</blockquote>
</span></font></td>
</tr>
</table>
<hr>
<table cellpadding="15" cellspacing="0" border="0" width="100%">
<tr>
<td>
<p class="FUNCHEADINGS">Description:</p>
<blockquote>
<p class="BODYTEXT">The bus driver calls the configure callback to set various options and modes in the host controller hardware.</p>
</blockquote>
<p class="FUNCHEADINGS">Parameters:</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Inputs:</p>
<blockquote>
<p class="BODYTEXT">
pHcd - the host controller structure that was registered
<br>
pConfig - configuration request structure
<br>
</p>
</blockquote>
</blockquote>
</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Outputs:</p>
<blockquote>
<p class="BODYTEXT">
none
<br>
</p>
</blockquote>
</blockquote>
</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Returns:</p>
<blockquote>
<p class="BODYCODE">
SDIO_STATUS
<br>
</p>
</blockquote>
</blockquote>
</p>
<p class="FUNCHEADINGS">Notes:</p>
<blockquote>
<p class="BODYTEXT">
The host controller driver recieves configuration requests for options
such as slot voltage, bus width, clock rates and interrupt detection.
The bus driver guarantees that only one configuration option request
can be issued at a time.
<br>
</p>
</blockquote>
<p class="FUNCHEADINGS">Example: </p>
<blockquote>
<p class="BODYCODE">
<pre>
<font face="Arial, Helvetica, sans-serif" color="#FF00FF"> Example of a typical configure callback:</font>
SDIO_STATUS HcdConfig(PSDHCD pHcd, PSDCONFIG pConfig)
{
SDIO_STATUS status = SDIO_STATUS_SUCCESS;
PSDHCD_DRIVER_CONTEXT pHct = (PSDHCD_DRIVER_CONTEXT)pHcd->pContext;
UINT16 command;
<font face="Arial, Helvetica, sans-serif" color="#999999">// get command
</font> command = GET_SDCONFIG_CMD(pConfig);
<font face="Arial, Helvetica, sans-serif" color="#999999">// decode command
</font> switch (command){
case SDCONFIG_GET_WP:
if (GetGpioPinLevel(pHct,SDIO_CARD_WP_GPIO) == WP_POLARITY) {
*((SDCONFIG_WP_VALUE *)pConfig->pData) = 1;
} else {
*((SDCONFIG_WP_VALUE *)pConfig->pData) = 0;
}
break;
case SDCONFIG_SEND_INIT_CLOCKS:
ClockStartStop(pHct,CLOCK_ON);
<font face="Arial, Helvetica, sans-serif" color="#999999">// sleep a little, should be at least 80 clocks at our lowest clock setting
</font> status = OSSleep(100);
ClockStartStop(pHct,CLOCK_OFF);
break;
case SDCONFIG_SDIO_INT_CTRL:
if (GET_SDCONFIG_CMD_DATA(PSDCONFIG_SDIO_INT_CTRL_DATA,pConfig)->SlotIRQEnable) {
<font face="Arial, Helvetica, sans-serif" color="#999999">// request to enable IRQ detection
</font> } else {
<font face="Arial, Helvetica, sans-serif" color="#999999">// request to disable IRQ detectioon
</font> }
break;
case SDCONFIG_SDIO_REARM_INT:
<font face="Arial, Helvetica, sans-serif" color="#999999">// request to re-arm the card IRQ detection logic
</font> break;
case SDCONFIG_BUS_MODE_CTRL:
<font face="Arial, Helvetica, sans-serif" color="#999999">// request to set bus mode
</font> {
<font face="Arial, Helvetica, sans-serif" color="#999999">// get bus mode data structure
</font> PSDCONFIG_BUS_MODE_DATA pBusMode =
GET_SDCONFIG_CMD_DATA(PSDCONFIG_SDIO_INT_CTRL_DATA,pConfig);
<font face="Arial, Helvetica, sans-serif" color="#999999">// set bus mode based on settings in bus mode structure
</font> <font face="Arial, Helvetica, sans-serif" color="#999999">// bus mode : pBusMode->BusModeFlags
</font> <font face="Arial, Helvetica, sans-serif" color="#999999">// clock rate : pBusMode->ClockRate
</font> }
break;
case SDCONFIG_POWER_CTRL:
<font face="Arial, Helvetica, sans-serif" color="#999999">// request to set power/voltage
</font> {
PSDCONFIG_POWER_CTRL_DATA pPowerSetting =
GET_SDCONFIG_CMD_DATA(PSDCONFIG_POWER_CTRL_DATA,pConfig);
if (pPowerSetting->SlotPowerEnable) {
<font face="Arial, Helvetica, sans-serif" color="#999999">// turn on slot power
</font> <font face="Arial, Helvetica, sans-serif" color="#999999">//
</font> } else {
<font face="Arial, Helvetica, sans-serif" color="#999999">// turn off slot power
</font> }
DBG_PRINT(PXA_TRACE_CONFIG, ("SDIO PXA255 PwrControl: En:%d, VCC:0x%X \n",
pPowerSetting->SlotPowerEnable,
pPowerSetting->SlotPowerVoltageMask));
}
break;
default:
<font face="Arial, Helvetica, sans-serif" color="#999999">// unsupported
</font> status = SDIO_STATUS_INVALID_PARAMETER;
}
return status;
}
</pre>
</p>
</blockquote>
<p class="FUNCHEADINGS">See also:</p>
<blockquote>
<p class="BODYTEXT"></p>
</blockquote>
</td>
</tr>
</table>
<a name="FUNC_GET_CURRENT_REQUEST"></a>
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#0000FF" rowspan="2" width="40%"><a href="http://www.codetelligence.com"><img border="0" height="40" width="252" name="image" src="Images/codetelligence_lrg.gif"></a></td><td bgcolor="#0000FF" height="62" width="50%"><font face="Arial, Helvetica, sans-serif" size="5" color="#FFFFFF"><strong>Codetelligence Embedded SDIO Stack<br>Host Controller Driver Documentation</strong></font></td><td bgcolor="#0000FF" height="62" width="10%"><td><a href="#FUNC_Configure"><img border="0" height="32" width="27" src="Images/leftarrow.gif"></a></td><td><a href="#FUNC_GET_SDCONFIG_CMD"><img border="0" height="32" width="27" src="Images/rightarrow.gif"></a></td></td>
</tr>
</table>
<table cellpadding="0" cellspacing="10" border="0" width="100%">
<tr>
<td width="93%"><font face="Arial, Helvetica, sans-serif"><span class="Topic">
<blockquote>
<table width="100%" cellspacing="0" cellpadding="0">
<td>
<br>
<pre>
<span class="FUNCPROTOTYPE">
PSDREQUEST GET_CURRENT_REQUEST (PSDHCD pHcd)
</span>
</pre>
</td>
</table>
</blockquote>
</span></font></td>
</tr>
</table>
<hr>
<table cellpadding="15" cellspacing="0" border="0" width="100%">
<tr>
<td>
<p class="FUNCHEADINGS">Description:</p>
<blockquote>
<p class="BODYTEXT">Get a pointer to the current bus request for a host controller</p>
</blockquote>
<p class="FUNCHEADINGS">Parameters:</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Inputs:</p>
<blockquote>
<p class="BODYTEXT">
pHcd - host structure
<br>
</p>
</blockquote>
</blockquote>
</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Outputs:</p>
<blockquote>
<p class="BODYTEXT"></p>
</blockquote>
</blockquote>
</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Returns:</p>
<blockquote>
<p class="BODYCODE">
current SD/SDIO bus request being worked on
<br>
</p>
</blockquote>
</blockquote>
</p>
<p class="FUNCHEADINGS">Notes:</p>
<blockquote>
<p class="BODYTEXT">
Implemented as a macro. This macro returns the current SD request that is
being worked on.
<br>
</p>
</blockquote>
<p class="FUNCHEADINGS">Example: </p>
<blockquote>
<p class="BODYCODE">
<pre>
<font face="Arial, Helvetica, sans-serif" color="#FF00FF"> getting the current request:</font>
pReq = GET_CURRENT_REQUEST(&pHct->Hcd)
</pre>
</p>
</blockquote>
<p class="FUNCHEADINGS">See also:</p>
<blockquote>
<p class="BODYTEXT"></p>
</blockquote>
</td>
</tr>
</table>
<a name="FUNC_GET_SDCONFIG_CMD"></a>
<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td bgcolor="#0000FF" rowspan="2" width="40%"><a href="http://www.codetelligence.com"><img border="0" height="40" width="252" name="image" src="Images/codetelligence_lrg.gif"></a></td><td bgcolor="#0000FF" height="62" width="50%"><font face="Arial, Helvetica, sans-serif" size="5" color="#FFFFFF"><strong>Codetelligence Embedded SDIO Stack<br>Host Controller Driver Documentation</strong></font></td><td bgcolor="#0000FF" height="62" width="10%"><td><a href="#FUNC_GET_CURRENT_REQUEST"><img border="0" height="32" width="27" src="Images/leftarrow.gif"></a></td><td><a href="#FUNC_GET_SDCONFIG_CMD_DATA"><img border="0" height="32" width="27" src="Images/rightarrow.gif"></a></td></td>
</tr>
</table>
<table cellpadding="0" cellspacing="10" border="0" width="100%">
<tr>
<td width="93%"><font face="Arial, Helvetica, sans-serif"><span class="Topic">
<blockquote>
<table width="100%" cellspacing="0" cellpadding="0">
<td>
<br>
<pre>
<span class="FUNCPROTOTYPE">
UNIT16 GET_SDCONFIG_CMD (PSDCONFIG pCommand)
</span>
</pre>
</td>
</table>
</blockquote>
</span></font></td>
</tr>
</table>
<hr>
<table cellpadding="15" cellspacing="0" border="0" width="100%">
<tr>
<td>
<p class="FUNCHEADINGS">Description:</p>
<blockquote>
<p class="BODYTEXT">Get a pointer to the configuration command data.</p>
</blockquote>
<p class="FUNCHEADINGS">Parameters:</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Inputs:</p>
<blockquote>
<p class="BODYTEXT">
pCommand - config command structure.
<br>
</p>
</blockquote>
</blockquote>
</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Outputs:</p>
<blockquote>
<p class="BODYTEXT"></p>
</blockquote>
</blockquote>
</p>
<p class="BODYTEXT">
<blockquote>
<p class="BODYTEXT">Returns:</p>
<blockquote>
<p class="BODYCODE">
command code
<br>
</p>
</blockquote>
</blockquote>
</p>
<p class="FUNCHEADINGS">Notes:</p>
<blockquote>
<p class="BODYTEXT">
Implemented as a macro. This macro returns the command code for this
configuration request.
<br>
</p>
</blockquote>
<p class="FUNCHEADINGS">Example: </p>
<blockquote>
<p class="BODYCODE">
<pre>
<font face="Arial, Helvetica, sans-serif" color="#FF00FF"> getting the command code:</font>
cmd = GET_SDCONFIG_CMD(pConfig);
switch (cmd) {
case SDCONFIG_GET_WP:
.. get write protect switch position
break;
<font face="Arial, Helvetica, sans-serif" color="#999999">...
</font>
</pre>
</p>
</blockquote>
<p class="FUNCHEADINGS">See also:</p>
<blockquote>
<p class="BODYTEXT">
GET_SDCONFIG_CMD_LEN, GET_SDCONFIG_CMD_DATA
<br>
</p>
</blockquote>
</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -