MCUXpresso_LPC55S69/docs/MCUXpresso SDK API Referenc.../a00051.html

1794 lines
106 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: SDIO Card Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">MCUXpresso SDK API Reference Manual
&#160;<span id="projectnumber">Rev 2.15.000</span>
</div>
<div id="projectbrief">NXP Semiconductors</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>API&#160;Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a00051.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">SDIO Card Driver<div class="ingroups"><a class="el" href="a00272.html">Cards: Secure Digital Card/Embedded MultiMedia Card/SDIO Card</a></div></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The SDIO card driver provide card initialization/IO direct and extend command interface.</p>
<h1><a class="anchor" id="SDIOCardOperation"></a>
SDIO CARD Operation</h1>
<h2>error log support</h2>
<p>Not supported yet. </p>
<h2>User configuable</h2>
<h2>Board dependency</h2>
<h2>Mutual exclusive access support for RTOS</h2>
<p>SDIO driver has added mutual exclusive access support for init/deinit/write/read/erase function. Please note that the card init function will create the mutex lock dynamically by default, so to avoid the mutex create redundantly, application must follow bellow sequence for card re-initialization </p>
<div class="fragment"><div class="line"><a class="code" href="a00051.html#ga3b7ba8e7b9bfafde767535a7089da44d">SDIO_Deinit</a>(card);<span class="comment">/* This function will destroy the created mutex */</span></div>
<div class="line"><a class="code" href="a00051.html#ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d">SDIO_Init</a>(card);</div>
</div><!-- fragment --> <h2>Typical use case</h2>
<p>Refer to the driver examples codes located at &lt;SDK_ROOT&gt;/boards/&lt;BOARD&gt;/sdmmc_examples/ </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:a00407"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a00407">_sdio_card</a></td></tr>
<tr class="memdesc:a00407"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDIO card state. <a href="a00051.html#a00407">More...</a><br/></td></tr>
<tr class="separator:a00407"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gab1e1aa37ee346a5118f31e7899e921d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gab1e1aa37ee346a5118f31e7899e921d1">FSL_SDIO_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2U, 4U, 1U)) /*2.4.1*/</td></tr>
<tr class="memdesc:gab1e1aa37ee346a5118f31e7899e921d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Middleware version. <a href="#gab1e1aa37ee346a5118f31e7899e921d1">More...</a><br/></td></tr>
<tr class="separator:gab1e1aa37ee346a5118f31e7899e921d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga433c62975c819240b160a627eaa25092"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga433c62975c819240b160a627eaa25092"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga433c62975c819240b160a627eaa25092">FSL_SDIO_MAX_IO_NUMS</a>&#160;&#160;&#160;(7U)</td></tr>
<tr class="memdesc:ga433c62975c819240b160a627eaa25092"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio device support maximum IO number <br/></td></tr>
<tr class="separator:ga433c62975c819240b160a627eaa25092"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga262bb67a75ff6cf455c549dc43d2c5e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga262bb67a75ff6cf455c549dc43d2c5e9"></a>
typedef struct <a class="el" href="a00051.html#a00407">_sdio_card</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a></td></tr>
<tr class="memdesc:ga262bb67a75ff6cf455c549dc43d2c5e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio card descriptor <br/></td></tr>
<tr class="separator:ga262bb67a75ff6cf455c549dc43d2c5e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24b4be566dc13edf4efc5915fb431288"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga24b4be566dc13edf4efc5915fb431288"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga24b4be566dc13edf4efc5915fb431288">sdio_io_irq_handler_t</a> )(<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, uint32_t func)</td></tr>
<tr class="memdesc:ga24b4be566dc13edf4efc5915fb431288"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio io handler <br/></td></tr>
<tr class="separator:ga24b4be566dc13edf4efc5915fb431288"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41b5d57de79ccc3c8d4af341ea8e1556"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga41b5d57de79ccc3c8d4af341ea8e1556"></a>
typedef enum <a class="el" href="a00051.html#ga8faf0252f9d2c186af315b46fa9de742">_sdio_io_direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga41b5d57de79ccc3c8d4af341ea8e1556">sdio_io_direction_t</a></td></tr>
<tr class="memdesc:ga41b5d57de79ccc3c8d4af341ea8e1556"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio io read/write direction <br/></td></tr>
<tr class="separator:ga41b5d57de79ccc3c8d4af341ea8e1556"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga8faf0252f9d2c186af315b46fa9de742"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga8faf0252f9d2c186af315b46fa9de742">_sdio_io_direction</a> { <br/>
&#160;&#160;<a class="el" href="a00051.html#gga8faf0252f9d2c186af315b46fa9de742a7c72ffd0968a86552164ec85a5c3fd36">kSDIO_IORead</a> = 0U,
<br/>
&#160;&#160;<a class="el" href="a00051.html#gga8faf0252f9d2c186af315b46fa9de742ae1bcefbd4840a8519fe085167531a356">kSDIO_IOWrite</a> = 1U
<br/>
}</td></tr>
<tr class="memdesc:ga8faf0252f9d2c186af315b46fa9de742"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio io read/write direction <a href="a00051.html#ga8faf0252f9d2c186af315b46fa9de742">More...</a><br/></td></tr>
<tr class="separator:ga8faf0252f9d2c186af315b46fa9de742"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Initialization and deinitialization</h2></td></tr>
<tr class="memitem:ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d">SDIO_Init</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDIO card init function. <a href="#ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d">More...</a><br/></td></tr>
<tr class="separator:ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b7ba8e7b9bfafde767535a7089da44d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga3b7ba8e7b9bfafde767535a7089da44d">SDIO_Deinit</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:ga3b7ba8e7b9bfafde767535a7089da44d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDIO card deinit, include card and host deinit. <a href="#ga3b7ba8e7b9bfafde767535a7089da44d">More...</a><br/></td></tr>
<tr class="separator:ga3b7ba8e7b9bfafde767535a7089da44d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee0b26685255c5a69ded10b2371008c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gaee0b26685255c5a69ded10b2371008c0">SDIO_CardInit</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:gaee0b26685255c5a69ded10b2371008c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the card. <a href="#gaee0b26685255c5a69ded10b2371008c0">More...</a><br/></td></tr>
<tr class="separator:gaee0b26685255c5a69ded10b2371008c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13f67b379d7429002674ccf7d730465e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga13f67b379d7429002674ccf7d730465e">SDIO_CardDeinit</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:ga13f67b379d7429002674ccf7d730465e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes the card. <a href="#ga13f67b379d7429002674ccf7d730465e">More...</a><br/></td></tr>
<tr class="separator:ga13f67b379d7429002674ccf7d730465e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab812996961a7bf10ba20fe15ad6b058e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gab812996961a7bf10ba20fe15ad6b058e">SDIO_HostInit</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:gab812996961a7bf10ba20fe15ad6b058e"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the host. <a href="#gab812996961a7bf10ba20fe15ad6b058e">More...</a><br/></td></tr>
<tr class="separator:gab812996961a7bf10ba20fe15ad6b058e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga189f1410a950b2f5f1ee703239cebed3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga189f1410a950b2f5f1ee703239cebed3">SDIO_HostDeinit</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:ga189f1410a950b2f5f1ee703239cebed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes the host. <a href="#ga189f1410a950b2f5f1ee703239cebed3">More...</a><br/></td></tr>
<tr class="separator:ga189f1410a950b2f5f1ee703239cebed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac505825daac65f982b589ef10e8f64e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gac505825daac65f982b589ef10e8f64e0">SDIO_HostDoReset</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:gac505825daac65f982b589ef10e8f64e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">reset the host. <a href="#gac505825daac65f982b589ef10e8f64e0">More...</a><br/></td></tr>
<tr class="separator:gac505825daac65f982b589ef10e8f64e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7b2c66357f64588e8ab6ba45fc1bb29b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga7b2c66357f64588e8ab6ba45fc1bb29b">SDIO_SetCardPower</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, bool enable)</td></tr>
<tr class="memdesc:ga7b2c66357f64588e8ab6ba45fc1bb29b"><td class="mdescLeft">&#160;</td><td class="mdescRight">set card power. <a href="#ga7b2c66357f64588e8ab6ba45fc1bb29b">More...</a><br/></td></tr>
<tr class="separator:ga7b2c66357f64588e8ab6ba45fc1bb29b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8cb6ac091eeba10ef001d7ec50ef9adf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga8cb6ac091eeba10ef001d7ec50ef9adf">SDIO_CardInActive</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:ga8cb6ac091eeba10ef001d7ec50ef9adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">set SDIO card to inactive state <a href="#ga8cb6ac091eeba10ef001d7ec50ef9adf">More...</a><br/></td></tr>
<tr class="separator:ga8cb6ac091eeba10ef001d7ec50ef9adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafca21fb443a7642ab6b99d4477fd41b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gafca21fb443a7642ab6b99d4477fd41b0">SDIO_GetCardCapability</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func)</td></tr>
<tr class="memdesc:gafca21fb443a7642ab6b99d4477fd41b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">get SDIO card capability <a href="#gafca21fb443a7642ab6b99d4477fd41b0">More...</a><br/></td></tr>
<tr class="separator:gafca21fb443a7642ab6b99d4477fd41b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86024856b5fdb11ca5eb076c4d4ad370"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga86024856b5fdb11ca5eb076c4d4ad370">SDIO_SetBlockSize</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, uint32_t blockSize)</td></tr>
<tr class="memdesc:ga86024856b5fdb11ca5eb076c4d4ad370"><td class="mdescLeft">&#160;</td><td class="mdescRight">set SDIO card block size <a href="#ga86024856b5fdb11ca5eb076c4d4ad370">More...</a><br/></td></tr>
<tr class="separator:ga86024856b5fdb11ca5eb076c4d4ad370"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47ee885791070dc880f4b5e6027844f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga47ee885791070dc880f4b5e6027844f9">SDIO_CardReset</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:ga47ee885791070dc880f4b5e6027844f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">set SDIO card reset <a href="#ga47ee885791070dc880f4b5e6027844f9">More...</a><br/></td></tr>
<tr class="separator:ga47ee885791070dc880f4b5e6027844f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac5e6c4d0098f11caa7fc84236fba1bc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gac5e6c4d0098f11caa7fc84236fba1bc5">SDIO_SetDataBusWidth</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#ga8cc51288d0af245c76e55e4bd1f0a773">sdio_bus_width_t</a> busWidth)</td></tr>
<tr class="memdesc:gac5e6c4d0098f11caa7fc84236fba1bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">set SDIO card data bus width <a href="#gac5e6c4d0098f11caa7fc84236fba1bc5">More...</a><br/></td></tr>
<tr class="separator:gac5e6c4d0098f11caa7fc84236fba1bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78df99aeaeb2c0a9208cba6f243022a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga78df99aeaeb2c0a9208cba6f243022a3">SDIO_SwitchToHighSpeed</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:ga78df99aeaeb2c0a9208cba6f243022a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">switch the card to high speed <a href="#ga78df99aeaeb2c0a9208cba6f243022a3">More...</a><br/></td></tr>
<tr class="separator:ga78df99aeaeb2c0a9208cba6f243022a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf75b7891af56a6d6368e75f2e92b6223"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gaf75b7891af56a6d6368e75f2e92b6223">SDIO_ReadCIS</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, const uint32_t *tupleList, uint32_t tupleNum)</td></tr>
<tr class="memdesc:gaf75b7891af56a6d6368e75f2e92b6223"><td class="mdescLeft">&#160;</td><td class="mdescRight">read SDIO card CIS for each function <a href="#gaf75b7891af56a6d6368e75f2e92b6223">More...</a><br/></td></tr>
<tr class="separator:gaf75b7891af56a6d6368e75f2e92b6223"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a02395a67e477b281e13c2b43b35857"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga1a02395a67e477b281e13c2b43b35857">SDIO_PollingCardInsert</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, uint32_t status)</td></tr>
<tr class="memdesc:ga1a02395a67e477b281e13c2b43b35857"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio wait card detect function. <a href="#ga1a02395a67e477b281e13c2b43b35857">More...</a><br/></td></tr>
<tr class="separator:ga1a02395a67e477b281e13c2b43b35857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad02df0717fc54a10a2bb170cb5ab92b9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gad02df0717fc54a10a2bb170cb5ab92b9">SDIO_IsCardPresent</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:gad02df0717fc54a10a2bb170cb5ab92b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio card present check function. <a href="#gad02df0717fc54a10a2bb170cb5ab92b9">More...</a><br/></td></tr>
<tr class="separator:gad02df0717fc54a10a2bb170cb5ab92b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
IO operations</h2></td></tr>
<tr class="memitem:ga4cd4d79ffce74b8374b486e3f389a560"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga4cd4d79ffce74b8374b486e3f389a560">SDIO_IO_Write_Direct</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, uint32_t regAddr, uint8_t *data, bool raw)</td></tr>
<tr class="memdesc:ga4cd4d79ffce74b8374b486e3f389a560"><td class="mdescLeft">&#160;</td><td class="mdescRight">IO direct write transfer function. <a href="#ga4cd4d79ffce74b8374b486e3f389a560">More...</a><br/></td></tr>
<tr class="separator:ga4cd4d79ffce74b8374b486e3f389a560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacbe48b74676d809d9bcf948c89915c79"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gacbe48b74676d809d9bcf948c89915c79">SDIO_IO_Read_Direct</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, uint32_t regAddr, uint8_t *data)</td></tr>
<tr class="memdesc:gacbe48b74676d809d9bcf948c89915c79"><td class="mdescLeft">&#160;</td><td class="mdescRight">IO direct read transfer function. <a href="#gacbe48b74676d809d9bcf948c89915c79">More...</a><br/></td></tr>
<tr class="separator:gacbe48b74676d809d9bcf948c89915c79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga22478b5061fd90f914acc45574fdc7ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga22478b5061fd90f914acc45574fdc7ad">SDIO_IO_RW_Direct</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00051.html#ga41b5d57de79ccc3c8d4af341ea8e1556">sdio_io_direction_t</a> direction, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, uint32_t regAddr, uint8_t dataIn, uint8_t *dataOut)</td></tr>
<tr class="memdesc:ga22478b5061fd90f914acc45574fdc7ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">IO direct read/write transfer function. <a href="#ga22478b5061fd90f914acc45574fdc7ad">More...</a><br/></td></tr>
<tr class="separator:ga22478b5061fd90f914acc45574fdc7ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga419cc9819458bd605262ba149fa607dc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga419cc9819458bd605262ba149fa607dc">SDIO_IO_Write_Extended</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, uint32_t regAddr, uint8_t *buffer, uint32_t count, uint32_t flags)</td></tr>
<tr class="memdesc:ga419cc9819458bd605262ba149fa607dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">IO extended write transfer function. <a href="#ga419cc9819458bd605262ba149fa607dc">More...</a><br/></td></tr>
<tr class="separator:ga419cc9819458bd605262ba149fa607dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga663f22e0a9f35b5b6f6c8cfe062b9a19"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga663f22e0a9f35b5b6f6c8cfe062b9a19">SDIO_IO_Read_Extended</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, uint32_t regAddr, uint8_t *buffer, uint32_t count, uint32_t flags)</td></tr>
<tr class="memdesc:ga663f22e0a9f35b5b6f6c8cfe062b9a19"><td class="mdescLeft">&#160;</td><td class="mdescRight">IO extended read transfer function. <a href="#ga663f22e0a9f35b5b6f6c8cfe062b9a19">More...</a><br/></td></tr>
<tr class="separator:ga663f22e0a9f35b5b6f6c8cfe062b9a19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d90b3f3516e04d1d89f73c3b939eadb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga1d90b3f3516e04d1d89f73c3b939eadb">SDIO_EnableIOInterrupt</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, bool enable)</td></tr>
<tr class="memdesc:ga1d90b3f3516e04d1d89f73c3b939eadb"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable IO interrupt <a href="#ga1d90b3f3516e04d1d89f73c3b939eadb">More...</a><br/></td></tr>
<tr class="separator:ga1d90b3f3516e04d1d89f73c3b939eadb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85f16ed455700421111456391a889d1f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga85f16ed455700421111456391a889d1f">SDIO_EnableIO</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, bool enable)</td></tr>
<tr class="memdesc:ga85f16ed455700421111456391a889d1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">enable IO and wait IO ready <a href="#ga85f16ed455700421111456391a889d1f">More...</a><br/></td></tr>
<tr class="separator:ga85f16ed455700421111456391a889d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga499c1fe5773784b7ba199c076d365476"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga499c1fe5773784b7ba199c076d365476">SDIO_SelectIO</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func)</td></tr>
<tr class="memdesc:ga499c1fe5773784b7ba199c076d365476"><td class="mdescLeft">&#160;</td><td class="mdescRight">select IO <a href="#ga499c1fe5773784b7ba199c076d365476">More...</a><br/></td></tr>
<tr class="separator:ga499c1fe5773784b7ba199c076d365476"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd873183a1d4972c52e8e110af3503ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gacd873183a1d4972c52e8e110af3503ef">SDIO_AbortIO</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func)</td></tr>
<tr class="memdesc:gacd873183a1d4972c52e8e110af3503ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abort IO transfer. <a href="#gacd873183a1d4972c52e8e110af3503ef">More...</a><br/></td></tr>
<tr class="separator:gacd873183a1d4972c52e8e110af3503ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d7eb887cb13f6a837bb7b7ff42fdddc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga1d7eb887cb13f6a837bb7b7ff42fdddc">SDIO_SetDriverStrength</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#ga6af5598c7548245c6c9c192156309f48">sd_driver_strength_t</a> driverStrength)</td></tr>
<tr class="memdesc:ga1d7eb887cb13f6a837bb7b7ff42fdddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set driver strength. <a href="#ga1d7eb887cb13f6a837bb7b7ff42fdddc">More...</a><br/></td></tr>
<tr class="separator:ga1d7eb887cb13f6a837bb7b7ff42fdddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf30a83e0424613e2c44c4a61b2ffae32"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gaf30a83e0424613e2c44c4a61b2ffae32">SDIO_EnableAsyncInterrupt</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, bool enable)</td></tr>
<tr class="memdesc:gaf30a83e0424613e2c44c4a61b2ffae32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/Disable Async interrupt. <a href="#gaf30a83e0424613e2c44c4a61b2ffae32">More...</a><br/></td></tr>
<tr class="separator:gaf30a83e0424613e2c44c4a61b2ffae32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4e69a2c71e3fefb8e77f53dd43843ee1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga4e69a2c71e3fefb8e77f53dd43843ee1">SDIO_GetPendingInterrupt</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, uint8_t *pendingInt)</td></tr>
<tr class="memdesc:ga4e69a2c71e3fefb8e77f53dd43843ee1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get pending interrupt. <a href="#ga4e69a2c71e3fefb8e77f53dd43843ee1">More...</a><br/></td></tr>
<tr class="separator:ga4e69a2c71e3fefb8e77f53dd43843ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c0e3742026865e079ff4d15903b7b55"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ga5c0e3742026865e079ff4d15903b7b55">SDIO_IO_Transfer</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gaf698f2125b8d071c894ff0dce83619aa">sdio_command_t</a> cmd, uint32_t argument, uint32_t blockSize, uint8_t *txData, uint8_t *rxData, uint16_t dataSize, uint32_t *response)</td></tr>
<tr class="memdesc:ga5c0e3742026865e079ff4d15903b7b55"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio card io transfer function. <a href="#ga5c0e3742026865e079ff4d15903b7b55">More...</a><br/></td></tr>
<tr class="separator:ga5c0e3742026865e079ff4d15903b7b55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4c9b0351ead20e77eb148bc4cee7d42"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gac4c9b0351ead20e77eb148bc4cee7d42">SDIO_SetIOIRQHandler</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card, <a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a> func, <a class="el" href="a00051.html#ga24b4be566dc13edf4efc5915fb431288">sdio_io_irq_handler_t</a> handler)</td></tr>
<tr class="memdesc:gac4c9b0351ead20e77eb148bc4cee7d42"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio set io IRQ handler. <a href="#gac4c9b0351ead20e77eb148bc4cee7d42">More...</a><br/></td></tr>
<tr class="separator:gac4c9b0351ead20e77eb148bc4cee7d42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0749d472baa307fc39a74d493b3b49e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#gad0749d472baa307fc39a74d493b3b49e">SDIO_HandlePendingIOInterrupt</a> (<a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *card)</td></tr>
<tr class="memdesc:gad0749d472baa307fc39a74d493b3b49e"><td class="mdescLeft">&#160;</td><td class="mdescRight">sdio card io pending interrupt handle function. <a href="#gad0749d472baa307fc39a74d493b3b49e">More...</a><br/></td></tr>
<tr class="separator:gad0749d472baa307fc39a74d493b3b49e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00407" id="a00407"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _sdio_card</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"><p>Define the card structure including the necessary fields to identify and describe the card. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a8301abf00627ea4a4cfdadfd4b135eee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8301abf00627ea4a4cfdadfd4b135eee"></a>
<a class="el" href="a00053.html#ga3420a6f07f4698ce018b4020e720b9dc">sdmmchost_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a8301abf00627ea4a4cfdadfd4b135eee">host</a></td></tr>
<tr class="memdesc:a8301abf00627ea4a4cfdadfd4b135eee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Host information. <br/></td></tr>
<tr class="separator:a8301abf00627ea4a4cfdadfd4b135eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59f62838f3109b62e74c37d4eadfbef1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59f62838f3109b62e74c37d4eadfbef1"></a>
<a class="el" href="a00038.html#ga89c45df2b7890e98d13be1f5bf5b7d2b">sdio_usr_param_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a59f62838f3109b62e74c37d4eadfbef1">usrParam</a></td></tr>
<tr class="memdesc:a59f62838f3109b62e74c37d4eadfbef1"><td class="mdescLeft">&#160;</td><td class="mdescRight">user parameter <br/></td></tr>
<tr class="separator:a59f62838f3109b62e74c37d4eadfbef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67b7bd9b132180212052138dfb23e4c0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a67b7bd9b132180212052138dfb23e4c0">noInternalAlign</a></td></tr>
<tr class="memdesc:a67b7bd9b132180212052138dfb23e4c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">use this flag to disable sdmmc align. <a href="#a67b7bd9b132180212052138dfb23e4c0">More...</a><br/></td></tr>
<tr class="separator:a67b7bd9b132180212052138dfb23e4c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a3f7b8df0de874fb0aa8dcd223bf820"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a3f7b8df0de874fb0aa8dcd223bf820"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a0a3f7b8df0de874fb0aa8dcd223bf820">internalBuffer</a> [<a class="el" href="a00038.html#ga4dd122ccc71f9eef692acf27d5f851c3">FSL_SDMMC_CARD_INTERNAL_BUFFER_SIZE</a>]</td></tr>
<tr class="memdesc:a0a3f7b8df0de874fb0aa8dcd223bf820"><td class="mdescLeft">&#160;</td><td class="mdescRight">internal buffer <br/></td></tr>
<tr class="separator:a0a3f7b8df0de874fb0aa8dcd223bf820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cc6a2425392a1b7aa2d97d0a1f1f194"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6cc6a2425392a1b7aa2d97d0a1f1f194"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a6cc6a2425392a1b7aa2d97d0a1f1f194">isHostReady</a></td></tr>
<tr class="memdesc:a6cc6a2425392a1b7aa2d97d0a1f1f194"><td class="mdescLeft">&#160;</td><td class="mdescRight">use this flag to indicate if need host re-init or not <br/></td></tr>
<tr class="separator:a6cc6a2425392a1b7aa2d97d0a1f1f194"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cc32f295becb5d5c5c0db125b9b134c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7cc32f295becb5d5c5c0db125b9b134c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a7cc32f295becb5d5c5c0db125b9b134c">memPresentFlag</a></td></tr>
<tr class="memdesc:a7cc32f295becb5d5c5c0db125b9b134c"><td class="mdescLeft">&#160;</td><td class="mdescRight">indicate if memory present <br/></td></tr>
<tr class="separator:a7cc32f295becb5d5c5c0db125b9b134c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84d9acbadfcbd394eb6d2cbaf6294cd5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84d9acbadfcbd394eb6d2cbaf6294cd5"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a84d9acbadfcbd394eb6d2cbaf6294cd5">busClock_Hz</a></td></tr>
<tr class="memdesc:a84d9acbadfcbd394eb6d2cbaf6294cd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">SD bus clock frequency united in Hz. <br/></td></tr>
<tr class="separator:a84d9acbadfcbd394eb6d2cbaf6294cd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab155f7d87d616d8db85ebd566b1138a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab155f7d87d616d8db85ebd566b1138a1"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ab155f7d87d616d8db85ebd566b1138a1">relativeAddress</a></td></tr>
<tr class="memdesc:ab155f7d87d616d8db85ebd566b1138a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Relative address of the card. <br/></td></tr>
<tr class="separator:ab155f7d87d616d8db85ebd566b1138a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a21a93d79dea4d251d8a4cf729a12dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a21a93d79dea4d251d8a4cf729a12dd"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a4a21a93d79dea4d251d8a4cf729a12dd">sdVersion</a></td></tr>
<tr class="memdesc:a4a21a93d79dea4d251d8a4cf729a12dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">SD version. <br/></td></tr>
<tr class="separator:a4a21a93d79dea4d251d8a4cf729a12dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a890bffdb2a9cead345b3f332c8be2f29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a890bffdb2a9cead345b3f332c8be2f29"></a>
<a class="el" href="a00038.html#gac765d50e69b946e7323c69d60caa88a3">sd_timing_mode_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a890bffdb2a9cead345b3f332c8be2f29">currentTiming</a></td></tr>
<tr class="memdesc:a890bffdb2a9cead345b3f332c8be2f29"><td class="mdescLeft">&#160;</td><td class="mdescRight">current timing mode <br/></td></tr>
<tr class="separator:a890bffdb2a9cead345b3f332c8be2f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2eecc52c7018dbc3255a4dd7996df97"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab2eecc52c7018dbc3255a4dd7996df97"></a>
<a class="el" href="a00038.html#ga6af5598c7548245c6c9c192156309f48">sd_driver_strength_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ab2eecc52c7018dbc3255a4dd7996df97">driverStrength</a></td></tr>
<tr class="memdesc:ab2eecc52c7018dbc3255a4dd7996df97"><td class="mdescLeft">&#160;</td><td class="mdescRight">driver strength <br/></td></tr>
<tr class="separator:ab2eecc52c7018dbc3255a4dd7996df97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f06d773ac769a266692458ab2414db8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f06d773ac769a266692458ab2414db8"></a>
<a class="el" href="a00038.html#gaa06ea29530147a8b1e28d80d581c3933">sd_max_current_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a2f06d773ac769a266692458ab2414db8">maxCurrent</a></td></tr>
<tr class="memdesc:a2f06d773ac769a266692458ab2414db8"><td class="mdescLeft">&#160;</td><td class="mdescRight">card current limit <br/></td></tr>
<tr class="separator:a2f06d773ac769a266692458ab2414db8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a336e9f61ba8e793290efced614caf5e2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a336e9f61ba8e793290efced614caf5e2"></a>
<a class="el" href="a00038.html#ga2e26f7a56cad43b7f5d1128952d955e8">sdmmc_operation_voltage_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a336e9f61ba8e793290efced614caf5e2">operationVoltage</a></td></tr>
<tr class="memdesc:a336e9f61ba8e793290efced614caf5e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">card operation voltage <br/></td></tr>
<tr class="separator:a336e9f61ba8e793290efced614caf5e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1791cbed9b50b34d74be8218c287b70b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1791cbed9b50b34d74be8218c287b70b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a1791cbed9b50b34d74be8218c287b70b">sdioVersion</a></td></tr>
<tr class="memdesc:a1791cbed9b50b34d74be8218c287b70b"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDIO version. <br/></td></tr>
<tr class="separator:a1791cbed9b50b34d74be8218c287b70b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56d1cda32e97cbc216a272d9431a954a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56d1cda32e97cbc216a272d9431a954a"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a56d1cda32e97cbc216a272d9431a954a">cccrVersioin</a></td></tr>
<tr class="memdesc:a56d1cda32e97cbc216a272d9431a954a"><td class="mdescLeft">&#160;</td><td class="mdescRight">CCCR version. <br/></td></tr>
<tr class="separator:a56d1cda32e97cbc216a272d9431a954a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa49c42e57704429e2375e4724de90415"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa49c42e57704429e2375e4724de90415"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#aa49c42e57704429e2375e4724de90415">ioTotalNumber</a></td></tr>
<tr class="memdesc:aa49c42e57704429e2375e4724de90415"><td class="mdescLeft">&#160;</td><td class="mdescRight">total number of IO function <br/></td></tr>
<tr class="separator:aa49c42e57704429e2375e4724de90415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0390ef0fc6b98e5c381b237f7244d5a0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0390ef0fc6b98e5c381b237f7244d5a0"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a0390ef0fc6b98e5c381b237f7244d5a0">cccrflags</a></td></tr>
<tr class="memdesc:a0390ef0fc6b98e5c381b237f7244d5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags in _sd_card_flag. <br/></td></tr>
<tr class="separator:a0390ef0fc6b98e5c381b237f7244d5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a284a2564e1167d199d3ec060b165f4cb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a284a2564e1167d199d3ec060b165f4cb"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a284a2564e1167d199d3ec060b165f4cb">io0blockSize</a></td></tr>
<tr class="memdesc:a284a2564e1167d199d3ec060b165f4cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">record the io0 block size <br/></td></tr>
<tr class="separator:a284a2564e1167d199d3ec060b165f4cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c71a024c630845443b6a5e41ec35930"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c71a024c630845443b6a5e41ec35930"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a9c71a024c630845443b6a5e41ec35930">ocr</a></td></tr>
<tr class="memdesc:a9c71a024c630845443b6a5e41ec35930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw OCR content, only 24bit avalible for SDIO card. <br/></td></tr>
<tr class="separator:a9c71a024c630845443b6a5e41ec35930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb6615c5d2c4c5651c6c462ff5b4a944"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb6615c5d2c4c5651c6c462ff5b4a944"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#afb6615c5d2c4c5651c6c462ff5b4a944">commonCISPointer</a></td></tr>
<tr class="memdesc:afb6615c5d2c4c5651c6c462ff5b4a944"><td class="mdescLeft">&#160;</td><td class="mdescRight">point to common CIS <br/></td></tr>
<tr class="separator:afb6615c5d2c4c5651c6c462ff5b4a944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab467665f805b1815a5aa2818602bf35f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab467665f805b1815a5aa2818602bf35f"></a>
<a class="el" href="a00038.html#gada3c213299f0f90d16d809aea0221c03">sdio_common_cis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ab467665f805b1815a5aa2818602bf35f">commonCIS</a></td></tr>
<tr class="memdesc:ab467665f805b1815a5aa2818602bf35f"><td class="mdescLeft">&#160;</td><td class="mdescRight">CIS table. <br/></td></tr>
<tr class="separator:ab467665f805b1815a5aa2818602bf35f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad033072fc188dfcb250c3bc73b4b1a54"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad033072fc188dfcb250c3bc73b4b1a54"></a>
<a class="el" href="a00038.html#ga9db67a4f87b099d402a155c5fdafbfa1">sdio_fbr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ad033072fc188dfcb250c3bc73b4b1a54">ioFBR</a> [<a class="el" href="a00051.html#ga433c62975c819240b160a627eaa25092">FSL_SDIO_MAX_IO_NUMS</a>]</td></tr>
<tr class="memdesc:ad033072fc188dfcb250c3bc73b4b1a54"><td class="mdescLeft">&#160;</td><td class="mdescRight">FBR table. <br/></td></tr>
<tr class="separator:ad033072fc188dfcb250c3bc73b4b1a54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8d146ca6caa87623449dcf66b65baa0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8d146ca6caa87623449dcf66b65baa0"></a>
<a class="el" href="a00038.html#ga2b10ae0a16e52c44449f0e267b35528f">sdio_func_cis_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#af8d146ca6caa87623449dcf66b65baa0">funcCIS</a> [<a class="el" href="a00051.html#ga433c62975c819240b160a627eaa25092">FSL_SDIO_MAX_IO_NUMS</a>]</td></tr>
<tr class="memdesc:af8d146ca6caa87623449dcf66b65baa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">function CIS table <br/></td></tr>
<tr class="separator:af8d146ca6caa87623449dcf66b65baa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23aa57f6a7d2c5a4ada1acc24ee67503"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23aa57f6a7d2c5a4ada1acc24ee67503"></a>
<a class="el" href="a00051.html#ga24b4be566dc13edf4efc5915fb431288">sdio_io_irq_handler_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a23aa57f6a7d2c5a4ada1acc24ee67503">ioIRQHandler</a> [<a class="el" href="a00051.html#ga433c62975c819240b160a627eaa25092">FSL_SDIO_MAX_IO_NUMS</a>]</td></tr>
<tr class="memdesc:a23aa57f6a7d2c5a4ada1acc24ee67503"><td class="mdescLeft">&#160;</td><td class="mdescRight">io IRQ handler <br/></td></tr>
<tr class="separator:a23aa57f6a7d2c5a4ada1acc24ee67503"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ebd51f16c14917237a3b8ed68297f57"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ebd51f16c14917237a3b8ed68297f57"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a1ebd51f16c14917237a3b8ed68297f57">ioIntIndex</a></td></tr>
<tr class="memdesc:a1ebd51f16c14917237a3b8ed68297f57"><td class="mdescLeft">&#160;</td><td class="mdescRight">used to record current enabled io interrupt index <br/></td></tr>
<tr class="separator:a1ebd51f16c14917237a3b8ed68297f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b07912300563809afa03d889971ac0b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b07912300563809afa03d889971ac0b"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#a5b07912300563809afa03d889971ac0b">ioIntNums</a></td></tr>
<tr class="memdesc:a5b07912300563809afa03d889971ac0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">used to record total enabled io interrupt numbers <br/></td></tr>
<tr class="separator:a5b07912300563809afa03d889971ac0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3552d927583437062a83e0c190ee0b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3552d927583437062a83e0c190ee0b1"></a>
<a class="el" href="a00052.html#gab4b501fd4e841889183b1177e468eba9">sdmmc_osa_mutex_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html#ac3552d927583437062a83e0c190ee0b1">lock</a></td></tr>
<tr class="memdesc:ac3552d927583437062a83e0c190ee0b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">card access lock <br/></td></tr>
<tr class="separator:ac3552d927583437062a83e0c190ee0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a67b7bd9b132180212052138dfb23e4c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _sdio_card::noInternalAlign</td>
</tr>
</table>
</div><div class="memdoc">
<p>If disable, sdmmc will not make sure the data buffer address is word align, otherwise all the transfer are align to low level driver </p>
</div>
</div>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gab1e1aa37ee346a5118f31e7899e921d1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_SDIO_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="a00242.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2U, 4U, 1U)) /*2.4.1*/</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga8faf0252f9d2c186af315b46fa9de742"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00051.html#ga8faf0252f9d2c186af315b46fa9de742">_sdio_io_direction</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga8faf0252f9d2c186af315b46fa9de742a7c72ffd0968a86552164ec85a5c3fd36"></a>kSDIO_IORead</em>&nbsp;</td><td class="fielddoc">
<p>io read </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga8faf0252f9d2c186af315b46fa9de742ae1bcefbd4840a8519fe085167531a356"></a>kSDIO_IOWrite</em>&nbsp;</td><td class="fielddoc">
<p>io write </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_Init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Thread safe function, please note that the function will create the mutex lock dynamically by default, so to avoid the mutex create redundantly, application must follow bellow sequence for card re-initialization </p>
<div class="fragment"><div class="line">* <a class="code" href="a00051.html#ga3b7ba8e7b9bfafde767535a7089da44d">SDIO_Deinit</a>(card);</div>
<div class="line">* <a class="code" href="a00051.html#ga18c7e68c7f4f5377fc5f0a4ccd8b8a9d">SDIO_Init</a>(card);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_GoIdleFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_HandShakeOperationConditionFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_InvalidCard</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_InvalidVoltage</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SendRelativeAddressFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SelectCardFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_SwitchHighSpeedFail</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_ReadCISFail</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga3b7ba8e7b9bfafde767535a7089da44d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SDIO_Deinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaee0b26685255c5a69ded10b2371008c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_CardInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function initializes the card only, make sure the host is ready when call this function, otherwise it will return kStatus_SDMMC_HostNotReady.</p>
<p>Thread safe function, please note that the function will create the mutex lock dynamically by default, so to avoid the mutex create redundantly, application must follow bellow sequence for card re-initialization </p>
<div class="fragment"><div class="line">* <a class="code" href="a00051.html#ga13f67b379d7429002674ccf7d730465e">SDIO_CardDeinit</a>(card);</div>
<div class="line">* <a class="code" href="a00051.html#gaee0b26685255c5a69ded10b2371008c0">SDIO_CardInit</a>(card);</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_HostNotReady</td><td>host is not ready. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_GoIdleFailed</td><td>Go idle failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_NotSupportYet</td><td>Card not support. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SendOperationConditionFailed</td><td>Send operation condition failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_AllSendCidFailed</td><td>Send CID failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SendRelativeAddressFailed</td><td>Send relative address failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SendCsdFailed</td><td>Send CSD failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SelectCardFailed</td><td>Send SELECT_CARD command failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SendScrFailed</td><td>Send SCR failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SetBusWidthFailed</td><td>Set bus width failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SwitchHighSpeedFailed</td><td>Switch high speed failed. </td></tr>
<tr><td class="paramname">kStatus_SDMMC_SetCardBlockSizeFailed</td><td>Set card block size failed. </td></tr>
<tr><td class="paramname">kStatus_Success</td><td>Operate successfully. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga13f67b379d7429002674ccf7d730465e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SDIO_CardDeinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deinitializes the specific card.</p>
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab812996961a7bf10ba20fe15ad6b058e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_HostInit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deinitializes the specific host.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga189f1410a950b2f5f1ee703239cebed3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SDIO_HostDeinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function deinitializes the host.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac505825daac65f982b589ef10e8f64e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SDIO_HostDoReset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function reset the specific host.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga7b2c66357f64588e8ab6ba45fc1bb29b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SDIO_SetCardPower </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The power off operation depend on host or the user define power on function. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>card descriptor. </td></tr>
<tr><td class="paramname">enable</td><td>true is power on, false is power off. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga8cb6ac091eeba10ef001d7ec50ef9adf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_CardInActive </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gafca21fb443a7642ab6b99d4477fd41b0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_GetCardCapability </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga86024856b5fdb11ca5eb076c4d4ad370"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_SetBlockSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>blockSize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>io number </td></tr>
<tr><td class="paramname">blockSize</td><td>block size </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_SetCardBlockSizeFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_InvalidArgument</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga47ee885791070dc880f4b5e6027844f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_CardReset </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac5e6c4d0098f11caa7fc84236fba1bc5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_SetDataBusWidth </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#ga8cc51288d0af245c76e55e4bd1f0a773">sdio_bus_width_t</a>&#160;</td>
<td class="paramname"><em>busWidth</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">busWidth</td><td>bus width </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga78df99aeaeb2c0a9208cba6f243022a3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_SwitchToHighSpeed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_SwitchHighSpeedFail</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf75b7891af56a6d6368e75f2e92b6223"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_ReadCIS </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint32_t *&#160;</td>
<td class="paramname"><em>tupleList</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>tupleNum</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>io number </td></tr>
<tr><td class="paramname">tupleList</td><td>code list </td></tr>
<tr><td class="paramname">tupleNum</td><td>code number </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_SDIO_ReadCISFail</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1a02395a67e477b281e13c2b43b35857"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_PollingCardInsert </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>status</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Detect card through GPIO, CD, DATA3. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>card descriptor. </td></tr>
<tr><td class="paramname">status</td><td>detect status, kSD_Inserted or kSD_Removed. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad02df0717fc54a10a2bb170cb5ab92b9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool SDIO_IsCardPresent </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>card descriptor. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4cd4d79ffce74b8374b486e3f389a560"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_IO_Write_Direct </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>regAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>raw</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO numner </td></tr>
<tr><td class="paramname">regAddr</td><td>register address </td></tr>
<tr><td class="paramname">data</td><td>the data pinter to write </td></tr>
<tr><td class="paramname">raw</td><td>flag, indicate read after write or write only </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gacbe48b74676d809d9bcf948c89915c79"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_IO_Read_Direct </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>regAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
<tr><td class="paramname">regAddr</td><td>register address </td></tr>
<tr><td class="paramname">data</td><td>pointer to read </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga22478b5061fd90f914acc45574fdc7ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_IO_RW_Direct </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00051.html#ga41b5d57de79ccc3c8d4af341ea8e1556">sdio_io_direction_t</a>&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>regAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>dataIn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>dataOut</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">direction</td><td>io access direction, please reference sdio_io_direction_t. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
<tr><td class="paramname">regAddr</td><td>register address </td></tr>
<tr><td class="paramname">dataIn</td><td>data to write </td></tr>
<tr><td class="paramname">dataOut</td><td>data pointer for readback data, support both for read and write, when application want readback the data after write command, dataOut should not be NULL. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga419cc9819458bd605262ba149fa607dc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_IO_Write_Extended </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>regAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
<tr><td class="paramname">regAddr</td><td>register address </td></tr>
<tr><td class="paramname">buffer</td><td>data buffer to write </td></tr>
<tr><td class="paramname">count</td><td>data count </td></tr>
<tr><td class="paramname">flags</td><td>write flags </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_InvalidArgument</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga663f22e0a9f35b5b6f6c8cfe062b9a19"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_IO_Read_Extended </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>regAddr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>flags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
<tr><td class="paramname">regAddr</td><td>register address </td></tr>
<tr><td class="paramname">buffer</td><td>data buffer to read </td></tr>
<tr><td class="paramname">count</td><td>data count </td></tr>
<tr><td class="paramname">flags</td><td>write flags </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_SDMMC_SDIO_InvalidArgument</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1d90b3f3516e04d1d89f73c3b939eadb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_EnableIOInterrupt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
<tr><td class="paramname">enable</td><td>enable/disable flag </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga85f16ed455700421111456391a889d1f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_EnableIO </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
<tr><td class="paramname">enable</td><td>enable/disable flag </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga499c1fe5773784b7ba199c076d365476"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_SelectIO </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gacd873183a1d4972c52e8e110af3503ef"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_AbortIO </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>IO number </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1d7eb887cb13f6a837bb7b7ff42fdddc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_SetDriverStrength </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#ga6af5598c7548245c6c9c192156309f48">sd_driver_strength_t</a>&#160;</td>
<td class="paramname"><em>driverStrength</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">driverStrength</td><td>target driver strength. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaf30a83e0424613e2c44c4a61b2ffae32"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_EnableAsyncInterrupt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>enable</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">enable</td><td>true is enable, false is disable. </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga4e69a2c71e3fefb8e77f53dd43843ee1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_GetPendingInterrupt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>pendingInt</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>Card descriptor. </td></tr>
<tr><td class="paramname">pendingInt</td><td>pointer store pending interrupt </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga5c0e3742026865e079ff4d15903b7b55"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_IO_Transfer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gaf698f2125b8d071c894ff0dce83619aa">sdio_command_t</a>&#160;</td>
<td class="paramname"><em>cmd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>argument</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>blockSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>txData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>rxData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dataSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t *&#160;</td>
<td class="paramname"><em>response</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function can be used for trnansfer direct/extend command. Please pay attention to the non-align data buffer address transfer, if data buffer address can not meet host controller internal DMA requirement, sdio driver will try to use internal align buffer if data size is not bigger than internal buffer size, Align address transfer always can get a better performance, so if application want sdio driver make sure buffer address align,</p>
<p>Please note it is a thread safe function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>card descriptor. </td></tr>
<tr><td class="paramname">cmd</td><td>command to transfer </td></tr>
<tr><td class="paramname">argument</td><td>argument to transfer </td></tr>
<tr><td class="paramname">blockSize</td><td>used for block mode. </td></tr>
<tr><td class="paramname">txData</td><td>tx buffer pointer or NULL </td></tr>
<tr><td class="paramname">rxData</td><td>rx buffer pointer or NULL </td></tr>
<tr><td class="paramname">dataSize</td><td>transfer data size </td></tr>
<tr><td class="paramname">response</td><td>reponse pointer, if application want read response back, please set it to a NON-NULL pointer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gac4c9b0351ead20e77eb148bc4cee7d42"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void SDIO_SetIOIRQHandler </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00038.html#gad722009dfc65efffdbac0fb5eedccf31">sdio_func_num_t</a>&#160;</td>
<td class="paramname"><em>func</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00051.html#ga24b4be566dc13edf4efc5915fb431288">sdio_io_irq_handler_t</a>&#160;</td>
<td class="paramname"><em>handler</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>card descriptor. </td></tr>
<tr><td class="paramname">func</td><td>function io number. </td></tr>
<tr><td class="paramname">handler</td><td>io IRQ handler. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad0749d472baa307fc39a74d493b3b49e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="a00242.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> SDIO_HandlePendingIOInterrupt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00051.html#ga262bb67a75ff6cf455c549dc43d2c5e9">sdio_card_t</a> *&#160;</td>
<td class="paramname"><em>card</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This function is used to handle the pending io interrupt. To reigster a IO IRQ handler, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00051.html#ga1d90b3f3516e04d1d89f73c3b939eadb">SDIO_EnableIOInterrupt</a>(card, 0, <span class="keyword">true</span>);</div>
<div class="line">* <a class="code" href="a00051.html#gac4c9b0351ead20e77eb148bc4cee7d42">SDIO_SetIOIRQHandler</a>(card, 0, func0_handler);</div>
<div class="line">* </div>
</div><!-- fragment --><p> call it in interrupt callback </p>
<div class="fragment"><div class="line">* <a class="code" href="a00051.html#gad0749d472baa307fc39a74d493b3b49e">SDIO_HandlePendingIOInterrupt</a>(card);</div>
<div class="line">* </div>
</div><!-- fragment --><p> To releae a IO IRQ handler, </p>
<div class="fragment"><div class="line">* <a class="code" href="a00051.html#ga1d90b3f3516e04d1d89f73c3b939eadb">SDIO_EnableIOInterrupt</a>(card, 0, <span class="keyword">false</span>);</div>
<div class="line">* <a class="code" href="a00051.html#gac4c9b0351ead20e77eb148bc4cee7d42">SDIO_SetIOIRQHandler</a>(card, 0, NULL);</div>
<div class="line">* </div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">card</td><td>card descriptor.</td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">kStatus_SDMMC_TransferFailed</td><td></td></tr>
<tr><td class="paramname">kStatus_Success</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul class="foot">
<li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
</li>
</ul>
</div>
</body>
</html>