1 <!-- HTML header for doxygen 1.8.20-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7 <meta name="generator" content="Doxygen 1.9.4"/>
8 <meta name="viewport" content="width=device-width, initial-scale=1"/>
9 <title>Raspberry Pi Pico SDK: hardware_powman</title>
10 <!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
11 <script type="text/javascript" src="jquery.js"></script>
12 <script type="text/javascript" src="dynsections.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtreedata.js"></script>
16 <script type="text/javascript" src="navtree.js"></script>
17 <link href="search/search.css" rel="stylesheet" type="text/css"/>
18 <script type="text/javascript" src="search/searchdata.js"></script>
19 <script type="text/javascript" src="search/search.js"></script>
20 <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
21 <link href="doxygen.css" rel="stylesheet" type="text/css" />
22 <link href="normalise.css" rel="stylesheet" type="text/css"/>
23 <link href="main.css" rel="stylesheet" type="text/css"/>
24 <link href="styles.css" rel="stylesheet" type="text/css"/>
27 <div class="navigation-mobile">
28 <div class="logo--mobile">
29 <a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
31 <div class="navigation-toggle">
32 <span class="line-1"></span>
36 <span class="line-3"></span>
39 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
41 <a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
42 <span style="display: inline-block; margin-top: 10px;">
46 <div class="navigation-footer">
47 <img src="logo-mobile.svg" alt="Raspberry Pi">
48 <a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
50 <!-- <div class="search">
52 <input type="search" name="search" id="search" placeholder="Search">
53 <input type="submit" value="Search">
56 <!-- Generated by Doxygen 1.9.4 -->
57 <script type="text/javascript">
58 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
59 var searchBox = new SearchBox("searchBox", "search",'Search','.html');
62 <script type="text/javascript" src="menudata.js"></script>
63 <script type="text/javascript" src="menu.js"></script>
64 <script type="text/javascript">
65 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
67 initMenu('',true,false,'search.php','Search');
68 $(document).ready(function() { init_search(); });
72 <div id="main-nav"></div>
74 <div id="side-nav" class="ui-resizable side-nav-resizable">
76 <div id="nav-tree-contents">
77 <div id="nav-sync" class="sync"></div>
80 <div id="splitbar" style="-moz-user-select:none;"
81 class="ui-resizable-handle">
84 <script type="text/javascript">
85 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
86 $(document).ready(function(){initNavTree('group__hardware__powman.html',''); initResizable(); });
89 <div id="doc-content">
90 <!-- window showing the filter options -->
91 <div id="MSearchSelectWindow"
92 onmouseover="return searchBox.OnSearchSelectShow()"
93 onmouseout="return searchBox.OnSearchSelectHide()"
94 onkeydown="return searchBox.OnSearchSelectKey(event)">
97 <!-- iframe showing the search results (closed by default) -->
98 <div id="MSearchResultsWindow">
99 <iframe src="javascript:void(0)" frameborder="0"
100 name="MSearchResults" id="MSearchResults">
105 <div class="summary">
106 <a href="#enum-members">Enumerations</a> |
107 <a href="#func-members">Functions</a> </div>
108 <div class="headertitle"><div class="title">hardware_powman<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a></div></div></div>
110 <div class="contents">
112 <p>Power Management API.
113 <a href="#details">More...</a></p>
114 <table class="memberdecls">
115 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
116 Enumerations</h2></td></tr>
117 <tr class="memitem:gace732bfd97b0762a2903cf7e32606e32"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a> { <br />
118   <a class="el" href="group__hardware__powman.html#ggace732bfd97b0762a2903cf7e32606e32a00c076ec026ca9c1e0c2ab8502705382">POWMAN_POWER_DOMAIN_SRAM_BANK1</a> = 0
119 , <a class="el" href="group__hardware__powman.html#ggace732bfd97b0762a2903cf7e32606e32a0cf27623a721de09d60d6cd506911666">POWMAN_POWER_DOMAIN_SRAM_BANK0</a> = 1
120 , <a class="el" href="group__hardware__powman.html#ggace732bfd97b0762a2903cf7e32606e32a100701ea934dc58c777c020cd8b766c0">POWMAN_POWER_DOMAIN_XIP_CACHE</a> = 2
121 , <a class="el" href="group__hardware__powman.html#ggace732bfd97b0762a2903cf7e32606e32a37ba2cba72976391dc9d83c66cfef3c5">POWMAN_POWER_DOMAIN_SWITCHED_CORE</a> = 3
123   <b>POWMAN_POWER_DOMAIN_COUNT</b> = 4
126 <tr class="memdesc:gace732bfd97b0762a2903cf7e32606e32"><td class="mdescLeft"> </td><td class="mdescRight">Power domains of powman. <a href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">More...</a><br /></td></tr>
127 <tr class="separator:gace732bfd97b0762a2903cf7e32606e32"><td class="memSeparator" colspan="2"> </td></tr>
128 </table><table class="memberdecls">
129 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
130 Functions</h2></td></tr>
131 <tr class="memitem:ga2659af7a723a142b57a72add489d4f4e"><td class="memItemLeft" align="right" valign="top"><a id="ga2659af7a723a142b57a72add489d4f4e" name="ga2659af7a723a142b57a72add489d4f4e"></a>
132 void </td><td class="memItemRight" valign="bottom"><b>powman_timer_set_1khz_tick_source_lposc</b> (void)</td></tr>
133 <tr class="memdesc:ga2659af7a723a142b57a72add489d4f4e"><td class="mdescLeft"> </td><td class="mdescRight">Use the ~32KHz low power oscillator as the powman timer source. <br /></td></tr>
134 <tr class="separator:ga2659af7a723a142b57a72add489d4f4e"><td class="memSeparator" colspan="2"> </td></tr>
135 <tr class="memitem:gacc08f760516b1b09a58a7121cdfc1f49"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gacc08f760516b1b09a58a7121cdfc1f49">powman_timer_set_1khz_tick_source_lposc_with_hz</a> (uint32_t lposc_freq_hz)</td></tr>
136 <tr class="memdesc:gacc08f760516b1b09a58a7121cdfc1f49"><td class="mdescLeft"> </td><td class="mdescRight">Use the low power oscillator (specifying frequency) as the powman timer source. <a href="group__hardware__powman.html#gacc08f760516b1b09a58a7121cdfc1f49">More...</a><br /></td></tr>
137 <tr class="separator:gacc08f760516b1b09a58a7121cdfc1f49"><td class="memSeparator" colspan="2"> </td></tr>
138 <tr class="memitem:ga9ee3b6c28b8b24f3c22022b757082448"><td class="memItemLeft" align="right" valign="top"><a id="ga9ee3b6c28b8b24f3c22022b757082448" name="ga9ee3b6c28b8b24f3c22022b757082448"></a>
139 void </td><td class="memItemRight" valign="bottom"><b>powman_timer_set_1khz_tick_source_xosc</b> (void)</td></tr>
140 <tr class="memdesc:ga9ee3b6c28b8b24f3c22022b757082448"><td class="mdescLeft"> </td><td class="mdescRight">Use the crystal oscillator as the powman timer source. <br /></td></tr>
141 <tr class="separator:ga9ee3b6c28b8b24f3c22022b757082448"><td class="memSeparator" colspan="2"> </td></tr>
142 <tr class="memitem:ga8fb8797fc3fbc9b7e9c30c6ae316065c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga8fb8797fc3fbc9b7e9c30c6ae316065c">powman_timer_set_1khz_tick_source_xosc_with_hz</a> (uint32_t xosc_freq_hz)</td></tr>
143 <tr class="memdesc:ga8fb8797fc3fbc9b7e9c30c6ae316065c"><td class="mdescLeft"> </td><td class="mdescRight">Use the crystal oscillator as the powman timer source. <a href="group__hardware__powman.html#ga8fb8797fc3fbc9b7e9c30c6ae316065c">More...</a><br /></td></tr>
144 <tr class="separator:ga8fb8797fc3fbc9b7e9c30c6ae316065c"><td class="memSeparator" colspan="2"> </td></tr>
145 <tr class="memitem:ga7e0048a9fe486dc4e6cc6b9ae7699924"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga7e0048a9fe486dc4e6cc6b9ae7699924">powman_timer_set_1khz_tick_source_gpio</a> (uint32_t gpio)</td></tr>
146 <tr class="memdesc:ga7e0048a9fe486dc4e6cc6b9ae7699924"><td class="mdescLeft"> </td><td class="mdescRight">Use a 1KHz external tick as the powman timer source. <a href="group__hardware__powman.html#ga7e0048a9fe486dc4e6cc6b9ae7699924">More...</a><br /></td></tr>
147 <tr class="separator:ga7e0048a9fe486dc4e6cc6b9ae7699924"><td class="memSeparator" colspan="2"> </td></tr>
148 <tr class="memitem:ga4b843b70eaf83fb4b0d2fbee8ce1a015"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga4b843b70eaf83fb4b0d2fbee8ce1a015">powman_timer_enable_gpio_1hz_sync</a> (uint32_t gpio)</td></tr>
149 <tr class="memdesc:ga4b843b70eaf83fb4b0d2fbee8ce1a015"><td class="mdescLeft"> </td><td class="mdescRight">Use a 1Hz external signal as the powman timer source for seconds only. <a href="group__hardware__powman.html#ga4b843b70eaf83fb4b0d2fbee8ce1a015">More...</a><br /></td></tr>
150 <tr class="separator:ga4b843b70eaf83fb4b0d2fbee8ce1a015"><td class="memSeparator" colspan="2"> </td></tr>
151 <tr class="memitem:ga5b035f3737ec4d2261414e931c5a8de3"><td class="memItemLeft" align="right" valign="top"><a id="ga5b035f3737ec4d2261414e931c5a8de3" name="ga5b035f3737ec4d2261414e931c5a8de3"></a>
152 void </td><td class="memItemRight" valign="bottom"><b>powman_timer_disable_gpio_1hz_sync</b> (void)</td></tr>
153 <tr class="memdesc:ga5b035f3737ec4d2261414e931c5a8de3"><td class="mdescLeft"> </td><td class="mdescRight">Stop using 1Hz external signal as the powman timer source for seconds. <br /></td></tr>
154 <tr class="separator:ga5b035f3737ec4d2261414e931c5a8de3"><td class="memSeparator" colspan="2"> </td></tr>
155 <tr class="memitem:ga7dc3aafeae8ba5a29f67970454d38046"><td class="memItemLeft" align="right" valign="top"><a id="ga7dc3aafeae8ba5a29f67970454d38046" name="ga7dc3aafeae8ba5a29f67970454d38046"></a>
156 uint64_t </td><td class="memItemRight" valign="bottom"><b>powman_timer_get_ms</b> (void)</td></tr>
157 <tr class="memdesc:ga7dc3aafeae8ba5a29f67970454d38046"><td class="mdescLeft"> </td><td class="mdescRight">Returns current time in ms. <br /></td></tr>
158 <tr class="separator:ga7dc3aafeae8ba5a29f67970454d38046"><td class="memSeparator" colspan="2"> </td></tr>
159 <tr class="memitem:gaa2f30fea7e5b78efc2d89cf5e5f215ed"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gaa2f30fea7e5b78efc2d89cf5e5f215ed">powman_timer_set_ms</a> (uint64_t time_ms)</td></tr>
160 <tr class="memdesc:gaa2f30fea7e5b78efc2d89cf5e5f215ed"><td class="mdescLeft"> </td><td class="mdescRight">Set current time in ms. <a href="group__hardware__powman.html#gaa2f30fea7e5b78efc2d89cf5e5f215ed">More...</a><br /></td></tr>
161 <tr class="separator:gaa2f30fea7e5b78efc2d89cf5e5f215ed"><td class="memSeparator" colspan="2"> </td></tr>
162 <tr class="memitem:gac8aa99d990fc2e793c2cc3ff680ce41f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gac8aa99d990fc2e793c2cc3ff680ce41f">powman_timer_enable_alarm_at_ms</a> (uint64_t alarm_time_ms)</td></tr>
163 <tr class="memdesc:gac8aa99d990fc2e793c2cc3ff680ce41f"><td class="mdescLeft"> </td><td class="mdescRight">Set an alarm at an absolute time in ms. <a href="group__hardware__powman.html#gac8aa99d990fc2e793c2cc3ff680ce41f">More...</a><br /></td></tr>
164 <tr class="separator:gac8aa99d990fc2e793c2cc3ff680ce41f"><td class="memSeparator" colspan="2"> </td></tr>
165 <tr class="memitem:gaf78bad976be73c9480933d73bf358a23"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gaf78bad976be73c9480933d73bf358a23">powman_timer_disable_alarm</a> (void)</td></tr>
166 <tr class="memdesc:gaf78bad976be73c9480933d73bf358a23"><td class="mdescLeft"> </td><td class="mdescRight">Disable the alarm. <a href="group__hardware__powman.html#gaf78bad976be73c9480933d73bf358a23">More...</a><br /></td></tr>
167 <tr class="separator:gaf78bad976be73c9480933d73bf358a23"><td class="memSeparator" colspan="2"> </td></tr>
168 <tr class="memitem:ga8bb53e1b2c3e5a553aedfbff18d35a50"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga8bb53e1b2c3e5a553aedfbff18d35a50">powman_set_bits</a> (volatile uint32_t *reg, uint32_t bits)</td></tr>
169 <tr class="memdesc:ga8bb53e1b2c3e5a553aedfbff18d35a50"><td class="mdescLeft"> </td><td class="mdescRight">hw_set_bits helper function <a href="group__hardware__powman.html#ga8bb53e1b2c3e5a553aedfbff18d35a50">More...</a><br /></td></tr>
170 <tr class="separator:ga8bb53e1b2c3e5a553aedfbff18d35a50"><td class="memSeparator" colspan="2"> </td></tr>
171 <tr class="memitem:ga5fe0817fd5f0baaefe9e086705e3b4e8"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga5fe0817fd5f0baaefe9e086705e3b4e8">powman_clear_bits</a> (volatile uint32_t *reg, uint32_t bits)</td></tr>
172 <tr class="memdesc:ga5fe0817fd5f0baaefe9e086705e3b4e8"><td class="mdescLeft"> </td><td class="mdescRight">hw_clear_bits helper function <a href="group__hardware__powman.html#ga5fe0817fd5f0baaefe9e086705e3b4e8">More...</a><br /></td></tr>
173 <tr class="separator:ga5fe0817fd5f0baaefe9e086705e3b4e8"><td class="memSeparator" colspan="2"> </td></tr>
174 <tr class="memitem:ga6e2dd3c584d9eb2a40202b6d2dbddccd"><td class="memItemLeft" align="right" valign="top"><a id="ga6e2dd3c584d9eb2a40202b6d2dbddccd" name="ga6e2dd3c584d9eb2a40202b6d2dbddccd"></a>
175 static bool </td><td class="memItemRight" valign="bottom"><b>powman_timer_is_running</b> (void)</td></tr>
176 <tr class="memdesc:ga6e2dd3c584d9eb2a40202b6d2dbddccd"><td class="mdescLeft"> </td><td class="mdescRight">Determine if the powman timer is running. <br /></td></tr>
177 <tr class="separator:ga6e2dd3c584d9eb2a40202b6d2dbddccd"><td class="memSeparator" colspan="2"> </td></tr>
178 <tr class="memitem:ga7d6d9931a08e2999606e434ae7681fc6"><td class="memItemLeft" align="right" valign="top"><a id="ga7d6d9931a08e2999606e434ae7681fc6" name="ga7d6d9931a08e2999606e434ae7681fc6"></a>
179 static void </td><td class="memItemRight" valign="bottom"><b>powman_timer_stop</b> (void)</td></tr>
180 <tr class="memdesc:ga7d6d9931a08e2999606e434ae7681fc6"><td class="mdescLeft"> </td><td class="mdescRight">Stop the powman timer. <br /></td></tr>
181 <tr class="separator:ga7d6d9931a08e2999606e434ae7681fc6"><td class="memSeparator" colspan="2"> </td></tr>
182 <tr class="memitem:ga0002ace8105882f2ed726fdf2bd2a284"><td class="memItemLeft" align="right" valign="top"><a id="ga0002ace8105882f2ed726fdf2bd2a284" name="ga0002ace8105882f2ed726fdf2bd2a284"></a>
183 static void </td><td class="memItemRight" valign="bottom"><b>powman_timer_start</b> (void)</td></tr>
184 <tr class="memdesc:ga0002ace8105882f2ed726fdf2bd2a284"><td class="mdescLeft"> </td><td class="mdescRight">Start the powman timer. <br /></td></tr>
185 <tr class="separator:ga0002ace8105882f2ed726fdf2bd2a284"><td class="memSeparator" colspan="2"> </td></tr>
186 <tr class="memitem:ga4c25eb6c57761d12e74c196082be405d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga4c25eb6c57761d12e74c196082be405d">powman_clear_alarm</a> (void)</td></tr>
187 <tr class="memdesc:ga4c25eb6c57761d12e74c196082be405d"><td class="mdescLeft"> </td><td class="mdescRight">Clears the powman alarm. <a href="group__hardware__powman.html#ga4c25eb6c57761d12e74c196082be405d">More...</a><br /></td></tr>
188 <tr class="separator:ga4c25eb6c57761d12e74c196082be405d"><td class="memSeparator" colspan="2"> </td></tr>
189 <tr class="memitem:gac665005a92a55a827ac9aafac7a3e42d"><td class="memItemLeft" align="right" valign="top"><a id="gac665005a92a55a827ac9aafac7a3e42d" name="gac665005a92a55a827ac9aafac7a3e42d"></a>
190 powman_power_state </td><td class="memItemRight" valign="bottom"><b>powman_get_power_state</b> (void)</td></tr>
191 <tr class="memdesc:gac665005a92a55a827ac9aafac7a3e42d"><td class="mdescLeft"> </td><td class="mdescRight">Get the current power state. <br /></td></tr>
192 <tr class="separator:gac665005a92a55a827ac9aafac7a3e42d"><td class="memSeparator" colspan="2"> </td></tr>
193 <tr class="memitem:ga37324a8d6e9b4416a1e8837cbca44275"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga37324a8d6e9b4416a1e8837cbca44275">powman_set_power_state</a> (powman_power_state state)</td></tr>
194 <tr class="memdesc:ga37324a8d6e9b4416a1e8837cbca44275"><td class="mdescLeft"> </td><td class="mdescRight">Set the power state. <a href="group__hardware__powman.html#ga37324a8d6e9b4416a1e8837cbca44275">More...</a><br /></td></tr>
195 <tr class="separator:ga37324a8d6e9b4416a1e8837cbca44275"><td class="memSeparator" colspan="2"> </td></tr>
196 <tr class="memitem:gaf734b0aa9b100eedc4a923e97777bb55"><td class="memItemLeft" align="right" valign="top">static powman_power_state </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gaf734b0aa9b100eedc4a923e97777bb55">powman_power_state_with_domain_on</a> (powman_power_state orig, enum <a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a> domain)</td></tr>
197 <tr class="memdesc:gaf734b0aa9b100eedc4a923e97777bb55"><td class="mdescLeft"> </td><td class="mdescRight">Helper function modify a powman_power_state to turn a domain on. <a href="group__hardware__powman.html#gaf734b0aa9b100eedc4a923e97777bb55">More...</a><br /></td></tr>
198 <tr class="separator:gaf734b0aa9b100eedc4a923e97777bb55"><td class="memSeparator" colspan="2"> </td></tr>
199 <tr class="memitem:gaf203861a11946a64fefcab10288aa2fd"><td class="memItemLeft" align="right" valign="top">static powman_power_state </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gaf203861a11946a64fefcab10288aa2fd">powman_power_state_with_domain_off</a> (powman_power_state orig, enum <a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a> domain)</td></tr>
200 <tr class="memdesc:gaf203861a11946a64fefcab10288aa2fd"><td class="mdescLeft"> </td><td class="mdescRight">Helper function modify a powman_power_state to turn a domain off. <a href="group__hardware__powman.html#gaf203861a11946a64fefcab10288aa2fd">More...</a><br /></td></tr>
201 <tr class="separator:gaf203861a11946a64fefcab10288aa2fd"><td class="memSeparator" colspan="2"> </td></tr>
202 <tr class="memitem:ga3367f89af96ca94b74d521a962db4685"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga3367f89af96ca94b74d521a962db4685">powman_power_state_is_domain_on</a> (powman_power_state state, enum <a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a> domain)</td></tr>
203 <tr class="memdesc:ga3367f89af96ca94b74d521a962db4685"><td class="mdescLeft"> </td><td class="mdescRight">Helper function to check if a domain is on in a given powman_power_state. <a href="group__hardware__powman.html#ga3367f89af96ca94b74d521a962db4685">More...</a><br /></td></tr>
204 <tr class="separator:ga3367f89af96ca94b74d521a962db4685"><td class="memSeparator" colspan="2"> </td></tr>
205 <tr class="memitem:ga284eb8137db4f4aa0ef21f52f2cd0f0a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga284eb8137db4f4aa0ef21f52f2cd0f0a">powman_enable_alarm_wakeup_at_ms</a> (uint64_t alarm_time_ms)</td></tr>
206 <tr class="memdesc:ga284eb8137db4f4aa0ef21f52f2cd0f0a"><td class="mdescLeft"> </td><td class="mdescRight">Wake up from an alarm at a given time. <a href="group__hardware__powman.html#ga284eb8137db4f4aa0ef21f52f2cd0f0a">More...</a><br /></td></tr>
207 <tr class="separator:ga284eb8137db4f4aa0ef21f52f2cd0f0a"><td class="memSeparator" colspan="2"> </td></tr>
208 <tr class="memitem:gabd8304302bd7e666f73f5b08bdf2b110"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gabd8304302bd7e666f73f5b08bdf2b110">powman_enable_gpio_wakeup</a> (uint gpio_wakeup_num, uint32_t gpio, bool edge, bool high)</td></tr>
209 <tr class="memdesc:gabd8304302bd7e666f73f5b08bdf2b110"><td class="mdescLeft"> </td><td class="mdescRight">Wake up from a gpio. <a href="group__hardware__powman.html#gabd8304302bd7e666f73f5b08bdf2b110">More...</a><br /></td></tr>
210 <tr class="separator:gabd8304302bd7e666f73f5b08bdf2b110"><td class="memSeparator" colspan="2"> </td></tr>
211 <tr class="memitem:ga63fbf4b74797ee6f7ef1f9b103200b8e"><td class="memItemLeft" align="right" valign="top"><a id="ga63fbf4b74797ee6f7ef1f9b103200b8e" name="ga63fbf4b74797ee6f7ef1f9b103200b8e"></a>
212 void </td><td class="memItemRight" valign="bottom"><b>powman_disable_alarm_wakeup</b> (void)</td></tr>
213 <tr class="memdesc:ga63fbf4b74797ee6f7ef1f9b103200b8e"><td class="mdescLeft"> </td><td class="mdescRight">Disable waking up from alarm. <br /></td></tr>
214 <tr class="separator:ga63fbf4b74797ee6f7ef1f9b103200b8e"><td class="memSeparator" colspan="2"> </td></tr>
215 <tr class="memitem:gaf61ade848ee36a39b2389cc21d112132"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#gaf61ade848ee36a39b2389cc21d112132">powman_disable_gpio_wakeup</a> (uint gpio_wakeup_num)</td></tr>
216 <tr class="memdesc:gaf61ade848ee36a39b2389cc21d112132"><td class="mdescLeft"> </td><td class="mdescRight">Disable wake up from a gpio. <a href="group__hardware__powman.html#gaf61ade848ee36a39b2389cc21d112132">More...</a><br /></td></tr>
217 <tr class="separator:gaf61ade848ee36a39b2389cc21d112132"><td class="memSeparator" colspan="2"> </td></tr>
218 <tr class="memitem:gacd0efe4dd2bdc07d5307bdae4fa24af6"><td class="memItemLeft" align="right" valign="top"><a id="gacd0efe4dd2bdc07d5307bdae4fa24af6" name="gacd0efe4dd2bdc07d5307bdae4fa24af6"></a>
219 void </td><td class="memItemRight" valign="bottom"><b>powman_disable_all_wakeups</b> (void)</td></tr>
220 <tr class="memdesc:gacd0efe4dd2bdc07d5307bdae4fa24af6"><td class="mdescLeft"> </td><td class="mdescRight">Disable all wakeup sources. <br /></td></tr>
221 <tr class="separator:gacd0efe4dd2bdc07d5307bdae4fa24af6"><td class="memSeparator" colspan="2"> </td></tr>
222 <tr class="memitem:ga8b055fd9bd2a7704c6ada5e903b5eecd"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga8b055fd9bd2a7704c6ada5e903b5eecd">powman_configure_wakeup_state</a> (powman_power_state sleep_state, powman_power_state wakeup_state)</td></tr>
223 <tr class="memdesc:ga8b055fd9bd2a7704c6ada5e903b5eecd"><td class="mdescLeft"> </td><td class="mdescRight">Configure sleep state and wakeup state. <a href="group__hardware__powman.html#ga8b055fd9bd2a7704c6ada5e903b5eecd">More...</a><br /></td></tr>
224 <tr class="separator:ga8b055fd9bd2a7704c6ada5e903b5eecd"><td class="memSeparator" colspan="2"> </td></tr>
225 <tr class="memitem:ga268335a57afa4f047a780b0e38c43876"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html#ga268335a57afa4f047a780b0e38c43876">powman_set_debug_power_request_ignored</a> (bool ignored)</td></tr>
226 <tr class="memdesc:ga268335a57afa4f047a780b0e38c43876"><td class="mdescLeft"> </td><td class="mdescRight">Ignore wake up when the debugger is attached. <a href="group__hardware__powman.html#ga268335a57afa4f047a780b0e38c43876">More...</a><br /></td></tr>
227 <tr class="separator:ga268335a57afa4f047a780b0e38c43876"><td class="memSeparator" colspan="2"> </td></tr>
229 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
230 <p >Power Management API. </p>
231 <h2 class="groupheader">Enumeration Type Documentation</h2>
232 <a id="gace732bfd97b0762a2903cf7e32606e32" name="gace732bfd97b0762a2903cf7e32606e32"></a>
233 <h2 class="memtitle"><span class="permalink"><a href="#gace732bfd97b0762a2903cf7e32606e32">◆ </a></span>powman_power_domains</h2>
235 <div class="memitem">
236 <div class="memproto">
237 <table class="memname">
239 <td class="memname">enum <a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a></td>
242 </div><div class="memdoc">
244 <p>Power domains of powman. </p>
245 <table class="fieldtable">
246 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggace732bfd97b0762a2903cf7e32606e32a00c076ec026ca9c1e0c2ab8502705382" name="ggace732bfd97b0762a2903cf7e32606e32a00c076ec026ca9c1e0c2ab8502705382"></a>POWMAN_POWER_DOMAIN_SRAM_BANK1 </td><td class="fielddoc"><p >bank1 includes the top 256K of sram plus sram 8 and 9 (scratch x and scratch y) </p>
248 <tr><td class="fieldname"><a id="ggace732bfd97b0762a2903cf7e32606e32a0cf27623a721de09d60d6cd506911666" name="ggace732bfd97b0762a2903cf7e32606e32a0cf27623a721de09d60d6cd506911666"></a>POWMAN_POWER_DOMAIN_SRAM_BANK0 </td><td class="fielddoc"><p >bank0 is bottom 256K of sSRAM </p>
250 <tr><td class="fieldname"><a id="ggace732bfd97b0762a2903cf7e32606e32a100701ea934dc58c777c020cd8b766c0" name="ggace732bfd97b0762a2903cf7e32606e32a100701ea934dc58c777c020cd8b766c0"></a>POWMAN_POWER_DOMAIN_XIP_CACHE </td><td class="fielddoc"><p >XIP cache is 2x8K instances. </p>
252 <tr><td class="fieldname"><a id="ggace732bfd97b0762a2903cf7e32606e32a37ba2cba72976391dc9d83c66cfef3c5" name="ggace732bfd97b0762a2903cf7e32606e32a37ba2cba72976391dc9d83c66cfef3c5"></a>POWMAN_POWER_DOMAIN_SWITCHED_CORE </td><td class="fielddoc"><p >Switched core logic (processors, busfabric, peris etc) </p>
258 <h2 class="groupheader">Function Documentation</h2>
259 <a id="ga4c25eb6c57761d12e74c196082be405d" name="ga4c25eb6c57761d12e74c196082be405d"></a>
260 <h2 class="memtitle"><span class="permalink"><a href="#ga4c25eb6c57761d12e74c196082be405d">◆ </a></span>powman_clear_alarm()</h2>
262 <div class="memitem">
263 <div class="memproto">
264 <table class="mlabels">
266 <td class="mlabels-left">
267 <table class="memname">
269 <td class="memname">static void powman_clear_alarm </td>
271 <td class="paramtype">void </td>
272 <td class="paramname"></td><td>)</td>
277 <td class="mlabels-right">
278 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
281 </div><div class="memdoc">
283 <p>Clears the powman alarm. </p>
284 <p >Note, the alarm must be disabled (see <a class="el" href="group__hardware__powman.html#gaf78bad976be73c9480933d73bf358a23">powman_timer_disable_alarm</a>) before clearing the alarm, as the alarm fires if the time is greater than equal to the target, so once the time has passed the alarm will always fire while enabled. </p>
288 <a id="ga5fe0817fd5f0baaefe9e086705e3b4e8" name="ga5fe0817fd5f0baaefe9e086705e3b4e8"></a>
289 <h2 class="memtitle"><span class="permalink"><a href="#ga5fe0817fd5f0baaefe9e086705e3b4e8">◆ </a></span>powman_clear_bits()</h2>
291 <div class="memitem">
292 <div class="memproto">
293 <table class="mlabels">
295 <td class="mlabels-left">
296 <table class="memname">
298 <td class="memname">static void powman_clear_bits </td>
300 <td class="paramtype">volatile uint32_t * </td>
301 <td class="paramname"><em>reg</em>, </td>
304 <td class="paramkey"></td>
306 <td class="paramtype">uint32_t </td>
307 <td class="paramname"><em>bits</em> </td>
316 <td class="mlabels-right">
317 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
320 </div><div class="memdoc">
322 <p>hw_clear_bits helper function </p>
323 <p >Powman needs a password for writes, to prevent accidentally writing to it. This function implements hw_clear_bits with an appropriate password.</p>
324 <dl class="params"><dt>Parameters</dt><dd>
325 <table class="params">
326 <tr><td class="paramname">reg</td><td>register to clear </td></tr>
327 <tr><td class="paramname">bits</td><td>bits of register to clear </td></tr>
334 <a id="ga8b055fd9bd2a7704c6ada5e903b5eecd" name="ga8b055fd9bd2a7704c6ada5e903b5eecd"></a>
335 <h2 class="memtitle"><span class="permalink"><a href="#ga8b055fd9bd2a7704c6ada5e903b5eecd">◆ </a></span>powman_configure_wakeup_state()</h2>
337 <div class="memitem">
338 <div class="memproto">
339 <table class="memname">
341 <td class="memname">bool powman_configure_wakeup_state </td>
343 <td class="paramtype">powman_power_state </td>
344 <td class="paramname"><em>sleep_state</em>, </td>
347 <td class="paramkey"></td>
349 <td class="paramtype">powman_power_state </td>
350 <td class="paramname"><em>wakeup_state</em> </td>
358 </div><div class="memdoc">
360 <p>Configure sleep state and wakeup state. </p>
361 <dl class="params"><dt>Parameters</dt><dd>
362 <table class="params">
363 <tr><td class="paramname">sleep_state</td><td>power state powman will go to when sleeping, used to validate the wakeup state </td></tr>
364 <tr><td class="paramname">wakeup_state</td><td>power state powman will go to when waking up. Note switched core and xip always power up. SRAM bank0 and bank1 can be left powered off </td></tr>
368 <dl class="section return"><dt>Returns</dt><dd>true if the state is valid, false if not </dd></dl>
372 <a id="gaf61ade848ee36a39b2389cc21d112132" name="gaf61ade848ee36a39b2389cc21d112132"></a>
373 <h2 class="memtitle"><span class="permalink"><a href="#gaf61ade848ee36a39b2389cc21d112132">◆ </a></span>powman_disable_gpio_wakeup()</h2>
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
379 <td class="memname">void powman_disable_gpio_wakeup </td>
381 <td class="paramtype">uint </td>
382 <td class="paramname"><em>gpio_wakeup_num</em></td><td>)</td>
386 </div><div class="memdoc">
388 <p>Disable wake up from a gpio. </p>
389 <dl class="params"><dt>Parameters</dt><dd>
390 <table class="params">
391 <tr><td class="paramname">gpio_wakeup_num</td><td>hardware wakeup instance to use (0-3) </td></tr>
398 <a id="ga284eb8137db4f4aa0ef21f52f2cd0f0a" name="ga284eb8137db4f4aa0ef21f52f2cd0f0a"></a>
399 <h2 class="memtitle"><span class="permalink"><a href="#ga284eb8137db4f4aa0ef21f52f2cd0f0a">◆ </a></span>powman_enable_alarm_wakeup_at_ms()</h2>
401 <div class="memitem">
402 <div class="memproto">
403 <table class="memname">
405 <td class="memname">void powman_enable_alarm_wakeup_at_ms </td>
407 <td class="paramtype">uint64_t </td>
408 <td class="paramname"><em>alarm_time_ms</em></td><td>)</td>
412 </div><div class="memdoc">
414 <p>Wake up from an alarm at a given time. </p>
415 <dl class="params"><dt>Parameters</dt><dd>
416 <table class="params">
417 <tr><td class="paramname">alarm_time_ms</td><td>time to wake up in ms </td></tr>
424 <a id="gabd8304302bd7e666f73f5b08bdf2b110" name="gabd8304302bd7e666f73f5b08bdf2b110"></a>
425 <h2 class="memtitle"><span class="permalink"><a href="#gabd8304302bd7e666f73f5b08bdf2b110">◆ </a></span>powman_enable_gpio_wakeup()</h2>
427 <div class="memitem">
428 <div class="memproto">
429 <table class="memname">
431 <td class="memname">void powman_enable_gpio_wakeup </td>
433 <td class="paramtype">uint </td>
434 <td class="paramname"><em>gpio_wakeup_num</em>, </td>
437 <td class="paramkey"></td>
439 <td class="paramtype">uint32_t </td>
440 <td class="paramname"><em>gpio</em>, </td>
443 <td class="paramkey"></td>
445 <td class="paramtype">bool </td>
446 <td class="paramname"><em>edge</em>, </td>
449 <td class="paramkey"></td>
451 <td class="paramtype">bool </td>
452 <td class="paramname"><em>high</em> </td>
460 </div><div class="memdoc">
462 <p>Wake up from a gpio. </p>
463 <dl class="params"><dt>Parameters</dt><dd>
464 <table class="params">
465 <tr><td class="paramname">gpio_wakeup_num</td><td>hardware wakeup instance to use (0-3) </td></tr>
466 <tr><td class="paramname">gpio</td><td>gpio to wake up from (0-47) </td></tr>
467 <tr><td class="paramname">edge</td><td>true for edge sensitive, false for level sensitive </td></tr>
468 <tr><td class="paramname">high</td><td>true for active high, false active low </td></tr>
475 <a id="ga3367f89af96ca94b74d521a962db4685" name="ga3367f89af96ca94b74d521a962db4685"></a>
476 <h2 class="memtitle"><span class="permalink"><a href="#ga3367f89af96ca94b74d521a962db4685">◆ </a></span>powman_power_state_is_domain_on()</h2>
478 <div class="memitem">
479 <div class="memproto">
480 <table class="mlabels">
482 <td class="mlabels-left">
483 <table class="memname">
485 <td class="memname">static bool powman_power_state_is_domain_on </td>
487 <td class="paramtype">powman_power_state </td>
488 <td class="paramname"><em>state</em>, </td>
491 <td class="paramkey"></td>
493 <td class="paramtype">enum <a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a> </td>
494 <td class="paramname"><em>domain</em> </td>
503 <td class="mlabels-right">
504 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
507 </div><div class="memdoc">
509 <p>Helper function to check if a domain is on in a given powman_power_state. </p>
510 <dl class="params"><dt>Parameters</dt><dd>
511 <table class="params">
512 <tr><td class="paramname">state</td><td>powman_power_state </td></tr>
513 <tr><td class="paramname">domain</td><td>domain to check is on </td></tr>
520 <a id="gaf203861a11946a64fefcab10288aa2fd" name="gaf203861a11946a64fefcab10288aa2fd"></a>
521 <h2 class="memtitle"><span class="permalink"><a href="#gaf203861a11946a64fefcab10288aa2fd">◆ </a></span>powman_power_state_with_domain_off()</h2>
523 <div class="memitem">
524 <div class="memproto">
525 <table class="mlabels">
527 <td class="mlabels-left">
528 <table class="memname">
530 <td class="memname">static powman_power_state powman_power_state_with_domain_off </td>
532 <td class="paramtype">powman_power_state </td>
533 <td class="paramname"><em>orig</em>, </td>
536 <td class="paramkey"></td>
538 <td class="paramtype">enum <a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a> </td>
539 <td class="paramname"><em>domain</em> </td>
548 <td class="mlabels-right">
549 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
552 </div><div class="memdoc">
554 <p>Helper function modify a powman_power_state to turn a domain off. </p>
555 <dl class="params"><dt>Parameters</dt><dd>
556 <table class="params">
557 <tr><td class="paramname">orig</td><td>original state </td></tr>
558 <tr><td class="paramname">domain</td><td>domain to turn off </td></tr>
565 <a id="gaf734b0aa9b100eedc4a923e97777bb55" name="gaf734b0aa9b100eedc4a923e97777bb55"></a>
566 <h2 class="memtitle"><span class="permalink"><a href="#gaf734b0aa9b100eedc4a923e97777bb55">◆ </a></span>powman_power_state_with_domain_on()</h2>
568 <div class="memitem">
569 <div class="memproto">
570 <table class="mlabels">
572 <td class="mlabels-left">
573 <table class="memname">
575 <td class="memname">static powman_power_state powman_power_state_with_domain_on </td>
577 <td class="paramtype">powman_power_state </td>
578 <td class="paramname"><em>orig</em>, </td>
581 <td class="paramkey"></td>
583 <td class="paramtype">enum <a class="el" href="group__hardware__powman.html#gace732bfd97b0762a2903cf7e32606e32">powman_power_domains</a> </td>
584 <td class="paramname"><em>domain</em> </td>
593 <td class="mlabels-right">
594 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
597 </div><div class="memdoc">
599 <p>Helper function modify a powman_power_state to turn a domain on. </p>
600 <dl class="params"><dt>Parameters</dt><dd>
601 <table class="params">
602 <tr><td class="paramname">orig</td><td>original state </td></tr>
603 <tr><td class="paramname">domain</td><td>domain to turn on </td></tr>
610 <a id="ga8bb53e1b2c3e5a553aedfbff18d35a50" name="ga8bb53e1b2c3e5a553aedfbff18d35a50"></a>
611 <h2 class="memtitle"><span class="permalink"><a href="#ga8bb53e1b2c3e5a553aedfbff18d35a50">◆ </a></span>powman_set_bits()</h2>
613 <div class="memitem">
614 <div class="memproto">
615 <table class="mlabels">
617 <td class="mlabels-left">
618 <table class="memname">
620 <td class="memname">static void powman_set_bits </td>
622 <td class="paramtype">volatile uint32_t * </td>
623 <td class="paramname"><em>reg</em>, </td>
626 <td class="paramkey"></td>
628 <td class="paramtype">uint32_t </td>
629 <td class="paramname"><em>bits</em> </td>
638 <td class="mlabels-right">
639 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
642 </div><div class="memdoc">
644 <p>hw_set_bits helper function </p>
645 <dl class="params"><dt>Parameters</dt><dd>
646 <table class="params">
647 <tr><td class="paramname">reg</td><td>register to set </td></tr>
648 <tr><td class="paramname">bits</td><td>bits of register to set Powman needs a password for writes, to prevent accidentally writing to it. This function implements hw_set_bits with an appropriate password. </td></tr>
655 <a id="ga268335a57afa4f047a780b0e38c43876" name="ga268335a57afa4f047a780b0e38c43876"></a>
656 <h2 class="memtitle"><span class="permalink"><a href="#ga268335a57afa4f047a780b0e38c43876">◆ </a></span>powman_set_debug_power_request_ignored()</h2>
658 <div class="memitem">
659 <div class="memproto">
660 <table class="mlabels">
662 <td class="mlabels-left">
663 <table class="memname">
665 <td class="memname">static void powman_set_debug_power_request_ignored </td>
667 <td class="paramtype">bool </td>
668 <td class="paramname"><em>ignored</em></td><td>)</td>
673 <td class="mlabels-right">
674 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
677 </div><div class="memdoc">
679 <p>Ignore wake up when the debugger is attached. </p>
680 <p >Typically, when a debugger is attached it will assert the pwrupreq signal. OpenOCD does not clear this signal, even when you quit. This means once you have attached a debugger powman will never go to sleep. This function lets you ignore the debugger pwrupreq which means you can go to sleep with a debugger attached. The debugger will error out if you go to turn off the switch core with it attached, as the processors have been powered off.</p>
681 <dl class="params"><dt>Parameters</dt><dd>
682 <table class="params">
683 <tr><td class="paramname">ignored</td><td>should the debugger power up request be ignored </td></tr>
690 <a id="ga37324a8d6e9b4416a1e8837cbca44275" name="ga37324a8d6e9b4416a1e8837cbca44275"></a>
691 <h2 class="memtitle"><span class="permalink"><a href="#ga37324a8d6e9b4416a1e8837cbca44275">◆ </a></span>powman_set_power_state()</h2>
693 <div class="memitem">
694 <div class="memproto">
695 <table class="memname">
697 <td class="memname">int powman_set_power_state </td>
699 <td class="paramtype">powman_power_state </td>
700 <td class="paramname"><em>state</em></td><td>)</td>
704 </div><div class="memdoc">
706 <p>Set the power state. </p>
707 <p >Check the desired state is valid. Powman will go to the state if it is valid and there are no pending power up requests.</p>
708 <p >Note that if you are turning off the switched core then this function will never return as the processor will have been turned off at the end.</p>
709 <dl class="params"><dt>Parameters</dt><dd>
710 <table class="params">
711 <tr><td class="paramname">state</td><td>the power state to go to </td></tr>
715 <dl class="section return"><dt>Returns</dt><dd>PICO_OK if the state is valid. Misc PICO_ERRORs are returned if not </dd></dl>
719 <a id="gaf78bad976be73c9480933d73bf358a23" name="gaf78bad976be73c9480933d73bf358a23"></a>
720 <h2 class="memtitle"><span class="permalink"><a href="#gaf78bad976be73c9480933d73bf358a23">◆ </a></span>powman_timer_disable_alarm()</h2>
722 <div class="memitem">
723 <div class="memproto">
724 <table class="memname">
726 <td class="memname">void powman_timer_disable_alarm </td>
728 <td class="paramtype">void </td>
729 <td class="paramname"></td><td>)</td>
733 </div><div class="memdoc">
735 <p>Disable the alarm. </p>
736 <p >Once an alarm has fired it must be disabled to stop firing as the alarm comparison is alarm = alarm_time >= current_time </p>
740 <a id="gac8aa99d990fc2e793c2cc3ff680ce41f" name="gac8aa99d990fc2e793c2cc3ff680ce41f"></a>
741 <h2 class="memtitle"><span class="permalink"><a href="#gac8aa99d990fc2e793c2cc3ff680ce41f">◆ </a></span>powman_timer_enable_alarm_at_ms()</h2>
743 <div class="memitem">
744 <div class="memproto">
745 <table class="memname">
747 <td class="memname">void powman_timer_enable_alarm_at_ms </td>
749 <td class="paramtype">uint64_t </td>
750 <td class="paramname"><em>alarm_time_ms</em></td><td>)</td>
754 </div><div class="memdoc">
756 <p>Set an alarm at an absolute time in ms. </p>
757 <p >Note, the timer is stopped and then restarted as part of this function. This only controls the alarm if you want to use the alarm to wake up powman then you should use <a class="el" href="group__hardware__powman.html#ga284eb8137db4f4aa0ef21f52f2cd0f0a">powman_enable_alarm_wakeup_at_ms</a></p>
758 <dl class="params"><dt>Parameters</dt><dd>
759 <table class="params">
760 <tr><td class="paramname">alarm_time_ms</td><td>time at which the alarm will fire </td></tr>
767 <a id="ga4b843b70eaf83fb4b0d2fbee8ce1a015" name="ga4b843b70eaf83fb4b0d2fbee8ce1a015"></a>
768 <h2 class="memtitle"><span class="permalink"><a href="#ga4b843b70eaf83fb4b0d2fbee8ce1a015">◆ </a></span>powman_timer_enable_gpio_1hz_sync()</h2>
770 <div class="memitem">
771 <div class="memproto">
772 <table class="memname">
774 <td class="memname">void powman_timer_enable_gpio_1hz_sync </td>
776 <td class="paramtype">uint32_t </td>
777 <td class="paramname"><em>gpio</em></td><td>)</td>
781 </div><div class="memdoc">
783 <p>Use a 1Hz external signal as the powman timer source for seconds only. </p>
784 <p >Use a 1hz sync signal, such as from a gps for the seconds component of the timer. The milliseconds will still come from another configured source such as xosc or lposc</p>
785 <dl class="params"><dt>Parameters</dt><dd>
786 <table class="params">
787 <tr><td class="paramname">gpio</td><td>the gpio to use. must be 12, 14, 20, 22 </td></tr>
794 <a id="ga7e0048a9fe486dc4e6cc6b9ae7699924" name="ga7e0048a9fe486dc4e6cc6b9ae7699924"></a>
795 <h2 class="memtitle"><span class="permalink"><a href="#ga7e0048a9fe486dc4e6cc6b9ae7699924">◆ </a></span>powman_timer_set_1khz_tick_source_gpio()</h2>
797 <div class="memitem">
798 <div class="memproto">
799 <table class="memname">
801 <td class="memname">void powman_timer_set_1khz_tick_source_gpio </td>
803 <td class="paramtype">uint32_t </td>
804 <td class="paramname"><em>gpio</em></td><td>)</td>
808 </div><div class="memdoc">
810 <p>Use a 1KHz external tick as the powman timer source. </p>
811 <dl class="params"><dt>Parameters</dt><dd>
812 <table class="params">
813 <tr><td class="paramname">gpio</td><td>the gpio to use. must be 12, 14, 20, 22 </td></tr>
820 <a id="gacc08f760516b1b09a58a7121cdfc1f49" name="gacc08f760516b1b09a58a7121cdfc1f49"></a>
821 <h2 class="memtitle"><span class="permalink"><a href="#gacc08f760516b1b09a58a7121cdfc1f49">◆ </a></span>powman_timer_set_1khz_tick_source_lposc_with_hz()</h2>
823 <div class="memitem">
824 <div class="memproto">
825 <table class="memname">
827 <td class="memname">void powman_timer_set_1khz_tick_source_lposc_with_hz </td>
829 <td class="paramtype">uint32_t </td>
830 <td class="paramname"><em>lposc_freq_hz</em></td><td>)</td>
834 </div><div class="memdoc">
836 <p>Use the low power oscillator (specifying frequency) as the powman timer source. </p>
837 <dl class="params"><dt>Parameters</dt><dd>
838 <table class="params">
839 <tr><td class="paramname">lposc_freq_hz</td><td>specify an exact lposc freq to trim it </td></tr>
846 <a id="ga8fb8797fc3fbc9b7e9c30c6ae316065c" name="ga8fb8797fc3fbc9b7e9c30c6ae316065c"></a>
847 <h2 class="memtitle"><span class="permalink"><a href="#ga8fb8797fc3fbc9b7e9c30c6ae316065c">◆ </a></span>powman_timer_set_1khz_tick_source_xosc_with_hz()</h2>
849 <div class="memitem">
850 <div class="memproto">
851 <table class="memname">
853 <td class="memname">void powman_timer_set_1khz_tick_source_xosc_with_hz </td>
855 <td class="paramtype">uint32_t </td>
856 <td class="paramname"><em>xosc_freq_hz</em></td><td>)</td>
860 </div><div class="memdoc">
862 <p>Use the crystal oscillator as the powman timer source. </p>
863 <dl class="params"><dt>Parameters</dt><dd>
864 <table class="params">
865 <tr><td class="paramname">xosc_freq_hz</td><td>specify a crystal frequency </td></tr>
872 <a id="gaa2f30fea7e5b78efc2d89cf5e5f215ed" name="gaa2f30fea7e5b78efc2d89cf5e5f215ed"></a>
873 <h2 class="memtitle"><span class="permalink"><a href="#gaa2f30fea7e5b78efc2d89cf5e5f215ed">◆ </a></span>powman_timer_set_ms()</h2>
875 <div class="memitem">
876 <div class="memproto">
877 <table class="memname">
879 <td class="memname">void powman_timer_set_ms </td>
881 <td class="paramtype">uint64_t </td>
882 <td class="paramname"><em>time_ms</em></td><td>)</td>
886 </div><div class="memdoc">
888 <p>Set current time in ms. </p>
889 <dl class="params"><dt>Parameters</dt><dd>
890 <table class="params">
891 <tr><td class="paramname">time_ms</td><td>Current time in ms </td></tr>
898 </div><!-- contents -->
899 </div><!-- doc-content -->
901 <script src="main.js"></script>