MCUXpresso_MIMXRT1021xxxxx/docs/MCUXpresso SDK API Referenc.../a00026.html

886 lines
55 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: FlexIO Camera 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('a00026.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="#groups">Modules</a> &#124;
<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">FlexIO Camera Driver<div class="ingroups"><a class="el" href="a00266.html">FlexIO: FlexIO Driver</a></div></div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a driver for the camera function using Flexible I/O.</p>
<p>FlexIO Camera driver includes functional APIs and eDMA transactional APIs. Functional APIs target low level APIs. Users can use functional APIs for FlexIO Camera initialization/configuration/operation purpose. Using the functional API requires knowledge of the FlexIO Camera peripheral and how to organize functional APIs to meet the requirements of the application. All functional API use the FLEXIO_CAMERA_Type * as the first parameter. FlexIO Camera functional operation groups provide the functional APIs set.</p>
<p>eDMA transactional APIs target high-level APIs. Users can use the transactional API to enable the peripheral quickly and can also use in the application if the code size and performance of transactional APIs satisfy requirements. If the code size and performance are critical requirements, see the transactional API implementation and write custom code. All transactional APIs use the flexio_camera_edma_handle_t as the second parameter. Users need to initialize the handle by calling the <a class="el" href="a00027.html#gafcfbdd57ed04df3dc16ef839c1b94b36" title="Initializes the Camera handle, which is used in transactional functions. ">FLEXIO_CAMERA_TransferCreateHandleEDMA()</a> API.</p>
<p>eDMA transactional APIs support asynchronous receive. This means that the functions <a class="el" href="a00027.html#ga0d33545dd2a68785b201ab14903cd93f" title="Receives data using eDMA. ">FLEXIO_CAMERA_TransferReceiveEDMA()</a> set up an interrupt for data receive. When the receive is complete, the upper layer is notified through a callback function with the status kStatus_FLEXIO_CAMERA_RxIdle.</p>
<h1><a class="anchor" id="FLEXIO_CAMERACase"></a>
Typical use case</h1>
<h2><a class="anchor" id="CAMERACasePolling"></a>
FlexIO Camera Receive using eDMA method</h2>
<div class="fragment"><div class="line"><span class="keyword">volatile</span> uint32_t isEDMAGetOnePictureFinish = <span class="keyword">false</span>;</div>
<div class="line"><a class="code" href="a00021.html#a00336">edma_handle_t</a> g_edmaHandle;</div>
<div class="line"><a class="code" href="a00027.html#a00364">flexio_camera_edma_handle_t</a> g_cameraEdmaHandle;</div>
<div class="line"><a class="code" href="a00021.html#a00335">edma_config_t</a> edmaConfig;</div>
<div class="line"><a class="code" href="a00026.html#a00366">FLEXIO_CAMERA_Type</a> g_FlexioCameraDevice = {.<a class="code" href="a00026.html#a0cc4eb66a5d9fae52d11ed43d3c70a13">flexioBase</a> = FLEXIO0,</div>
<div class="line"> .datPinStartIdx = 24U, <span class="comment">/* fxio_pin 24 -31 are used. */</span></div>
<div class="line"> .pclkPinIdx = 1U, <span class="comment">/* fxio_pin 1 is used as pclk pin. */</span></div>
<div class="line"> .hrefPinIdx = 18U, <span class="comment">/* flexio_pin 18 is used as href pin. */</span></div>
<div class="line"> .shifterStartIdx = 0U, <span class="comment">/* Shifter 0 = 7 are used. */</span></div>
<div class="line"> .shifterCount = 8U,</div>
<div class="line"> .timerIdx = 0U};</div>
<div class="line"><a class="code" href="a00026.html#a00363">flexio_camera_config_t</a> cameraConfig;</div>
<div class="line"></div>
<div class="line"><span class="comment">/* Configure DMAMUX */</span></div>
<div class="line"><a class="code" href="a00263.html#ga850545ac61a004df8ca312db2ca9db73">DMAMUX_Init</a>(DMAMUX0);</div>
<div class="line"><span class="comment">/* Configure DMA */</span></div>
<div class="line"><a class="code" href="a00021.html#ga9851dc5addd6a1fc557bfdb625aa5c19">EDMA_GetDefaultConfig</a>(&amp;edmaConfig);</div>
<div class="line"><a class="code" href="a00021.html#gaf7588eb4b54499f0f55c698bd98bc1bb">EDMA_Init</a>(DMA0, &amp;edmaConfig);</div>
<div class="line"></div>
<div class="line"><a class="code" href="a00263.html#gab4cfa329d636dc52dffb7fedef84367e">DMAMUX_SetSource</a>(DMAMUX0, DMA_CHN_FLEXIO_TO_FRAMEBUFF, (g_FlexioCameraDevice.<a class="code" href="a00026.html#a203b446cf0bac1a0252ce546d618183e">shifterStartIdx</a> + 1U));</div>
<div class="line"><a class="code" href="a00263.html#gaecac68802d961c31a06389caa97387f5">DMAMUX_EnableChannel</a>(DMAMUX0, DMA_CHN_FLEXIO_TO_FRAMEBUFF);</div>
<div class="line"><a class="code" href="a00021.html#gae71842684e693908395784e8b7f7ef55">EDMA_CreateHandle</a>(&amp;g_edmaHandle, DMA0, DMA_CHN_FLEXIO_TO_FRAMEBUFF);</div>
<div class="line"></div>
<div class="line"><a class="code" href="a00026.html#ga802016ccb9ed8299101f66455b85d7db">FLEXIO_CAMERA_GetDefaultConfig</a>(&amp;cameraConfig);</div>
<div class="line"><a class="code" href="a00026.html#ga673dbe9cee73c1bc18a48d4903ae0d0f">FLEXIO_CAMERA_Init</a>(&amp;g_FlexioCameraDevice, &amp;cameraConfig);</div>
<div class="line"><span class="comment">/* Clear all the flag. */</span></div>
<div class="line"><a class="code" href="a00026.html#ga4c753515929810195e0dd5da14a46ef3">FLEXIO_CAMERA_ClearStatusFlags</a>(&amp;g_FlexioCameraDevice,</div>
<div class="line"> <a class="code" href="a00026.html#gga19fc70fddf16fa061eff3de0f46ee888a3d55cd5136d4cbb5ea3ae3372d7b98ef">kFLEXIO_CAMERA_RxDataRegFullFlag</a> | <a class="code" href="a00026.html#gga19fc70fddf16fa061eff3de0f46ee888ae360d4782ef1e0ef0e2a03ebe7bd43a2">kFLEXIO_CAMERA_RxErrorFlag</a>);</div>
<div class="line"><a class="code" href="a00028.html#gaa61aa3b919ac1c0622076d631f14d3af">FLEXIO_ClearTimerStatusFlags</a>(FLEXIO0, 0xFF);</div>
<div class="line"><a class="code" href="a00027.html#gafcfbdd57ed04df3dc16ef839c1b94b36">FLEXIO_CAMERA_TransferCreateHandleEDMA</a>(&amp;g_FlexioCameraDevice, &amp;g_cameraEdmaHandle, FLEXIO_CAMERA_UserCallback, NULL,</div>
<div class="line"> &amp;g_edmaHandle);</div>
<div class="line">cameraTransfer.dataAddress = (uint32_t)u16CameraFrameBuffer;</div>
<div class="line">cameraTransfer.dataNum = <span class="keyword">sizeof</span>(u16CameraFrameBuffer);</div>
<div class="line"><a class="code" href="a00027.html#ga0d33545dd2a68785b201ab14903cd93f">FLEXIO_CAMERA_TransferReceiveEDMA</a>(&amp;g_FlexioCameraDevice, &amp;g_cameraEdmaHandle, &amp;cameraTransfer);</div>
<div class="line"><span class="keywordflow">while</span> (!(isEDMAGetOnePictureFinish))</div>
<div class="line">{</div>
<div class="line"> ;</div>
<div class="line">}</div>
<div class="line"></div>
<div class="line"><span class="comment">/* A callback function is also needed */</span></div>
<div class="line"><span class="keywordtype">void</span> FLEXIO_CAMERA_UserCallback(<a class="code" href="a00026.html#a00366">FLEXIO_CAMERA_Type</a> *base,</div>
<div class="line"> <a class="code" href="a00027.html#a00364">flexio_camera_edma_handle_t</a> *handle,</div>
<div class="line"> <a class="code" href="a00260.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> status,</div>
<div class="line"> <span class="keywordtype">void</span> *userData)</div>
<div class="line">{</div>
<div class="line"> userData = userData;</div>
<div class="line"> <span class="comment">/* eDMA Transfer finished */</span></div>
<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="a00026.html#gga0ed680fdb405e7195d9f14032851eebba1350eedcb89f16d93727f570b63a79b4">kStatus_FLEXIO_CAMERA_RxIdle</a> == status)</div>
<div class="line"> {</div>
<div class="line"> isEDMAGetOnePictureFinish = <span class="keyword">true</span>;</div>
<div class="line"> }</div>
<div class="line">}</div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:a00027"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">FlexIO eDMA Camera Driver</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a00366"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a00366">_flexio_camera_type</a></td></tr>
<tr class="memdesc:a00366"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define structure of configuring the FlexIO Camera device. <a href="a00026.html#a00366">More...</a><br/></td></tr>
<tr class="separator:a00366"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00363"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a00363">_flexio_camera_config</a></td></tr>
<tr class="memdesc:a00363"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO Camera user configuration structure. <a href="a00026.html#a00363">More...</a><br/></td></tr>
<tr class="separator:a00363"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00365"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a00365">_flexio_camera_transfer</a></td></tr>
<tr class="memdesc:a00365"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO Camera transfer structure. <a href="a00026.html#a00365">More...</a><br/></td></tr>
<tr class="separator:a00365"><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:ga353a8218bf5dd22032b9055285e2bb49"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga353a8218bf5dd22032b9055285e2bb49">FLEXIO_CAMERA_PARALLEL_DATA_WIDTH</a>&#160;&#160;&#160;(8U)</td></tr>
<tr class="memdesc:ga353a8218bf5dd22032b9055285e2bb49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the Camera CPI interface is constantly 8-bit width. <a href="#ga353a8218bf5dd22032b9055285e2bb49">More...</a><br/></td></tr>
<tr class="separator:ga353a8218bf5dd22032b9055285e2bb49"><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:ga8469ec2f5177b9aa71fd65032efc6bf7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8469ec2f5177b9aa71fd65032efc6bf7"></a>
typedef struct <a class="el" href="a00026.html#a00366">_flexio_camera_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a></td></tr>
<tr class="memdesc:ga8469ec2f5177b9aa71fd65032efc6bf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define structure of configuring the FlexIO Camera device. <br/></td></tr>
<tr class="separator:ga8469ec2f5177b9aa71fd65032efc6bf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea627d9388fe88477f9622c04c84bc84"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="a00026.html#a00363">_flexio_camera_config</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#gaea627d9388fe88477f9622c04c84bc84">flexio_camera_config_t</a></td></tr>
<tr class="memdesc:gaea627d9388fe88477f9622c04c84bc84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO Camera user configuration structure. <a href="#gaea627d9388fe88477f9622c04c84bc84">More...</a><br/></td></tr>
<tr class="separator:gaea627d9388fe88477f9622c04c84bc84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f8f31be1073c6d3a85e11d9b23dd93a"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="a00026.html#a00365">_flexio_camera_transfer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga9f8f31be1073c6d3a85e11d9b23dd93a">flexio_camera_transfer_t</a></td></tr>
<tr class="memdesc:ga9f8f31be1073c6d3a85e11d9b23dd93a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO Camera transfer structure. <a href="#ga9f8f31be1073c6d3a85e11d9b23dd93a">More...</a><br/></td></tr>
<tr class="separator:ga9f8f31be1073c6d3a85e11d9b23dd93a"><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:ga0ed680fdb405e7195d9f14032851eebb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<a class="el" href="a00026.html#gga0ed680fdb405e7195d9f14032851eebba68a8386d9dc811f20b4955edc9e456ae">kStatus_FLEXIO_CAMERA_RxBusy</a> = MAKE_STATUS(kStatusGroup_FLEXIO_CAMERA, 0),
<br/>
&#160;&#160;<a class="el" href="a00026.html#gga0ed680fdb405e7195d9f14032851eebba1350eedcb89f16d93727f570b63a79b4">kStatus_FLEXIO_CAMERA_RxIdle</a> = MAKE_STATUS(kStatusGroup_FLEXIO_CAMERA, 1)
<br/>
}</td></tr>
<tr class="memdesc:ga0ed680fdb405e7195d9f14032851eebb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error codes for the Camera driver. <a href="a00026.html#ga0ed680fdb405e7195d9f14032851eebb">More...</a><br/></td></tr>
<tr class="separator:ga0ed680fdb405e7195d9f14032851eebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19fc70fddf16fa061eff3de0f46ee888"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga19fc70fddf16fa061eff3de0f46ee888">_flexio_camera_status_flags</a> { <br/>
&#160;&#160;<a class="el" href="a00026.html#gga19fc70fddf16fa061eff3de0f46ee888a3d55cd5136d4cbb5ea3ae3372d7b98ef">kFLEXIO_CAMERA_RxDataRegFullFlag</a> = 0x1U,
<br/>
&#160;&#160;<a class="el" href="a00026.html#gga19fc70fddf16fa061eff3de0f46ee888ae360d4782ef1e0ef0e2a03ebe7bd43a2">kFLEXIO_CAMERA_RxErrorFlag</a> = 0x2U
<br/>
}</td></tr>
<tr class="memdesc:ga19fc70fddf16fa061eff3de0f46ee888"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define FlexIO Camera status mask. <a href="a00026.html#ga19fc70fddf16fa061eff3de0f46ee888">More...</a><br/></td></tr>
<tr class="separator:ga19fc70fddf16fa061eff3de0f46ee888"><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>
Driver version</h2></td></tr>
<tr class="memitem:gaf67f7409d83d5806e8dee459e28ea116"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#gaf67f7409d83d5806e8dee459e28ea116">FSL_FLEXIO_CAMERA_DRIVER_VERSION</a>&#160;&#160;&#160;(<a class="el" href="a00260.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 3))</td></tr>
<tr class="memdesc:gaf67f7409d83d5806e8dee459e28ea116"><td class="mdescLeft">&#160;</td><td class="mdescRight">FlexIO Camera driver version 2.1.3. <a href="#gaf67f7409d83d5806e8dee459e28ea116">More...</a><br/></td></tr>
<tr class="separator:gaf67f7409d83d5806e8dee459e28ea116"><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 configuration</h2></td></tr>
<tr class="memitem:ga673dbe9cee73c1bc18a48d4903ae0d0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga673dbe9cee73c1bc18a48d4903ae0d0f">FLEXIO_CAMERA_Init</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base, const <a class="el" href="a00026.html#gaea627d9388fe88477f9622c04c84bc84">flexio_camera_config_t</a> *config)</td></tr>
<tr class="memdesc:ga673dbe9cee73c1bc18a48d4903ae0d0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ungates the FlexIO clock, resets the FlexIO module, and configures the FlexIO Camera. <a href="#ga673dbe9cee73c1bc18a48d4903ae0d0f">More...</a><br/></td></tr>
<tr class="separator:ga673dbe9cee73c1bc18a48d4903ae0d0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b12eeccfdc9ec539b5ffdc09fba62e0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga1b12eeccfdc9ec539b5ffdc09fba62e0">FLEXIO_CAMERA_Deinit</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base)</td></tr>
<tr class="memdesc:ga1b12eeccfdc9ec539b5ffdc09fba62e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the FLEXIO_CAMERA shifer and timer config. <a href="#ga1b12eeccfdc9ec539b5ffdc09fba62e0">More...</a><br/></td></tr>
<tr class="separator:ga1b12eeccfdc9ec539b5ffdc09fba62e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga802016ccb9ed8299101f66455b85d7db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga802016ccb9ed8299101f66455b85d7db">FLEXIO_CAMERA_GetDefaultConfig</a> (<a class="el" href="a00026.html#gaea627d9388fe88477f9622c04c84bc84">flexio_camera_config_t</a> *config)</td></tr>
<tr class="memdesc:ga802016ccb9ed8299101f66455b85d7db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the default configuration to configure the FlexIO Camera. <a href="#ga802016ccb9ed8299101f66455b85d7db">More...</a><br/></td></tr>
<tr class="separator:ga802016ccb9ed8299101f66455b85d7db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52b2866e7ad0762f97cbdf69078e135e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga52b2866e7ad0762f97cbdf69078e135e">FLEXIO_CAMERA_Enable</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base, bool enable)</td></tr>
<tr class="memdesc:ga52b2866e7ad0762f97cbdf69078e135e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the FlexIO Camera module operation. <a href="#ga52b2866e7ad0762f97cbdf69078e135e">More...</a><br/></td></tr>
<tr class="separator:ga52b2866e7ad0762f97cbdf69078e135e"><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>
Status</h2></td></tr>
<tr class="memitem:gae01bba01f0d99e23dd82bdeb9c4c37e4"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#gae01bba01f0d99e23dd82bdeb9c4c37e4">FLEXIO_CAMERA_GetStatusFlags</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base)</td></tr>
<tr class="memdesc:gae01bba01f0d99e23dd82bdeb9c4c37e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the FlexIO Camera status flags. <a href="#gae01bba01f0d99e23dd82bdeb9c4c37e4">More...</a><br/></td></tr>
<tr class="separator:gae01bba01f0d99e23dd82bdeb9c4c37e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c753515929810195e0dd5da14a46ef3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga4c753515929810195e0dd5da14a46ef3">FLEXIO_CAMERA_ClearStatusFlags</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga4c753515929810195e0dd5da14a46ef3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the receive buffer full flag manually. <a href="#ga4c753515929810195e0dd5da14a46ef3">More...</a><br/></td></tr>
<tr class="separator:ga4c753515929810195e0dd5da14a46ef3"><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>
Interrupts</h2></td></tr>
<tr class="memitem:gae11112fd27c1b8f7b7ac4a1a22fc3b57"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#gae11112fd27c1b8f7b7ac4a1a22fc3b57">FLEXIO_CAMERA_EnableInterrupt</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base)</td></tr>
<tr class="memdesc:gae11112fd27c1b8f7b7ac4a1a22fc3b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches on the interrupt for receive buffer full event. <a href="#gae11112fd27c1b8f7b7ac4a1a22fc3b57">More...</a><br/></td></tr>
<tr class="separator:gae11112fd27c1b8f7b7ac4a1a22fc3b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga74103c49cfe67a9bb882e4646801515d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ga74103c49cfe67a9bb882e4646801515d">FLEXIO_CAMERA_DisableInterrupt</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base)</td></tr>
<tr class="memdesc:ga74103c49cfe67a9bb882e4646801515d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switches off the interrupt for receive buffer full event. <a href="#ga74103c49cfe67a9bb882e4646801515d">More...</a><br/></td></tr>
<tr class="separator:ga74103c49cfe67a9bb882e4646801515d"><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>
DMA support</h2></td></tr>
<tr class="memitem:gad32bb2551177c3f21d372fff9cebe4cb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#gad32bb2551177c3f21d372fff9cebe4cb">FLEXIO_CAMERA_EnableRxDMA</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base, bool enable)</td></tr>
<tr class="memdesc:gad32bb2551177c3f21d372fff9cebe4cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables/disables the FlexIO Camera receive DMA. <a href="#gad32bb2551177c3f21d372fff9cebe4cb">More...</a><br/></td></tr>
<tr class="separator:gad32bb2551177c3f21d372fff9cebe4cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadec05a7c9f34ca3d4790c6c54db455dd"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#gadec05a7c9f34ca3d4790c6c54db455dd">FLEXIO_CAMERA_GetRxBufferAddress</a> (<a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *base)</td></tr>
<tr class="memdesc:gadec05a7c9f34ca3d4790c6c54db455dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the data from the receive buffer. <a href="#gadec05a7c9f34ca3d4790c6c54db455dd">More...</a><br/></td></tr>
<tr class="separator:gadec05a7c9f34ca3d4790c6c54db455dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="a00366" id="a00366"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flexio_camera_type</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a0cc4eb66a5d9fae52d11ed43d3c70a13"><td class="memItemLeft" align="right" valign="top">FLEXIO_Type *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a0cc4eb66a5d9fae52d11ed43d3c70a13">flexioBase</a></td></tr>
<tr class="memdesc:a0cc4eb66a5d9fae52d11ed43d3c70a13"><td class="mdescLeft">&#160;</td><td class="mdescRight">FlexIO module base address. <a href="#a0cc4eb66a5d9fae52d11ed43d3c70a13">More...</a><br/></td></tr>
<tr class="separator:a0cc4eb66a5d9fae52d11ed43d3c70a13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b91efc2fc69fdcb203b5d79a5391ed1"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a7b91efc2fc69fdcb203b5d79a5391ed1">datPinStartIdx</a></td></tr>
<tr class="memdesc:a7b91efc2fc69fdcb203b5d79a5391ed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">First data pin (D0) index for flexio_camera. <a href="#a7b91efc2fc69fdcb203b5d79a5391ed1">More...</a><br/></td></tr>
<tr class="separator:a7b91efc2fc69fdcb203b5d79a5391ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3267ba9e49323621bb07a55419c933b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ac3267ba9e49323621bb07a55419c933b">pclkPinIdx</a></td></tr>
<tr class="memdesc:ac3267ba9e49323621bb07a55419c933b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pixel clock pin (PCLK) index for flexio_camera. <a href="#ac3267ba9e49323621bb07a55419c933b">More...</a><br/></td></tr>
<tr class="separator:ac3267ba9e49323621bb07a55419c933b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a657a9a6cc5342e311ae19cfc9c9f6b01"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a657a9a6cc5342e311ae19cfc9c9f6b01">hrefPinIdx</a></td></tr>
<tr class="memdesc:a657a9a6cc5342e311ae19cfc9c9f6b01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Horizontal sync pin (HREF) index for flexio_camera. <a href="#a657a9a6cc5342e311ae19cfc9c9f6b01">More...</a><br/></td></tr>
<tr class="separator:a657a9a6cc5342e311ae19cfc9c9f6b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a203b446cf0bac1a0252ce546d618183e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a203b446cf0bac1a0252ce546d618183e">shifterStartIdx</a></td></tr>
<tr class="memdesc:a203b446cf0bac1a0252ce546d618183e"><td class="mdescLeft">&#160;</td><td class="mdescRight">First shifter index used for flexio_camera data FIFO. <a href="#a203b446cf0bac1a0252ce546d618183e">More...</a><br/></td></tr>
<tr class="separator:a203b446cf0bac1a0252ce546d618183e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e29ce0d904cdb2fffa9453ace11918e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a9e29ce0d904cdb2fffa9453ace11918e">shifterCount</a></td></tr>
<tr class="memdesc:a9e29ce0d904cdb2fffa9453ace11918e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The count of shifters that are used as flexio_camera data FIFO. <a href="#a9e29ce0d904cdb2fffa9453ace11918e">More...</a><br/></td></tr>
<tr class="separator:a9e29ce0d904cdb2fffa9453ace11918e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1c1e4d8b41f6d3b0907fdf466aabb40"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ad1c1e4d8b41f6d3b0907fdf466aabb40">timerIdx</a></td></tr>
<tr class="memdesc:ad1c1e4d8b41f6d3b0907fdf466aabb40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer index used for flexio_camera in FlexIO. <a href="#ad1c1e4d8b41f6d3b0907fdf466aabb40">More...</a><br/></td></tr>
<tr class="separator:ad1c1e4d8b41f6d3b0907fdf466aabb40"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a0cc4eb66a5d9fae52d11ed43d3c70a13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FLEXIO_Type* _flexio_camera_type::flexioBase</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7b91efc2fc69fdcb203b5d79a5391ed1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_camera_type::datPinStartIdx</td>
</tr>
</table>
</div><div class="memdoc">
<p>Then the successive following FLEXIO_CAMERA_DATA_WIDTH-1 pins are used as D1-D7. </p>
</div>
</div>
<a class="anchor" id="ac3267ba9e49323621bb07a55419c933b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_camera_type::pclkPinIdx</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a657a9a6cc5342e311ae19cfc9c9f6b01"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_camera_type::hrefPinIdx</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a203b446cf0bac1a0252ce546d618183e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_camera_type::shifterStartIdx</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9e29ce0d904cdb2fffa9453ace11918e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_camera_type::shifterCount</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad1c1e4d8b41f6d3b0907fdf466aabb40"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t _flexio_camera_type::timerIdx</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00363" id="a00363"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flexio_camera_config</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a86f38b484553f281631f52a83b898482"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a86f38b484553f281631f52a83b898482">enablecamera</a></td></tr>
<tr class="memdesc:a86f38b484553f281631f52a83b898482"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable FlexIO Camera TX &amp; RX. <a href="#a86f38b484553f281631f52a83b898482">More...</a><br/></td></tr>
<tr class="separator:a86f38b484553f281631f52a83b898482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa02ab61ea07cea94dd5e64c0c1191a95"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa02ab61ea07cea94dd5e64c0c1191a95"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#aa02ab61ea07cea94dd5e64c0c1191a95">enableInDoze</a></td></tr>
<tr class="memdesc:aa02ab61ea07cea94dd5e64c0c1191a95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable FlexIO operation in doze mode. <br/></td></tr>
<tr class="separator:aa02ab61ea07cea94dd5e64c0c1191a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab132d16c3aef55f84f44d6895d873e72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab132d16c3aef55f84f44d6895d873e72"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#ab132d16c3aef55f84f44d6895d873e72">enableInDebug</a></td></tr>
<tr class="memdesc:ab132d16c3aef55f84f44d6895d873e72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable FlexIO operation in debug mode. <br/></td></tr>
<tr class="separator:ab132d16c3aef55f84f44d6895d873e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6b7f712cece09735b113fd7396423c3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#af6b7f712cece09735b113fd7396423c3">enableFastAccess</a></td></tr>
<tr class="memdesc:af6b7f712cece09735b113fd7396423c3"><td class="mdescLeft">&#160;</td><td class="mdescRight"><pre class="fragment">Enable/disable fast access to FlexIO registers,
</pre><p> fast access requires the FlexIO clock to be at least twice the frequency of the bus clock. <a href="#af6b7f712cece09735b113fd7396423c3">More...</a><br/></td></tr>
<tr class="separator:af6b7f712cece09735b113fd7396423c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a86f38b484553f281631f52a83b898482"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _flexio_camera_config::enablecamera</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af6b7f712cece09735b113fd7396423c3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool _flexio_camera_config::enableFastAccess</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div>
</div>
<a name="a00365" id="a00365"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct _flexio_camera_transfer</td>
</tr>
</table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:aac5cf65e62260acd0b45e312fc75573a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aac5cf65e62260acd0b45e312fc75573a"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#aac5cf65e62260acd0b45e312fc75573a">dataAddress</a></td></tr>
<tr class="memdesc:aac5cf65e62260acd0b45e312fc75573a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer buffer. <br/></td></tr>
<tr class="separator:aac5cf65e62260acd0b45e312fc75573a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d5c25a3e97e3aac40cc5054ba0cb6ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d5c25a3e97e3aac40cc5054ba0cb6ec"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html#a9d5c25a3e97e3aac40cc5054ba0cb6ec">dataNum</a></td></tr>
<tr class="memdesc:a9d5c25a3e97e3aac40cc5054ba0cb6ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer num. <br/></td></tr>
<tr class="separator:a9d5c25a3e97e3aac40cc5054ba0cb6ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaf67f7409d83d5806e8dee459e28ea116"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FSL_FLEXIO_CAMERA_DRIVER_VERSION&#160;&#160;&#160;(<a class="el" href="a00260.html#ga812138aa3315b0c6953c1a26130bcc37">MAKE_VERSION</a>(2, 1, 3))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga353a8218bf5dd22032b9055285e2bb49"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define FLEXIO_CAMERA_PARALLEL_DATA_WIDTH&#160;&#160;&#160;(8U)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaea627d9388fe88477f9622c04c84bc84"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00026.html#a00363">_flexio_camera_config</a> <a class="el" href="a00026.html#gaea627d9388fe88477f9622c04c84bc84">flexio_camera_config_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ga9f8f31be1073c6d3a85e11d9b23dd93a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="a00026.html#a00365">_flexio_camera_transfer</a> <a class="el" href="a00026.html#ga9f8f31be1073c6d3a85e11d9b23dd93a">flexio_camera_transfer_t</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga0ed680fdb405e7195d9f14032851eebb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum</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="gga0ed680fdb405e7195d9f14032851eebba68a8386d9dc811f20b4955edc9e456ae"></a>kStatus_FLEXIO_CAMERA_RxBusy</em>&nbsp;</td><td class="fielddoc">
<p>Receiver is busy. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga0ed680fdb405e7195d9f14032851eebba1350eedcb89f16d93727f570b63a79b4"></a>kStatus_FLEXIO_CAMERA_RxIdle</em>&nbsp;</td><td class="fielddoc">
<p>Camera receiver is idle. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ga19fc70fddf16fa061eff3de0f46ee888"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="a00026.html#ga19fc70fddf16fa061eff3de0f46ee888">_flexio_camera_status_flags</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="gga19fc70fddf16fa061eff3de0f46ee888a3d55cd5136d4cbb5ea3ae3372d7b98ef"></a>kFLEXIO_CAMERA_RxDataRegFullFlag</em>&nbsp;</td><td class="fielddoc">
<p>Receive buffer full flag. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga19fc70fddf16fa061eff3de0f46ee888ae360d4782ef1e0ef0e2a03ebe7bd43a2"></a>kFLEXIO_CAMERA_RxErrorFlag</em>&nbsp;</td><td class="fielddoc">
<p>Receive buffer error flag. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga673dbe9cee73c1bc18a48d4903ae0d0f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_CAMERA_Init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="a00026.html#gaea627d9388fe88477f9622c04c84bc84">flexio_camera_config_t</a> *&#160;</td>
<td class="paramname"><em>config</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">base</td><td>Pointer to FLEXIO_CAMERA_Type structure </td></tr>
<tr><td class="paramname">config</td><td>Pointer to flexio_camera_config_t structure </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga1b12eeccfdc9ec539b5ffdc09fba62e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_CAMERA_Deinit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section note"><dt>Note</dt><dd>After calling this API, call FLEXO_CAMERA_Init to use the FlexIO Camera module.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_CAMERA_Type structure </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga802016ccb9ed8299101f66455b85d7db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_CAMERA_GetDefaultConfig </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#gaea627d9388fe88477f9622c04c84bc84">flexio_camera_config_t</a> *&#160;</td>
<td class="paramname"><em>config</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The configuration can be used directly for calling the <a class="el" href="a00026.html#ga673dbe9cee73c1bc18a48d4903ae0d0f" title="Ungates the FlexIO clock, resets the FlexIO module, and configures the FlexIO Camera. ">FLEXIO_CAMERA_Init()</a>. Example: </p>
<div class="fragment"><div class="line"><a class="code" href="a00026.html#a00363">flexio_camera_config_t</a> config;</div>
<div class="line"><a class="code" href="a00026.html#ga802016ccb9ed8299101f66455b85d7db">FLEXIO_CAMERA_GetDefaultConfig</a>(&amp;userConfig);</div>
</div><!-- fragment --> <dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">config</td><td>Pointer to the flexio_camera_config_t structure </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga52b2866e7ad0762f97cbdf69078e135e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void FLEXIO_CAMERA_Enable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</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>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to the FLEXIO_CAMERA_Type </td></tr>
<tr><td class="paramname">enable</td><td>True to enable, false does not have any effect. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae01bba01f0d99e23dd82bdeb9c4c37e4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t FLEXIO_CAMERA_GetStatusFlags </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</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">base</td><td>Pointer to FLEXIO_CAMERA_Type structure </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>FlexIO shifter status flags <ul>
<li>FLEXIO_SHIFTSTAT_SSF_MASK </li>
<li>0 </li>
</ul>
</dd></dl>
</div>
</div>
<a class="anchor" id="ga4c753515929810195e0dd5da14a46ef3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_CAMERA_ClearStatusFlags </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>mask</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">base</td><td>Pointer to the device. </td></tr>
<tr><td class="paramname">mask</td><td>status flag The parameter can be any combination of the following values: <ul>
<li>kFLEXIO_CAMERA_RxDataRegFullFlag </li>
<li>kFLEXIO_CAMERA_RxErrorFlag </li>
</ul>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gae11112fd27c1b8f7b7ac4a1a22fc3b57"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_CAMERA_EnableInterrupt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</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">base</td><td>Pointer to the device. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga74103c49cfe67a9bb882e4646801515d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void FLEXIO_CAMERA_DisableInterrupt </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</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">base</td><td>Pointer to the device. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gad32bb2551177c3f21d372fff9cebe4cb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void FLEXIO_CAMERA_EnableRxDMA </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</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>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to FLEXIO_CAMERA_Type structure </td></tr>
<tr><td class="paramname">enable</td><td>True to enable, false to disable.</td></tr>
</table>
</dd>
</dl>
<p>The FlexIO Camera mode can't work without the DMA or eDMA support, Usually, it needs at least two DMA or eDMA channels, one for transferring data from Camera, such as 0V7670 to FlexIO buffer, another is for transferring data from FlexIO buffer to LCD. </p>
</div>
</div>
<a class="anchor" id="gadec05a7c9f34ca3d4790c6c54db455dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static uint32_t FLEXIO_CAMERA_GetRxBufferAddress </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00026.html#ga8469ec2f5177b9aa71fd65032efc6bf7">FLEXIO_CAMERA_Type</a> *&#160;</td>
<td class="paramname"><em>base</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">base</td><td>Pointer to the device. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>data Pointer to the buffer that keeps the data with count of base-&gt;shifterCount . </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>