]> Git Repo - pico-vscode.git/blob - web/docs/group__hardware__gpio.html
Merge branch 'main' into main
[pico-vscode.git] / web / docs / group__hardware__gpio.html
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">
4 <head>
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_gpio</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"/>
25 </head>
26 <body>
27         <div class="navigation-mobile">
28                 <div class="logo--mobile">
29                         <a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
30                 </div>
31                 <div class="navigation-toggle">
32                         <span class="line-1"></span>
33                         <span class="line-2">
34                                 <p>Menu Toggle</p>
35                         </span>
36                         <span class="line-3"></span>
37                 </div>
38         </div>
39         <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
40                 <div class="logo">
41                         <a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
42                         <span style="display: inline-block; margin-top: 10px;">
43                                 v2.0.0
44                         </span>
45                 </div>
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>
49                 </div>
50 <!--            <div class="search">
51                         <form>
52                                 <input type="search" name="search" id="search" placeholder="Search">
53                                 <input type="submit" value="Search">
54                         </form>
55                 </div> -->
56 <!-- Generated by Doxygen 1.9.4 -->
57 <script type="text/javascript">
58 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
59 var searchBox = new SearchBox("searchBox", "search",'Search','.html');
60 /* @license-end */
61 </script>
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&amp;dn=expat.txt MIT */
66 $(function() {
67   initMenu('',true,false,'search.php','Search');
68   $(document).ready(function() { init_search(); });
69 });
70 /* @license-end */
71 </script>
72 <div id="main-nav"></div>
73 </div><!-- top -->
74 <div id="side-nav" class="ui-resizable side-nav-resizable">
75   <div id="nav-tree">
76     <div id="nav-tree-contents">
77       <div id="nav-sync" class="sync"></div>
78     </div>
79   </div>
80   <div id="splitbar" style="-moz-user-select:none;" 
81        class="ui-resizable-handle">
82   </div>
83 </div>
84 <script type="text/javascript">
85 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
86 $(document).ready(function(){initNavTree('group__hardware__gpio.html',''); initResizable(); });
87 /* @license-end */
88 </script>
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)">
95 </div>
96
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">
101 </iframe>
102 </div>
103
104 <div class="header">
105   <div class="summary">
106 <a href="#typedef-members">Typedefs</a> &#124;
107 <a href="#enum-members">Enumerations</a> &#124;
108 <a href="#func-members">Functions</a>  </div>
109   <div class="headertitle"><div class="title">hardware_gpio<div class="ingroups"><a class="el" href="group__hardware.html">Hardware APIs</a></div></div></div>
110 </div><!--header-->
111 <div class="contents">
112
113 <p>General Purpose Input/Output (GPIO) API.  
114 <a href="#details">More...</a></p>
115 <table class="memberdecls">
116 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
117 Typedefs</h2></td></tr>
118 <tr class="memitem:ga1339fecb25e263eee2a6b9d362c3a946"><td class="memItemLeft" align="right" valign="top"><a id="ga1339fecb25e263eee2a6b9d362c3a946" name="ga1339fecb25e263eee2a6b9d362c3a946"></a>
119 typedef enum <a class="el" href="group__hardware__gpio.html#gaf91b38a4d4e96c343bd16927c34936e0">gpio_function_rp2040</a>&#160;</td><td class="memItemRight" valign="bottom"><b>gpio_function_t</b></td></tr>
120 <tr class="memdesc:ga1339fecb25e263eee2a6b9d362c3a946"><td class="mdescLeft">&#160;</td><td class="mdescRight">GPIO pin function selectors on RP2040 (used as typedef <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a>) <br /></td></tr>
121 <tr class="separator:ga1339fecb25e263eee2a6b9d362c3a946"><td class="memSeparator" colspan="2">&#160;</td></tr>
122 <tr class="memitem:ga89b8e5e8a9c515260dea8d1fa96e72c9"><td class="memItemLeft" align="right" valign="top"><a id="ga89b8e5e8a9c515260dea8d1fa96e72c9" name="ga89b8e5e8a9c515260dea8d1fa96e72c9"></a>
123 typedef enum <a class="el" href="group__hardware__gpio.html#ga6bad9a66b67d755a63a2bb8843932752">gpio_function_rp2350</a>&#160;</td><td class="memItemRight" valign="bottom"><b>gpio_function_t</b></td></tr>
124 <tr class="memdesc:ga89b8e5e8a9c515260dea8d1fa96e72c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">GPIO pin function selectors on RP2350 (used as typedef <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a>) <br /></td></tr>
125 <tr class="separator:ga89b8e5e8a9c515260dea8d1fa96e72c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
126 <tr class="memitem:ga8fcdfeff45cc2030530bf00c6ae1e0a3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a>) (uint gpio, uint32_t event_mask)</td></tr>
127 <tr class="separator:ga8fcdfeff45cc2030530bf00c6ae1e0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
128 </table><table class="memberdecls">
129 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
130 Enumerations</h2></td></tr>
131 <tr class="memitem:gaf91b38a4d4e96c343bd16927c34936e0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaf91b38a4d4e96c343bd16927c34936e0">gpio_function_rp2040</a> { <br />
132 &#160;&#160;<a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0a6418b54c6693b726efc36ca9c77f4332">GPIO_FUNC_XIP</a> = 0
133 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0aac69243b6fe41fc1206ac4e45342456e">GPIO_FUNC_SPI</a> = 1
134 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0adf5eba10226d3be43a5d482dbe10e5c0">GPIO_FUNC_UART</a> = 2
135 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0af5897687741f0ee34c88fd9823f1450a">GPIO_FUNC_I2C</a> = 3
136 , <br />
137 &#160;&#160;<a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0a2c6da3c6851ba4404a812719260b31d2">GPIO_FUNC_PWM</a> = 4
138 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0a8632dba349073657d356b82142031e9e">GPIO_FUNC_SIO</a> = 5
139 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0adfd646bbf58bfa281b09fae24e7b46dc">GPIO_FUNC_PIO0</a> = 6
140 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0a2c7092a5c1084c082f1303f251fd65d3">GPIO_FUNC_PIO1</a> = 7
141 , <br />
142 &#160;&#160;<a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0a540371b0462ae34e563752d1e2a5ef52">GPIO_FUNC_GPCK</a> = 8
143 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0a56811bb79676a7a4f865696a25b3a608">GPIO_FUNC_USB</a> = 9
144 , <a class="el" href="group__hardware__gpio.html#ggaf91b38a4d4e96c343bd16927c34936e0a3ec115257e1f1747abf60284362c5a04">GPIO_FUNC_NULL</a> = 0x1f
145 <br />
146  }</td></tr>
147 <tr class="memdesc:gaf91b38a4d4e96c343bd16927c34936e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">GPIO pin function selectors on RP2040 (used as typedef <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a>)  <a href="group__hardware__gpio.html#gaf91b38a4d4e96c343bd16927c34936e0">More...</a><br /></td></tr>
148 <tr class="separator:gaf91b38a4d4e96c343bd16927c34936e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 <tr class="memitem:ga6bad9a66b67d755a63a2bb8843932752"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga6bad9a66b67d755a63a2bb8843932752">gpio_function_rp2350</a> { <br />
150 &#160;&#160;<a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a13e80888216ed7daced80b4847f20e9a">GPIO_FUNC_HSTX</a> = 0
151 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752aac69243b6fe41fc1206ac4e45342456e">GPIO_FUNC_SPI</a> = 1
152 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752adf5eba10226d3be43a5d482dbe10e5c0">GPIO_FUNC_UART</a> = 2
153 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752af5897687741f0ee34c88fd9823f1450a">GPIO_FUNC_I2C</a> = 3
154 , <br />
155 &#160;&#160;<a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a2c6da3c6851ba4404a812719260b31d2">GPIO_FUNC_PWM</a> = 4
156 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a8632dba349073657d356b82142031e9e">GPIO_FUNC_SIO</a> = 5
157 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752adfd646bbf58bfa281b09fae24e7b46dc">GPIO_FUNC_PIO0</a> = 6
158 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a2c7092a5c1084c082f1303f251fd65d3">GPIO_FUNC_PIO1</a> = 7
159 , <br />
160 &#160;&#160;<a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a1613433470b69edd7474db25572e394b">GPIO_FUNC_PIO2</a> = 8
161 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a540371b0462ae34e563752d1e2a5ef52">GPIO_FUNC_GPCK</a> = 9
162 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752ad62e8c45ea28dfcaf4c372e641dca2b7">GPIO_FUNC_XIP_CS1</a> = 9
163 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752ac5f7999f8c18aac38594b0ec7807442f">GPIO_FUNC_CORESIGHT_TRACE</a> = 9
164 , <br />
165 &#160;&#160;<a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a56811bb79676a7a4f865696a25b3a608">GPIO_FUNC_USB</a> = 10
166 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752afe3341a742c05438fd67c27ff1bd484d">GPIO_FUNC_UART_AUX</a> = 11
167 , <a class="el" href="group__hardware__gpio.html#gga6bad9a66b67d755a63a2bb8843932752a3ec115257e1f1747abf60284362c5a04">GPIO_FUNC_NULL</a> = 0x1f
168 <br />
169  }</td></tr>
170 <tr class="memdesc:ga6bad9a66b67d755a63a2bb8843932752"><td class="mdescLeft">&#160;</td><td class="mdescRight">GPIO pin function selectors on RP2350 (used as typedef <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a>)  <a href="group__hardware__gpio.html#ga6bad9a66b67d755a63a2bb8843932752">More...</a><br /></td></tr>
171 <tr class="separator:ga6bad9a66b67d755a63a2bb8843932752"><td class="memSeparator" colspan="2">&#160;</td></tr>
172 <tr class="memitem:ga6347e27da3ab34f1ea65b5ae16ab724f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> { <a class="el" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136">GPIO_IRQ_LEVEL_LOW</a> = 0x1u
173 , <a class="el" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de">GPIO_IRQ_LEVEL_HIGH</a> = 0x2u
174 , <a class="el" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59">GPIO_IRQ_EDGE_FALL</a> = 0x4u
175 , <a class="el" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e">GPIO_IRQ_EDGE_RISE</a> = 0x8u
176  }</td></tr>
177 <tr class="memdesc:ga6347e27da3ab34f1ea65b5ae16ab724f"><td class="mdescLeft">&#160;</td><td class="mdescRight">GPIO Interrupt level definitions (GPIO events)  <a href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">More...</a><br /></td></tr>
178 <tr class="separator:ga6347e27da3ab34f1ea65b5ae16ab724f"><td class="memSeparator" colspan="2">&#160;</td></tr>
179 <tr class="memitem:ga72c250c9393043ea5beb56092d26e229"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> { <a class="el" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">GPIO_SLEW_RATE_SLOW</a> = 0
180 , <a class="el" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">GPIO_SLEW_RATE_FAST</a> = 1
181  }</td></tr>
182 <tr class="memdesc:ga72c250c9393043ea5beb56092d26e229"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slew rate limiting levels for GPIO outputs.  <a href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">More...</a><br /></td></tr>
183 <tr class="separator:ga72c250c9393043ea5beb56092d26e229"><td class="memSeparator" colspan="2">&#160;</td></tr>
184 <tr class="memitem:ga14eba84c1c8f80b08a770775d3bf060a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> { <a class="el" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">GPIO_DRIVE_STRENGTH_2MA</a> = 0
185 , <a class="el" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">GPIO_DRIVE_STRENGTH_4MA</a> = 1
186 , <a class="el" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">GPIO_DRIVE_STRENGTH_8MA</a> = 2
187 , <a class="el" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">GPIO_DRIVE_STRENGTH_12MA</a> = 3
188  }</td></tr>
189 <tr class="memdesc:ga14eba84c1c8f80b08a770775d3bf060a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive strength levels for GPIO outputs.  <a href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">More...</a><br /></td></tr>
190 <tr class="separator:ga14eba84c1c8f80b08a770775d3bf060a"><td class="memSeparator" colspan="2">&#160;</td></tr>
191 </table><table class="memberdecls">
192 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
193 Functions</h2></td></tr>
194 <tr class="memitem:ga22f6b90c4c7e0013b4b5341de0a44fc4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a> (uint gpio, <a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn)</td></tr>
195 <tr class="memdesc:ga22f6b90c4c7e0013b4b5341de0a44fc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select GPIO function.  <a href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">More...</a><br /></td></tr>
196 <tr class="separator:ga22f6b90c4c7e0013b4b5341de0a44fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
197 <tr class="memitem:ga32c1aae77b4b3bf42e9ae554d16284ab"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga32c1aae77b4b3bf42e9ae554d16284ab">gpio_set_function_masked</a> (uint32_t gpio_mask, <a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn)</td></tr>
198 <tr class="memdesc:ga32c1aae77b4b3bf42e9ae554d16284ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the function for multiple GPIOs.  <a href="group__hardware__gpio.html#ga32c1aae77b4b3bf42e9ae554d16284ab">More...</a><br /></td></tr>
199 <tr class="separator:ga32c1aae77b4b3bf42e9ae554d16284ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
200 <tr class="memitem:ga83093178ba0ad7d711bff47fc90d361b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga83093178ba0ad7d711bff47fc90d361b">gpio_set_function_masked64</a> (uint64_t gpio_mask, <a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn)</td></tr>
201 <tr class="memdesc:ga83093178ba0ad7d711bff47fc90d361b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the function for multiple GPIOs.  <a href="group__hardware__gpio.html#ga83093178ba0ad7d711bff47fc90d361b">More...</a><br /></td></tr>
202 <tr class="separator:ga83093178ba0ad7d711bff47fc90d361b"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 <tr class="memitem:ga24dabfcb46dde4daa8938b36df130c31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga24dabfcb46dde4daa8938b36df130c31">gpio_get_function</a> (uint gpio)</td></tr>
204 <tr class="memdesc:ga24dabfcb46dde4daa8938b36df130c31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine current GPIO function.  <a href="group__hardware__gpio.html#ga24dabfcb46dde4daa8938b36df130c31">More...</a><br /></td></tr>
205 <tr class="separator:ga24dabfcb46dde4daa8938b36df130c31"><td class="memSeparator" colspan="2">&#160;</td></tr>
206 <tr class="memitem:gab6bf9552da32b3dd0a5d0db45d8374fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a> (uint gpio, bool up, bool down)</td></tr>
207 <tr class="memdesc:gab6bf9552da32b3dd0a5d0db45d8374fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select up and down pulls on specific GPIO.  <a href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">More...</a><br /></td></tr>
208 <tr class="separator:gab6bf9552da32b3dd0a5d0db45d8374fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
209 <tr class="memitem:ga30a6733240f3d2e25e6b579b6c3902da"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">gpio_pull_up</a> (uint gpio)</td></tr>
210 <tr class="memdesc:ga30a6733240f3d2e25e6b579b6c3902da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set specified GPIO to be pulled up.  <a href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">More...</a><br /></td></tr>
211 <tr class="separator:ga30a6733240f3d2e25e6b579b6c3902da"><td class="memSeparator" colspan="2">&#160;</td></tr>
212 <tr class="memitem:gac7038968884d02b67403a50f1be6ecd6"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">gpio_is_pulled_up</a> (uint gpio)</td></tr>
213 <tr class="memdesc:gac7038968884d02b67403a50f1be6ecd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the specified GPIO is pulled up.  <a href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">More...</a><br /></td></tr>
214 <tr class="separator:gac7038968884d02b67403a50f1be6ecd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
215 <tr class="memitem:gaea499c33479cf8f87a91a74411ad241f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">gpio_pull_down</a> (uint gpio)</td></tr>
216 <tr class="memdesc:gaea499c33479cf8f87a91a74411ad241f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set specified GPIO to be pulled down.  <a href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">More...</a><br /></td></tr>
217 <tr class="separator:gaea499c33479cf8f87a91a74411ad241f"><td class="memSeparator" colspan="2">&#160;</td></tr>
218 <tr class="memitem:ga54c35d7beb7025aa001ae5b93d38935b"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">gpio_is_pulled_down</a> (uint gpio)</td></tr>
219 <tr class="memdesc:ga54c35d7beb7025aa001ae5b93d38935b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine if the specified GPIO is pulled down.  <a href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">More...</a><br /></td></tr>
220 <tr class="separator:ga54c35d7beb7025aa001ae5b93d38935b"><td class="memSeparator" colspan="2">&#160;</td></tr>
221 <tr class="memitem:gae57a625b7e0bcac6d596f35864ffc792"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">gpio_disable_pulls</a> (uint gpio)</td></tr>
222 <tr class="memdesc:gae57a625b7e0bcac6d596f35864ffc792"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable pulls on specified GPIO.  <a href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">More...</a><br /></td></tr>
223 <tr class="separator:gae57a625b7e0bcac6d596f35864ffc792"><td class="memSeparator" colspan="2">&#160;</td></tr>
224 <tr class="memitem:ga9788ec1b8306c6bacfb578f0074eb3ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">gpio_set_irqover</a> (uint gpio, uint value)</td></tr>
225 <tr class="memdesc:ga9788ec1b8306c6bacfb578f0074eb3ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set GPIO IRQ override.  <a href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">More...</a><br /></td></tr>
226 <tr class="separator:ga9788ec1b8306c6bacfb578f0074eb3ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
227 <tr class="memitem:ga829129eed5d42f3455e9da339219d814"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">gpio_set_outover</a> (uint gpio, uint value)</td></tr>
228 <tr class="memdesc:ga829129eed5d42f3455e9da339219d814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set GPIO output override.  <a href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">More...</a><br /></td></tr>
229 <tr class="separator:ga829129eed5d42f3455e9da339219d814"><td class="memSeparator" colspan="2">&#160;</td></tr>
230 <tr class="memitem:ga6037bdaf406a84336043c9a6c40e5073"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">gpio_set_inover</a> (uint gpio, uint value)</td></tr>
231 <tr class="memdesc:ga6037bdaf406a84336043c9a6c40e5073"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select GPIO input override.  <a href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">More...</a><br /></td></tr>
232 <tr class="separator:ga6037bdaf406a84336043c9a6c40e5073"><td class="memSeparator" colspan="2">&#160;</td></tr>
233 <tr class="memitem:ga250e767769daabb71b5ea8cab49b4463"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">gpio_set_oeover</a> (uint gpio, uint value)</td></tr>
234 <tr class="memdesc:ga250e767769daabb71b5ea8cab49b4463"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select GPIO output enable override.  <a href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">More...</a><br /></td></tr>
235 <tr class="separator:ga250e767769daabb71b5ea8cab49b4463"><td class="memSeparator" colspan="2">&#160;</td></tr>
236 <tr class="memitem:ga74a8c3e55185581bc3df335aea1d0fb8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">gpio_set_input_enabled</a> (uint gpio, bool enabled)</td></tr>
237 <tr class="memdesc:ga74a8c3e55185581bc3df335aea1d0fb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable GPIO input.  <a href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">More...</a><br /></td></tr>
238 <tr class="separator:ga74a8c3e55185581bc3df335aea1d0fb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
239 <tr class="memitem:ga1f52eecc12d4348ef8bd1e17bdb4b107"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">gpio_set_input_hysteresis_enabled</a> (uint gpio, bool enabled)</td></tr>
240 <tr class="memdesc:ga1f52eecc12d4348ef8bd1e17bdb4b107"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable GPIO input hysteresis (Schmitt trigger)  <a href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">More...</a><br /></td></tr>
241 <tr class="separator:ga1f52eecc12d4348ef8bd1e17bdb4b107"><td class="memSeparator" colspan="2">&#160;</td></tr>
242 <tr class="memitem:gac451f3251c0d0bea97aa535f65974ec8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">gpio_is_input_hysteresis_enabled</a> (uint gpio)</td></tr>
243 <tr class="memdesc:gac451f3251c0d0bea97aa535f65974ec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether input hysteresis is enabled on a specified GPIO.  <a href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">More...</a><br /></td></tr>
244 <tr class="separator:gac451f3251c0d0bea97aa535f65974ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
245 <tr class="memitem:gaf1d12efbed0809650d98fe9a424876c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">gpio_set_slew_rate</a> (uint gpio, enum <a class="el" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> slew)</td></tr>
246 <tr class="memdesc:gaf1d12efbed0809650d98fe9a424876c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set slew rate for a specified GPIO.  <a href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">More...</a><br /></td></tr>
247 <tr class="separator:gaf1d12efbed0809650d98fe9a424876c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
248 <tr class="memitem:ga4422d9c09199d199e8fe736b3c29ae49"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">gpio_get_slew_rate</a> (uint gpio)</td></tr>
249 <tr class="memdesc:ga4422d9c09199d199e8fe736b3c29ae49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine current slew rate for a specified GPIO.  <a href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">More...</a><br /></td></tr>
250 <tr class="separator:ga4422d9c09199d199e8fe736b3c29ae49"><td class="memSeparator" colspan="2">&#160;</td></tr>
251 <tr class="memitem:ga0ffe0ddabcd081b513731275df97e7ca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">gpio_set_drive_strength</a> (uint gpio, enum <a class="el" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> drive)</td></tr>
252 <tr class="memdesc:ga0ffe0ddabcd081b513731275df97e7ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set drive strength for a specified GPIO.  <a href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">More...</a><br /></td></tr>
253 <tr class="separator:ga0ffe0ddabcd081b513731275df97e7ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
254 <tr class="memitem:ga1378540c24ec318ac7674dac4ec30140"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">gpio_get_drive_strength</a> (uint gpio)</td></tr>
255 <tr class="memdesc:ga1378540c24ec318ac7674dac4ec30140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine current drive strength for a specified GPIO.  <a href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">More...</a><br /></td></tr>
256 <tr class="separator:ga1378540c24ec318ac7674dac4ec30140"><td class="memSeparator" colspan="2">&#160;</td></tr>
257 <tr class="memitem:ga08b1f920beba446c4d4385de999cf945"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a> (uint gpio, uint32_t event_mask, bool enabled)</td></tr>
258 <tr class="memdesc:ga08b1f920beba446c4d4385de999cf945"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable specific interrupt events for specified GPIO.  <a href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">More...</a><br /></td></tr>
259 <tr class="separator:ga08b1f920beba446c4d4385de999cf945"><td class="memSeparator" colspan="2">&#160;</td></tr>
260 <tr class="memitem:ga37b23dea291af5926735b5e8c87b7dbb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a> (<a class="el" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback)</td></tr>
261 <tr class="memdesc:ga37b23dea291af5926735b5e8c87b7dbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the generic callback used for GPIO IRQ events for the current core.  <a href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">More...</a><br /></td></tr>
262 <tr class="separator:ga37b23dea291af5926735b5e8c87b7dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
263 <tr class="memitem:ga6165f07f4b619dd08ea6dc97d069e78a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a> (uint gpio, uint32_t event_mask, bool enabled, <a class="el" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback)</td></tr>
264 <tr class="memdesc:ga6165f07f4b619dd08ea6dc97d069e78a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience function which performs multiple GPIO IRQ related initializations.  <a href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">More...</a><br /></td></tr>
265 <tr class="separator:ga6165f07f4b619dd08ea6dc97d069e78a"><td class="memSeparator" colspan="2">&#160;</td></tr>
266 <tr class="memitem:ga0b10ec79e10d7df958373b178debcd2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">gpio_set_dormant_irq_enabled</a> (uint gpio, uint32_t event_mask, bool enabled)</td></tr>
267 <tr class="memdesc:ga0b10ec79e10d7df958373b178debcd2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable dormant wake up interrupt for specified GPIO and events.  <a href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">More...</a><br /></td></tr>
268 <tr class="separator:ga0b10ec79e10d7df958373b178debcd2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
269 <tr class="memitem:gaf2d1208ba7e3b02b23e7385350182583"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a> (uint gpio)</td></tr>
270 <tr class="memdesc:gaf2d1208ba7e3b02b23e7385350182583"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current interrupt status (pending events) for the given GPIO.  <a href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">More...</a><br /></td></tr>
271 <tr class="separator:gaf2d1208ba7e3b02b23e7385350182583"><td class="memSeparator" colspan="2">&#160;</td></tr>
272 <tr class="memitem:ga091c148a5cfaf2b55e716b6effef6360"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a> (uint gpio, uint32_t event_mask)</td></tr>
273 <tr class="memdesc:ga091c148a5cfaf2b55e716b6effef6360"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledge a GPIO interrupt for the specified events on the calling core.  <a href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">More...</a><br /></td></tr>
274 <tr class="separator:ga091c148a5cfaf2b55e716b6effef6360"><td class="memSeparator" colspan="2">&#160;</td></tr>
275 <tr class="memitem:gaf43d2f09003804f535dc118688a9702c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">gpio_add_raw_irq_handler_with_order_priority_masked</a> (uint32_t gpio_mask, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority)</td></tr>
276 <tr class="memdesc:gaf43d2f09003804f535dc118688a9702c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.  <a href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">More...</a><br /></td></tr>
277 <tr class="separator:gaf43d2f09003804f535dc118688a9702c"><td class="memSeparator" colspan="2">&#160;</td></tr>
278 <tr class="memitem:ga78f8d7c7c8fb66794f7c269311f145ae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">gpio_add_raw_irq_handler_with_order_priority_masked64</a> (uint64_t gpio_mask, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority)</td></tr>
279 <tr class="memdesc:ga78f8d7c7c8fb66794f7c269311f145ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.  <a href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">More...</a><br /></td></tr>
280 <tr class="separator:ga78f8d7c7c8fb66794f7c269311f145ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
281 <tr class="memitem:ga07c4de2660686b9158a5b0526ccbb446"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">gpio_add_raw_irq_handler_with_order_priority</a> (uint gpio, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority)</td></tr>
282 <tr class="memdesc:ga07c4de2660686b9158a5b0526ccbb446"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.  <a href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">More...</a><br /></td></tr>
283 <tr class="separator:ga07c4de2660686b9158a5b0526ccbb446"><td class="memSeparator" colspan="2">&#160;</td></tr>
284 <tr class="memitem:gaf745f0bcdaf049d2e060aa8971352a55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">gpio_add_raw_irq_handler_masked</a> (uint32_t gpio_mask, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler)</td></tr>
285 <tr class="memdesc:gaf745f0bcdaf049d2e060aa8971352a55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.  <a href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">More...</a><br /></td></tr>
286 <tr class="separator:gaf745f0bcdaf049d2e060aa8971352a55"><td class="memSeparator" colspan="2">&#160;</td></tr>
287 <tr class="memitem:ga24e5e9eed83f48ffe77f732b800f1405"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">gpio_add_raw_irq_handler_masked64</a> (uint64_t gpio_mask, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler)</td></tr>
288 <tr class="memdesc:ga24e5e9eed83f48ffe77f732b800f1405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.  <a href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">More...</a><br /></td></tr>
289 <tr class="separator:ga24e5e9eed83f48ffe77f732b800f1405"><td class="memSeparator" colspan="2">&#160;</td></tr>
290 <tr class="memitem:ga2e78fcd487a3a2e173322c6502fe9419"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a> (uint gpio, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler)</td></tr>
291 <tr class="memdesc:ga2e78fcd487a3a2e173322c6502fe9419"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.  <a href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">More...</a><br /></td></tr>
292 <tr class="separator:ga2e78fcd487a3a2e173322c6502fe9419"><td class="memSeparator" colspan="2">&#160;</td></tr>
293 <tr class="memitem:ga25b1f0b4dc42144da4ed3acbed513095"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">gpio_remove_raw_irq_handler_masked</a> (uint32_t gpio_mask, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler)</td></tr>
294 <tr class="memdesc:ga25b1f0b4dc42144da4ed3acbed513095"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a raw GPIO IRQ handler for the specified GPIOs on the current core.  <a href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">More...</a><br /></td></tr>
295 <tr class="separator:ga25b1f0b4dc42144da4ed3acbed513095"><td class="memSeparator" colspan="2">&#160;</td></tr>
296 <tr class="memitem:ga9310346a1f7b58ba6b6be82097980af6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">gpio_remove_raw_irq_handler_masked64</a> (uint64_t gpio_mask, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler)</td></tr>
297 <tr class="memdesc:ga9310346a1f7b58ba6b6be82097980af6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a raw GPIO IRQ handler for the specified GPIOs on the current core.  <a href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">More...</a><br /></td></tr>
298 <tr class="separator:ga9310346a1f7b58ba6b6be82097980af6"><td class="memSeparator" colspan="2">&#160;</td></tr>
299 <tr class="memitem:ga495c253b01a68b0f81721d2061741243"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">gpio_remove_raw_irq_handler</a> (uint gpio, <a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler)</td></tr>
300 <tr class="memdesc:ga495c253b01a68b0f81721d2061741243"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a raw GPIO IRQ handler for the specified GPIO on the current core.  <a href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">More...</a><br /></td></tr>
301 <tr class="separator:ga495c253b01a68b0f81721d2061741243"><td class="memSeparator" colspan="2">&#160;</td></tr>
302 <tr class="memitem:ga8aa4741d93dc40bc728dbd3e41813ad1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">gpio_init</a> (uint gpio)</td></tr>
303 <tr class="memdesc:ga8aa4741d93dc40bc728dbd3e41813ad1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise a GPIO for (enabled I/O and set func to GPIO_FUNC_SIO)  <a href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">More...</a><br /></td></tr>
304 <tr class="separator:ga8aa4741d93dc40bc728dbd3e41813ad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
305 <tr class="memitem:ga4df18d737955c17a65c5a94412826674"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">gpio_deinit</a> (uint gpio)</td></tr>
306 <tr class="memdesc:ga4df18d737955c17a65c5a94412826674"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets a GPIO back to the NULL function, i.e. disables it.  <a href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">More...</a><br /></td></tr>
307 <tr class="separator:ga4df18d737955c17a65c5a94412826674"><td class="memSeparator" colspan="2">&#160;</td></tr>
308 <tr class="memitem:ga2f3ccb15297fecd3792359d9cbbf6ed6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">gpio_init_mask</a> (uint gpio_mask)</td></tr>
309 <tr class="memdesc:ga2f3ccb15297fecd3792359d9cbbf6ed6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise multiple GPIOs (enabled I/O and set func to GPIO_FUNC_SIO)  <a href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">More...</a><br /></td></tr>
310 <tr class="separator:ga2f3ccb15297fecd3792359d9cbbf6ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
311 <tr class="memitem:gaf38c0b39fba06d1a49d1be56ef548d73"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">gpio_get</a> (uint gpio)</td></tr>
312 <tr class="memdesc:gaf38c0b39fba06d1a49d1be56ef548d73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get state of a single specified GPIO.  <a href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">More...</a><br /></td></tr>
313 <tr class="separator:gaf38c0b39fba06d1a49d1be56ef548d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
314 <tr class="memitem:gae895be2d3c5af5df460150eafe7858a4"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">gpio_get_all</a> (void)</td></tr>
315 <tr class="memdesc:gae895be2d3c5af5df460150eafe7858a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get raw value of all GPIOs.  <a href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">More...</a><br /></td></tr>
316 <tr class="separator:gae895be2d3c5af5df460150eafe7858a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
317 <tr class="memitem:gaa4c504fbf6c76632e1d11e507a3861e9"><td class="memItemLeft" align="right" valign="top">static uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9">gpio_get_all64</a> (void)</td></tr>
318 <tr class="memdesc:gaa4c504fbf6c76632e1d11e507a3861e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get raw value of all GPIOs.  <a href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9">More...</a><br /></td></tr>
319 <tr class="separator:gaa4c504fbf6c76632e1d11e507a3861e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
320 <tr class="memitem:gaf3aa12aa4543965e24f52cfa9b529904"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a> (uint32_t mask)</td></tr>
321 <tr class="memdesc:gaf3aa12aa4543965e24f52cfa9b529904"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive high every GPIO appearing in mask.  <a href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">More...</a><br /></td></tr>
322 <tr class="separator:gaf3aa12aa4543965e24f52cfa9b529904"><td class="memSeparator" colspan="2">&#160;</td></tr>
323 <tr class="memitem:ga9eea2536fc6321a238fe6937652c4e9e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e">gpio_set_mask64</a> (uint64_t mask)</td></tr>
324 <tr class="memdesc:ga9eea2536fc6321a238fe6937652c4e9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive high every GPIO appearing in mask.  <a href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e">More...</a><br /></td></tr>
325 <tr class="separator:ga9eea2536fc6321a238fe6937652c4e9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
326 <tr class="memitem:ga94edb03754cad21d38ef58bf85c13814"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814">gpio_set_mask_n</a> (uint n, uint32_t mask)</td></tr>
327 <tr class="memdesc:ga94edb03754cad21d38ef58bf85c13814"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive high every GPIO appearing in mask.  <a href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814">More...</a><br /></td></tr>
328 <tr class="separator:ga94edb03754cad21d38ef58bf85c13814"><td class="memSeparator" colspan="2">&#160;</td></tr>
329 <tr class="memitem:ga6aca495d644a6ae66050a99ef44defbe"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a> (uint32_t mask)</td></tr>
330 <tr class="memdesc:ga6aca495d644a6ae66050a99ef44defbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive low every GPIO appearing in mask.  <a href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">More...</a><br /></td></tr>
331 <tr class="separator:ga6aca495d644a6ae66050a99ef44defbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
332 <tr class="memitem:gab37bb6b15065720e3efc9c39b3207a16"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16">gpio_clr_mask64</a> (uint64_t mask)</td></tr>
333 <tr class="memdesc:gab37bb6b15065720e3efc9c39b3207a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive low every GPIO appearing in mask.  <a href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16">More...</a><br /></td></tr>
334 <tr class="separator:gab37bb6b15065720e3efc9c39b3207a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
335 <tr class="memitem:ga964463f96737c6d1127188b8c0bc44b8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8">gpio_clr_mask_n</a> (uint n, uint32_t mask)</td></tr>
336 <tr class="memdesc:ga964463f96737c6d1127188b8c0bc44b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive low every GPIO appearing in mask.  <a href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8">More...</a><br /></td></tr>
337 <tr class="separator:ga964463f96737c6d1127188b8c0bc44b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
338 <tr class="memitem:ga64de3fa94def1d5e8c87f419f25ea7fd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a> (uint32_t mask)</td></tr>
339 <tr class="memdesc:ga64de3fa94def1d5e8c87f419f25ea7fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Toggle every GPIO appearing in mask.  <a href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">More...</a><br /></td></tr>
340 <tr class="separator:ga64de3fa94def1d5e8c87f419f25ea7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
341 <tr class="memitem:gab777c66bd5b766a8552ed5625197b119"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119">gpio_xor_mask64</a> (uint64_t mask)</td></tr>
342 <tr class="memdesc:gab777c66bd5b766a8552ed5625197b119"><td class="mdescLeft">&#160;</td><td class="mdescRight">Toggle every GPIO appearing in mask.  <a href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119">More...</a><br /></td></tr>
343 <tr class="separator:gab777c66bd5b766a8552ed5625197b119"><td class="memSeparator" colspan="2">&#160;</td></tr>
344 <tr class="memitem:ga72a5e5a6ac1a108887229af522e65a06"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06">gpio_xor_mask_n</a> (uint n, uint32_t mask)</td></tr>
345 <tr class="memdesc:ga72a5e5a6ac1a108887229af522e65a06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Toggle every GPIO appearing in mask.  <a href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06">More...</a><br /></td></tr>
346 <tr class="separator:ga72a5e5a6ac1a108887229af522e65a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
347 <tr class="memitem:gac86436d117c7a87f982c9b3311543302"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a> (uint32_t mask, uint32_t value)</td></tr>
348 <tr class="memdesc:gac86436d117c7a87f982c9b3311543302"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive GPIOs high/low depending on parameters.  <a href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">More...</a><br /></td></tr>
349 <tr class="separator:gac86436d117c7a87f982c9b3311543302"><td class="memSeparator" colspan="2">&#160;</td></tr>
350 <tr class="memitem:gaa613a661abe840e614116c67b84c2003"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003">gpio_put_masked64</a> (uint64_t mask, uint64_t value)</td></tr>
351 <tr class="memdesc:gaa613a661abe840e614116c67b84c2003"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive GPIOs high/low depending on parameters.  <a href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003">More...</a><br /></td></tr>
352 <tr class="separator:gaa613a661abe840e614116c67b84c2003"><td class="memSeparator" colspan="2">&#160;</td></tr>
353 <tr class="memitem:ga6ff6c7a437acc5750c0a290c086347b5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5">gpio_put_masked_n</a> (uint n, uint32_t mask, uint32_t value)</td></tr>
354 <tr class="memdesc:ga6ff6c7a437acc5750c0a290c086347b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive GPIOs high/low depending on parameters.  <a href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5">More...</a><br /></td></tr>
355 <tr class="separator:ga6ff6c7a437acc5750c0a290c086347b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
356 <tr class="memitem:ga7aa41e10d04a8d99d9a8c4d7ba5007b8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">gpio_put_all</a> (uint32_t value)</td></tr>
357 <tr class="memdesc:ga7aa41e10d04a8d99d9a8c4d7ba5007b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive all pins simultaneously.  <a href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">More...</a><br /></td></tr>
358 <tr class="separator:ga7aa41e10d04a8d99d9a8c4d7ba5007b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
359 <tr class="memitem:ga0ac6439a42e8080449a192bb79e6166c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c">gpio_put_all64</a> (uint64_t value)</td></tr>
360 <tr class="memdesc:ga0ac6439a42e8080449a192bb79e6166c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive all pins simultaneously.  <a href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c">More...</a><br /></td></tr>
361 <tr class="separator:ga0ac6439a42e8080449a192bb79e6166c"><td class="memSeparator" colspan="2">&#160;</td></tr>
362 <tr class="memitem:ga71d35b29e897b9bb4fc881b587b08cab"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">gpio_put</a> (uint gpio, bool value)</td></tr>
363 <tr class="memdesc:ga71d35b29e897b9bb4fc881b587b08cab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Drive a single GPIO high/low.  <a href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">More...</a><br /></td></tr>
364 <tr class="separator:ga71d35b29e897b9bb4fc881b587b08cab"><td class="memSeparator" colspan="2">&#160;</td></tr>
365 <tr class="memitem:ga0a818ceaa50e3e2317fbb0856d47eaef"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">gpio_get_out_level</a> (uint gpio)</td></tr>
366 <tr class="memdesc:ga0a818ceaa50e3e2317fbb0856d47eaef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether a GPIO is currently driven high or low.  <a href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">More...</a><br /></td></tr>
367 <tr class="separator:ga0a818ceaa50e3e2317fbb0856d47eaef"><td class="memSeparator" colspan="2">&#160;</td></tr>
368 <tr class="memitem:ga7b2cc867ac41996100e881a768c7f969"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a> (uint32_t mask)</td></tr>
369 <tr class="memdesc:ga7b2cc867ac41996100e881a768c7f969"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a number of GPIOs to output.  <a href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">More...</a><br /></td></tr>
370 <tr class="separator:ga7b2cc867ac41996100e881a768c7f969"><td class="memSeparator" colspan="2">&#160;</td></tr>
371 <tr class="memitem:ga71c466b22b8ce63c8863933c82c4810e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e">gpio_set_dir_out_masked64</a> (uint64_t mask)</td></tr>
372 <tr class="memdesc:ga71c466b22b8ce63c8863933c82c4810e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a number of GPIOs to output.  <a href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e">More...</a><br /></td></tr>
373 <tr class="separator:ga71c466b22b8ce63c8863933c82c4810e"><td class="memSeparator" colspan="2">&#160;</td></tr>
374 <tr class="memitem:ga79819a97822983d7422d37c3e532cc53"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a> (uint32_t mask)</td></tr>
375 <tr class="memdesc:ga79819a97822983d7422d37c3e532cc53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a number of GPIOs to input.  <a href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">More...</a><br /></td></tr>
376 <tr class="separator:ga79819a97822983d7422d37c3e532cc53"><td class="memSeparator" colspan="2">&#160;</td></tr>
377 <tr class="memitem:gac6dbb6aa0cd534decaee71bfb7883371"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371">gpio_set_dir_in_masked64</a> (uint64_t mask)</td></tr>
378 <tr class="memdesc:gac6dbb6aa0cd534decaee71bfb7883371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a number of GPIOs to input.  <a href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371">More...</a><br /></td></tr>
379 <tr class="separator:gac6dbb6aa0cd534decaee71bfb7883371"><td class="memSeparator" colspan="2">&#160;</td></tr>
380 <tr class="memitem:gaa64fdceff54dda03f4427f04c2f9ced2"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">gpio_set_dir_masked</a> (uint32_t mask, uint32_t value)</td></tr>
381 <tr class="memdesc:gaa64fdceff54dda03f4427f04c2f9ced2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set multiple GPIO directions.  <a href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">More...</a><br /></td></tr>
382 <tr class="separator:gaa64fdceff54dda03f4427f04c2f9ced2"><td class="memSeparator" colspan="2">&#160;</td></tr>
383 <tr class="memitem:ga2db74931aa7a9b7396765d86a6c53148"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148">gpio_set_dir_masked64</a> (uint64_t mask, uint64_t value)</td></tr>
384 <tr class="memdesc:ga2db74931aa7a9b7396765d86a6c53148"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set multiple GPIO directions.  <a href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148">More...</a><br /></td></tr>
385 <tr class="separator:ga2db74931aa7a9b7396765d86a6c53148"><td class="memSeparator" colspan="2">&#160;</td></tr>
386 <tr class="memitem:ga50b526aa81f036a20c60f04106910578"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">gpio_set_dir_all_bits</a> (uint32_t values)</td></tr>
387 <tr class="memdesc:ga50b526aa81f036a20c60f04106910578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set direction of all pins simultaneously.  <a href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">More...</a><br /></td></tr>
388 <tr class="separator:ga50b526aa81f036a20c60f04106910578"><td class="memSeparator" colspan="2">&#160;</td></tr>
389 <tr class="memitem:gab6a80e41c677f7643a114351ea48ced4"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4">gpio_set_dir_all_bits64</a> (uint64_t values)</td></tr>
390 <tr class="memdesc:gab6a80e41c677f7643a114351ea48ced4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set direction of all pins simultaneously.  <a href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4">More...</a><br /></td></tr>
391 <tr class="separator:gab6a80e41c677f7643a114351ea48ced4"><td class="memSeparator" colspan="2">&#160;</td></tr>
392 <tr class="memitem:ga6a40edf0d86f6b3f0dcb51a768cf4681"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">gpio_set_dir</a> (uint gpio, bool out)</td></tr>
393 <tr class="memdesc:ga6a40edf0d86f6b3f0dcb51a768cf4681"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a single GPIO direction.  <a href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">More...</a><br /></td></tr>
394 <tr class="separator:ga6a40edf0d86f6b3f0dcb51a768cf4681"><td class="memSeparator" colspan="2">&#160;</td></tr>
395 <tr class="memitem:gaa0dbc5c65103d483217a190b72ed26dc"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a> (uint gpio)</td></tr>
396 <tr class="memdesc:gaa0dbc5c65103d483217a190b72ed26dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a specific GPIO direction is OUT.  <a href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">More...</a><br /></td></tr>
397 <tr class="separator:gaa0dbc5c65103d483217a190b72ed26dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
398 <tr class="memitem:ga2a78dd5d9b2a181794c632aa4881c5ed"><td class="memItemLeft" align="right" valign="top">static uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">gpio_get_dir</a> (uint gpio)</td></tr>
399 <tr class="memdesc:ga2a78dd5d9b2a181794c632aa4881c5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a specific GPIO direction.  <a href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">More...</a><br /></td></tr>
400 <tr class="separator:ga2a78dd5d9b2a181794c632aa4881c5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
401 </table>
402 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
403 <p >General Purpose Input/Output (GPIO) API. </p>
404 <p >RP-series microcontrollers have two banks of General Purpose Input / Output (GPIO) pins, which are assigned as follows:</p>
405 <p >All GPIOs support digital input and output, but a subset can also be used as inputs to the chip’s Analogue to Digital Converter (ADC). The allocation of GPIO pins to the ADC depends on the packaging.</p>
406 <p >RP2040 and RP2350 QFN-60 GPIO, ADC pins are 26-29. RP2350 QFN-80, ADC pins are 40-47.</p>
407 <p >Each GPIO can be controlled directly by software running on the processors, or by a number of other functional blocks.</p>
408 <p >The function allocated to each GPIO is selected by calling the <a class="el" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a> function. </p><dl class="section note"><dt>Note</dt><dd>Not all functions are available on all pins.</dd></dl>
409 <p>Each GPIO can have one function selected at a time. Likewise, each peripheral input (e.g. UART0 RX) should only be selected on one <em>GPIO</em> at a time. If the same peripheral input is connected to multiple GPIOs, the peripheral sees the logical OR of these GPIO inputs. Please refer to the datasheet for more information on GPIO function select.</p>
410 <h3><a class="anchor" id="autotoc_md0"></a>
411 Function Select Table</h3>
412 <p >On RP2040 the function selects are:</p>
413 <table class="markdownTable">
414 <tr class="markdownTableHead">
415 <th class="markdownTableHeadNone">GPIO   </th><th class="markdownTableHeadNone">F1   </th><th class="markdownTableHeadNone">F2   </th><th class="markdownTableHeadNone">F3   </th><th class="markdownTableHeadNone">F4   </th><th class="markdownTableHeadNone">F5   </th><th class="markdownTableHeadNone">F6   </th><th class="markdownTableHeadNone">F7   </th><th class="markdownTableHeadNone">F8   </th><th class="markdownTableHeadNone">F9    </th></tr>
416 <tr class="markdownTableRowOdd">
417 <td class="markdownTableBodyNone">0   </td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM0 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
418 <tr class="markdownTableRowEven">
419 <td class="markdownTableBodyNone">1   </td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM0 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
420 <tr class="markdownTableRowOdd">
421 <td class="markdownTableBodyNone">2   </td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM1 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
422 <tr class="markdownTableRowEven">
423 <td class="markdownTableBodyNone">3   </td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM1 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
424 <tr class="markdownTableRowOdd">
425 <td class="markdownTableBodyNone">4   </td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM2 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
426 <tr class="markdownTableRowEven">
427 <td class="markdownTableBodyNone">5   </td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM2 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
428 <tr class="markdownTableRowOdd">
429 <td class="markdownTableBodyNone">6   </td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM3 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
430 <tr class="markdownTableRowEven">
431 <td class="markdownTableBodyNone">7   </td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM3 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
432 <tr class="markdownTableRowOdd">
433 <td class="markdownTableBodyNone">8   </td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM4 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
434 <tr class="markdownTableRowEven">
435 <td class="markdownTableBodyNone">9   </td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM4 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
436 <tr class="markdownTableRowOdd">
437 <td class="markdownTableBodyNone">10   </td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM5 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
438 <tr class="markdownTableRowEven">
439 <td class="markdownTableBodyNone">11   </td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM5 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
440 <tr class="markdownTableRowOdd">
441 <td class="markdownTableBodyNone">12   </td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM6 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
442 <tr class="markdownTableRowEven">
443 <td class="markdownTableBodyNone">13   </td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM6 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
444 <tr class="markdownTableRowOdd">
445 <td class="markdownTableBodyNone">14   </td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM7 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
446 <tr class="markdownTableRowEven">
447 <td class="markdownTableBodyNone">15   </td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM7 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
448 <tr class="markdownTableRowOdd">
449 <td class="markdownTableBodyNone">16   </td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM0 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
450 <tr class="markdownTableRowEven">
451 <td class="markdownTableBodyNone">17   </td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM0 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
452 <tr class="markdownTableRowOdd">
453 <td class="markdownTableBodyNone">18   </td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM1 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
454 <tr class="markdownTableRowEven">
455 <td class="markdownTableBodyNone">19   </td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM1 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
456 <tr class="markdownTableRowOdd">
457 <td class="markdownTableBodyNone">20   </td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM2 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">CLOCK GPIN0   </td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
458 <tr class="markdownTableRowEven">
459 <td class="markdownTableBodyNone">21   </td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM2 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">CLOCK GPOUT0   </td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
460 <tr class="markdownTableRowOdd">
461 <td class="markdownTableBodyNone">22   </td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM3 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">CLOCK GPIN1   </td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
462 <tr class="markdownTableRowEven">
463 <td class="markdownTableBodyNone">23   </td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM3 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">CLOCK GPOUT1   </td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
464 <tr class="markdownTableRowOdd">
465 <td class="markdownTableBodyNone">24   </td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM4 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">CLOCK GPOUT2   </td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
466 <tr class="markdownTableRowEven">
467 <td class="markdownTableBodyNone">25   </td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM4 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">CLOCK GPOUT3   </td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
468 <tr class="markdownTableRowOdd">
469 <td class="markdownTableBodyNone">26   </td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM5 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN    </td></tr>
470 <tr class="markdownTableRowEven">
471 <td class="markdownTableBodyNone">27   </td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM5 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET    </td></tr>
472 <tr class="markdownTableRowOdd">
473 <td class="markdownTableBodyNone">28   </td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM6 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET    </td></tr>
474 <tr class="markdownTableRowEven">
475 <td class="markdownTableBodyNone">29   </td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM6 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td></tr>
476 </table>
477 <p>On RP2350 the function selects are:</p>
478 <table class="markdownTable">
479 <tr class="markdownTableHead">
480 <th class="markdownTableHeadNone">GPIO   </th><th class="markdownTableHeadNone">F0   </th><th class="markdownTableHeadNone">F1   </th><th class="markdownTableHeadNone">F2   </th><th class="markdownTableHeadNone">F3   </th><th class="markdownTableHeadNone">F4   </th><th class="markdownTableHeadNone">F5   </th><th class="markdownTableHeadNone">F6   </th><th class="markdownTableHeadNone">F7   </th><th class="markdownTableHeadNone">F8   </th><th class="markdownTableHeadNone">F9   </th><th class="markdownTableHeadNone">F10   </th><th class="markdownTableHeadNone">F11    </th></tr>
481 <tr class="markdownTableRowOdd">
482 <td class="markdownTableBodyNone">0   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM0 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">XIP_CS1n   </td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
483 <tr class="markdownTableRowEven">
484 <td class="markdownTableBodyNone">1   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM0 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">TRACECLK   </td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
485 <tr class="markdownTableRowOdd">
486 <td class="markdownTableBodyNone">2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM1 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">TRACEDATA0   </td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART0 TX    </td></tr>
487 <tr class="markdownTableRowEven">
488 <td class="markdownTableBodyNone">3   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM1 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">TRACEDATA1   </td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART0 RX    </td></tr>
489 <tr class="markdownTableRowOdd">
490 <td class="markdownTableBodyNone">4   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM2 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">TRACEDATA2   </td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
491 <tr class="markdownTableRowEven">
492 <td class="markdownTableBodyNone">5   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM2 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">TRACEDATA3   </td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
493 <tr class="markdownTableRowOdd">
494 <td class="markdownTableBodyNone">6   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM3 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART1 TX    </td></tr>
495 <tr class="markdownTableRowEven">
496 <td class="markdownTableBodyNone">7   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM3 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART1 RX    </td></tr>
497 <tr class="markdownTableRowOdd">
498 <td class="markdownTableBodyNone">8   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM4 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">XIP_CS1n   </td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
499 <tr class="markdownTableRowEven">
500 <td class="markdownTableBodyNone">9   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM4 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
501 <tr class="markdownTableRowOdd">
502 <td class="markdownTableBodyNone">10   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM5 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART1 TX    </td></tr>
503 <tr class="markdownTableRowEven">
504 <td class="markdownTableBodyNone">11   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM5 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART1 RX    </td></tr>
505 <tr class="markdownTableRowOdd">
506 <td class="markdownTableBodyNone">12   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM6 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPIN0   </td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
507 <tr class="markdownTableRowEven">
508 <td class="markdownTableBodyNone">13   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM6 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPOUT0   </td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
509 <tr class="markdownTableRowOdd">
510 <td class="markdownTableBodyNone">14   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM7 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPIN1   </td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART0 TX    </td></tr>
511 <tr class="markdownTableRowEven">
512 <td class="markdownTableBodyNone">15   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM7 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPOUT1   </td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART0 RX    </td></tr>
513 <tr class="markdownTableRowOdd">
514 <td class="markdownTableBodyNone">16   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM0 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
515 <tr class="markdownTableRowEven">
516 <td class="markdownTableBodyNone">17   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM0 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
517 <tr class="markdownTableRowOdd">
518 <td class="markdownTableBodyNone">18   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM1 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART0 TX    </td></tr>
519 <tr class="markdownTableRowEven">
520 <td class="markdownTableBodyNone">19   </td><td class="markdownTableBodyNone">HSTX   </td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM1 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">XIP_CS1n   </td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART0 RX    </td></tr>
521 <tr class="markdownTableRowOdd">
522 <td class="markdownTableBodyNone">20   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM2 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPIN0   </td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
523 <tr class="markdownTableRowEven">
524 <td class="markdownTableBodyNone">21   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM2 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPOUT0   </td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
525 <tr class="markdownTableRowOdd">
526 <td class="markdownTableBodyNone">22   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM3 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPIN1   </td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART1 TX    </td></tr>
527 <tr class="markdownTableRowEven">
528 <td class="markdownTableBodyNone">23   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM3 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPOUT1   </td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART1 RX    </td></tr>
529 <tr class="markdownTableRowOdd">
530 <td class="markdownTableBodyNone">24   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM4 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPOUT2   </td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
531 <tr class="markdownTableRowEven">
532 <td class="markdownTableBodyNone">25   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM4 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">CLOCK GPOUT3   </td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
533 <tr class="markdownTableRowOdd">
534 <td class="markdownTableBodyNone">26   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM5 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART1 TX    </td></tr>
535 <tr class="markdownTableRowEven">
536 <td class="markdownTableBodyNone">27   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM5 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART1 RX    </td></tr>
537 <tr class="markdownTableRowOdd">
538 <td class="markdownTableBodyNone">28   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM6 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
539 <tr class="markdownTableRowEven">
540 <td class="markdownTableBodyNone">29   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM6 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
541 </table>
542 <p >GPIOs 30 through 47 are QFN-80 only:</p>
543 <table class="markdownTable">
544 <tr class="markdownTableHead">
545 <th class="markdownTableHeadNone">GPIO   </th><th class="markdownTableHeadNone">F0   </th><th class="markdownTableHeadNone">F1   </th><th class="markdownTableHeadNone">F2   </th><th class="markdownTableHeadNone">F3   </th><th class="markdownTableHeadNone">F4   </th><th class="markdownTableHeadNone">F5   </th><th class="markdownTableHeadNone">F6   </th><th class="markdownTableHeadNone">F7   </th><th class="markdownTableHeadNone">F8   </th><th class="markdownTableHeadNone">F9   </th><th class="markdownTableHeadNone">F10   </th><th class="markdownTableHeadNone">F11    </th></tr>
546 <tr class="markdownTableRowOdd">
547 <td class="markdownTableBodyNone">30   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM7 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART0 TX    </td></tr>
548 <tr class="markdownTableRowEven">
549 <td class="markdownTableBodyNone">31   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM7 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART0 RX    </td></tr>
550 <tr class="markdownTableRowOdd">
551 <td class="markdownTableBodyNone">32   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM8 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
552 <tr class="markdownTableRowEven">
553 <td class="markdownTableBodyNone">33   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM8 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
554 <tr class="markdownTableRowOdd">
555 <td class="markdownTableBodyNone">34   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM9 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART0 TX    </td></tr>
556 <tr class="markdownTableRowEven">
557 <td class="markdownTableBodyNone">35   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM9 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART0 RX    </td></tr>
558 <tr class="markdownTableRowOdd">
559 <td class="markdownTableBodyNone">36   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM10 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
560 <tr class="markdownTableRowEven">
561 <td class="markdownTableBodyNone">37   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM10 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
562 <tr class="markdownTableRowOdd">
563 <td class="markdownTableBodyNone">38   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM11 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART1 TX    </td></tr>
564 <tr class="markdownTableRowEven">
565 <td class="markdownTableBodyNone">39   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI0 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM11 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART1 RX    </td></tr>
566 <tr class="markdownTableRowOdd">
567 <td class="markdownTableBodyNone">40   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART1 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM8 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone"></td></tr>
568 <tr class="markdownTableRowEven">
569 <td class="markdownTableBodyNone">41   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART1 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM8 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
570 <tr class="markdownTableRowOdd">
571 <td class="markdownTableBodyNone">42   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART1 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM9 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone">UART1 TX    </td></tr>
572 <tr class="markdownTableRowEven">
573 <td class="markdownTableBodyNone">43   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART1 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM9 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART1 RX    </td></tr>
574 <tr class="markdownTableRowOdd">
575 <td class="markdownTableBodyNone">44   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 RX   </td><td class="markdownTableBodyNone">UART0 TX   </td><td class="markdownTableBodyNone">I2C0 SDA   </td><td class="markdownTableBodyNone">PWM10 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone"></td></tr>
576 <tr class="markdownTableRowEven">
577 <td class="markdownTableBodyNone">45   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 CSn   </td><td class="markdownTableBodyNone">UART0 RX   </td><td class="markdownTableBodyNone">I2C0 SCL   </td><td class="markdownTableBodyNone">PWM10 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB OVCUR DET   </td><td class="markdownTableBodyNone"></td></tr>
578 <tr class="markdownTableRowOdd">
579 <td class="markdownTableBodyNone">46   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 SCK   </td><td class="markdownTableBodyNone">UART0 CTS   </td><td class="markdownTableBodyNone">I2C1 SDA   </td><td class="markdownTableBodyNone">PWM11 A   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">USB VBUS DET   </td><td class="markdownTableBodyNone">UART0 TX    </td></tr>
580 <tr class="markdownTableRowEven">
581 <td class="markdownTableBodyNone">47   </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">SPI1 TX   </td><td class="markdownTableBodyNone">UART0 RTS   </td><td class="markdownTableBodyNone">I2C1 SCL   </td><td class="markdownTableBodyNone">PWM11 B   </td><td class="markdownTableBodyNone">SIO   </td><td class="markdownTableBodyNone">PIO0   </td><td class="markdownTableBodyNone">PIO1   </td><td class="markdownTableBodyNone">PIO2   </td><td class="markdownTableBodyNone">XIP_CS1n   </td><td class="markdownTableBodyNone">USB VBUS EN   </td><td class="markdownTableBodyNone">UART0 RX   </td></tr>
582 </table>
583 <h2 class="groupheader">Typedef Documentation</h2>
584 <a id="ga8fcdfeff45cc2030530bf00c6ae1e0a3" name="ga8fcdfeff45cc2030530bf00c6ae1e0a3"></a>
585 <h2 class="memtitle"><span class="permalink"><a href="#ga8fcdfeff45cc2030530bf00c6ae1e0a3">&#9670;&nbsp;</a></span>gpio_irq_callback_t</h2>
586
587 <div class="memitem">
588 <div class="memproto">
589       <table class="memname">
590         <tr>
591           <td class="memname">typedef void(* gpio_irq_callback_t) (uint gpio, uint32_t event_mask)</td>
592         </tr>
593       </table>
594 </div><div class="memdoc">
595 <p >Callback function type for GPIO events</p>
596 <dl class="params"><dt>Parameters</dt><dd>
597   <table class="params">
598     <tr><td class="paramname">gpio</td><td>Which GPIO caused this interrupt </td></tr>
599     <tr><td class="paramname">event_mask</td><td>Which events caused this interrupt. See <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> for details. </td></tr>
600   </table>
601   </dd>
602 </dl>
603 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a" title="Convenience function which performs multiple GPIO IRQ related initializations.">gpio_set_irq_enabled_with_callback()</a> </dd>
604 <dd>
605 <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb" title="Set the generic callback used for GPIO IRQ events for the current core.">gpio_set_irq_callback()</a> </dd></dl>
606
607 </div>
608 </div>
609 <h2 class="groupheader">Enumeration Type Documentation</h2>
610 <a id="ga14eba84c1c8f80b08a770775d3bf060a" name="ga14eba84c1c8f80b08a770775d3bf060a"></a>
611 <h2 class="memtitle"><span class="permalink"><a href="#ga14eba84c1c8f80b08a770775d3bf060a">&#9670;&nbsp;</a></span>gpio_drive_strength</h2>
612
613 <div class="memitem">
614 <div class="memproto">
615       <table class="memname">
616         <tr>
617           <td class="memname">enum <a class="el" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a></td>
618         </tr>
619       </table>
620 </div><div class="memdoc">
621
622 <p>Drive strength levels for GPIO outputs. </p>
623 <p >Drive strength levels for GPIO outputs. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca" title="Set drive strength for a specified GPIO.">gpio_set_drive_strength</a> </dd></dl>
624 <table class="fieldtable">
625 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295" name="gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295"></a>GPIO_DRIVE_STRENGTH_2MA&#160;</td><td class="fielddoc"><p >2 mA nominal drive strength </p>
626 </td></tr>
627 <tr><td class="fieldname"><a id="gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6" name="gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6"></a>GPIO_DRIVE_STRENGTH_4MA&#160;</td><td class="fielddoc"><p >4 mA nominal drive strength </p>
628 </td></tr>
629 <tr><td class="fieldname"><a id="gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d" name="gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d"></a>GPIO_DRIVE_STRENGTH_8MA&#160;</td><td class="fielddoc"><p >8 mA nominal drive strength </p>
630 </td></tr>
631 <tr><td class="fieldname"><a id="gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716" name="gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716"></a>GPIO_DRIVE_STRENGTH_12MA&#160;</td><td class="fielddoc"><p >12 mA nominal drive strength </p>
632 </td></tr>
633 </table>
634
635 </div>
636 </div>
637 <a id="gaf91b38a4d4e96c343bd16927c34936e0" name="gaf91b38a4d4e96c343bd16927c34936e0"></a>
638 <h2 class="memtitle"><span class="permalink"><a href="#gaf91b38a4d4e96c343bd16927c34936e0">&#9670;&nbsp;</a></span>gpio_function_rp2040</h2>
639
640 <div class="memitem">
641 <div class="memproto">
642       <table class="memname">
643         <tr>
644           <td class="memname">enum <a class="el" href="group__hardware__gpio.html#gaf91b38a4d4e96c343bd16927c34936e0">gpio_function_rp2040</a></td>
645         </tr>
646       </table>
647 </div><div class="memdoc">
648
649 <p>GPIO pin function selectors on RP2040 (used as typedef <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a>) </p>
650 <table class="fieldtable">
651 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0a6418b54c6693b726efc36ca9c77f4332" name="ggaf91b38a4d4e96c343bd16927c34936e0a6418b54c6693b726efc36ca9c77f4332"></a>GPIO_FUNC_XIP&#160;</td><td class="fielddoc"><p >Select XIP as GPIO pin function. </p>
652 </td></tr>
653 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0aac69243b6fe41fc1206ac4e45342456e" name="ggaf91b38a4d4e96c343bd16927c34936e0aac69243b6fe41fc1206ac4e45342456e"></a>GPIO_FUNC_SPI&#160;</td><td class="fielddoc"><p >Select SPI as GPIO pin function. </p>
654 </td></tr>
655 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0adf5eba10226d3be43a5d482dbe10e5c0" name="ggaf91b38a4d4e96c343bd16927c34936e0adf5eba10226d3be43a5d482dbe10e5c0"></a>GPIO_FUNC_UART&#160;</td><td class="fielddoc"><p >Select UART as GPIO pin function. </p>
656 </td></tr>
657 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0af5897687741f0ee34c88fd9823f1450a" name="ggaf91b38a4d4e96c343bd16927c34936e0af5897687741f0ee34c88fd9823f1450a"></a>GPIO_FUNC_I2C&#160;</td><td class="fielddoc"><p >Select I2C as GPIO pin function. </p>
658 </td></tr>
659 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0a2c6da3c6851ba4404a812719260b31d2" name="ggaf91b38a4d4e96c343bd16927c34936e0a2c6da3c6851ba4404a812719260b31d2"></a>GPIO_FUNC_PWM&#160;</td><td class="fielddoc"><p >Select PWM as GPIO pin function. </p>
660 </td></tr>
661 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0a8632dba349073657d356b82142031e9e" name="ggaf91b38a4d4e96c343bd16927c34936e0a8632dba349073657d356b82142031e9e"></a>GPIO_FUNC_SIO&#160;</td><td class="fielddoc"><p >Select SIO as GPIO pin function. </p>
662 </td></tr>
663 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0adfd646bbf58bfa281b09fae24e7b46dc" name="ggaf91b38a4d4e96c343bd16927c34936e0adfd646bbf58bfa281b09fae24e7b46dc"></a>GPIO_FUNC_PIO0&#160;</td><td class="fielddoc"><p >Select PIO0 as GPIO pin function. </p>
664 </td></tr>
665 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0a2c7092a5c1084c082f1303f251fd65d3" name="ggaf91b38a4d4e96c343bd16927c34936e0a2c7092a5c1084c082f1303f251fd65d3"></a>GPIO_FUNC_PIO1&#160;</td><td class="fielddoc"><p >Select PIO1 as GPIO pin function. </p>
666 </td></tr>
667 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0a540371b0462ae34e563752d1e2a5ef52" name="ggaf91b38a4d4e96c343bd16927c34936e0a540371b0462ae34e563752d1e2a5ef52"></a>GPIO_FUNC_GPCK&#160;</td><td class="fielddoc"><p >Select GPCK as GPIO pin function. </p>
668 </td></tr>
669 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0a56811bb79676a7a4f865696a25b3a608" name="ggaf91b38a4d4e96c343bd16927c34936e0a56811bb79676a7a4f865696a25b3a608"></a>GPIO_FUNC_USB&#160;</td><td class="fielddoc"><p >Select USB as GPIO pin function. </p>
670 </td></tr>
671 <tr><td class="fieldname"><a id="ggaf91b38a4d4e96c343bd16927c34936e0a3ec115257e1f1747abf60284362c5a04" name="ggaf91b38a4d4e96c343bd16927c34936e0a3ec115257e1f1747abf60284362c5a04"></a>GPIO_FUNC_NULL&#160;</td><td class="fielddoc"><p >Select NULL as GPIO pin function. </p>
672 </td></tr>
673 </table>
674
675 </div>
676 </div>
677 <a id="ga6bad9a66b67d755a63a2bb8843932752" name="ga6bad9a66b67d755a63a2bb8843932752"></a>
678 <h2 class="memtitle"><span class="permalink"><a href="#ga6bad9a66b67d755a63a2bb8843932752">&#9670;&nbsp;</a></span>gpio_function_rp2350</h2>
679
680 <div class="memitem">
681 <div class="memproto">
682       <table class="memname">
683         <tr>
684           <td class="memname">enum <a class="el" href="group__hardware__gpio.html#ga6bad9a66b67d755a63a2bb8843932752">gpio_function_rp2350</a></td>
685         </tr>
686       </table>
687 </div><div class="memdoc">
688
689 <p>GPIO pin function selectors on RP2350 (used as typedef <a class="el" href="group__hardware__gpio.html#ga89b8e5e8a9c515260dea8d1fa96e72c9">gpio_function_t</a>) </p>
690 <table class="fieldtable">
691 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a13e80888216ed7daced80b4847f20e9a" name="gga6bad9a66b67d755a63a2bb8843932752a13e80888216ed7daced80b4847f20e9a"></a>GPIO_FUNC_HSTX&#160;</td><td class="fielddoc"><p >Select HSTX as GPIO pin function. </p>
692 </td></tr>
693 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752aac69243b6fe41fc1206ac4e45342456e" name="gga6bad9a66b67d755a63a2bb8843932752aac69243b6fe41fc1206ac4e45342456e"></a>GPIO_FUNC_SPI&#160;</td><td class="fielddoc"><p >Select SPI as GPIO pin function. </p>
694 </td></tr>
695 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752adf5eba10226d3be43a5d482dbe10e5c0" name="gga6bad9a66b67d755a63a2bb8843932752adf5eba10226d3be43a5d482dbe10e5c0"></a>GPIO_FUNC_UART&#160;</td><td class="fielddoc"><p >Select UART as GPIO pin function. </p>
696 </td></tr>
697 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752af5897687741f0ee34c88fd9823f1450a" name="gga6bad9a66b67d755a63a2bb8843932752af5897687741f0ee34c88fd9823f1450a"></a>GPIO_FUNC_I2C&#160;</td><td class="fielddoc"><p >Select I2C as GPIO pin function. </p>
698 </td></tr>
699 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a2c6da3c6851ba4404a812719260b31d2" name="gga6bad9a66b67d755a63a2bb8843932752a2c6da3c6851ba4404a812719260b31d2"></a>GPIO_FUNC_PWM&#160;</td><td class="fielddoc"><p >Select PWM as GPIO pin function. </p>
700 </td></tr>
701 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a8632dba349073657d356b82142031e9e" name="gga6bad9a66b67d755a63a2bb8843932752a8632dba349073657d356b82142031e9e"></a>GPIO_FUNC_SIO&#160;</td><td class="fielddoc"><p >Select SIO as GPIO pin function. </p>
702 </td></tr>
703 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752adfd646bbf58bfa281b09fae24e7b46dc" name="gga6bad9a66b67d755a63a2bb8843932752adfd646bbf58bfa281b09fae24e7b46dc"></a>GPIO_FUNC_PIO0&#160;</td><td class="fielddoc"><p >Select PIO0 as GPIO pin function. </p>
704 </td></tr>
705 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a2c7092a5c1084c082f1303f251fd65d3" name="gga6bad9a66b67d755a63a2bb8843932752a2c7092a5c1084c082f1303f251fd65d3"></a>GPIO_FUNC_PIO1&#160;</td><td class="fielddoc"><p >Select PIO1 as GPIO pin function. </p>
706 </td></tr>
707 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a1613433470b69edd7474db25572e394b" name="gga6bad9a66b67d755a63a2bb8843932752a1613433470b69edd7474db25572e394b"></a>GPIO_FUNC_PIO2&#160;</td><td class="fielddoc"><p >Select PIO2 as GPIO pin function. </p>
708 </td></tr>
709 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a540371b0462ae34e563752d1e2a5ef52" name="gga6bad9a66b67d755a63a2bb8843932752a540371b0462ae34e563752d1e2a5ef52"></a>GPIO_FUNC_GPCK&#160;</td><td class="fielddoc"><p >Select GPCK as GPIO pin function. </p>
710 </td></tr>
711 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752ad62e8c45ea28dfcaf4c372e641dca2b7" name="gga6bad9a66b67d755a63a2bb8843932752ad62e8c45ea28dfcaf4c372e641dca2b7"></a>GPIO_FUNC_XIP_CS1&#160;</td><td class="fielddoc"><p >Select XIP CS1 as GPIO pin function. </p>
712 </td></tr>
713 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752ac5f7999f8c18aac38594b0ec7807442f" name="gga6bad9a66b67d755a63a2bb8843932752ac5f7999f8c18aac38594b0ec7807442f"></a>GPIO_FUNC_CORESIGHT_TRACE&#160;</td><td class="fielddoc"><p >Select CORESIGHT TRACE as GPIO pin function. </p>
714 </td></tr>
715 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a56811bb79676a7a4f865696a25b3a608" name="gga6bad9a66b67d755a63a2bb8843932752a56811bb79676a7a4f865696a25b3a608"></a>GPIO_FUNC_USB&#160;</td><td class="fielddoc"><p >Select USB as GPIO pin function. </p>
716 </td></tr>
717 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752afe3341a742c05438fd67c27ff1bd484d" name="gga6bad9a66b67d755a63a2bb8843932752afe3341a742c05438fd67c27ff1bd484d"></a>GPIO_FUNC_UART_AUX&#160;</td><td class="fielddoc"><p >Select UART_AUX as GPIO pin function. </p>
718 </td></tr>
719 <tr><td class="fieldname"><a id="gga6bad9a66b67d755a63a2bb8843932752a3ec115257e1f1747abf60284362c5a04" name="gga6bad9a66b67d755a63a2bb8843932752a3ec115257e1f1747abf60284362c5a04"></a>GPIO_FUNC_NULL&#160;</td><td class="fielddoc"><p >Select NULL as GPIO pin function. </p>
720 </td></tr>
721 </table>
722
723 </div>
724 </div>
725 <a id="ga6347e27da3ab34f1ea65b5ae16ab724f" name="ga6347e27da3ab34f1ea65b5ae16ab724f"></a>
726 <h2 class="memtitle"><span class="permalink"><a href="#ga6347e27da3ab34f1ea65b5ae16ab724f">&#9670;&nbsp;</a></span>gpio_irq_level</h2>
727
728 <div class="memitem">
729 <div class="memproto">
730       <table class="memname">
731         <tr>
732           <td class="memname">enum <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a></td>
733         </tr>
734       </table>
735 </div><div class="memdoc">
736
737 <p>GPIO Interrupt level definitions (GPIO events) </p>
738 <p >GPIO Interrupt levels</p>
739 <p >An interrupt can be generated for every GPIO pin in 4 scenarios:</p>
740 <ul>
741 <li>Level High: the GPIO pin is a logical 1</li>
742 <li>Level Low: the GPIO pin is a logical 0</li>
743 <li>Edge High: the GPIO has transitioned from a logical 0 to a logical 1</li>
744 <li>Edge Low: the GPIO has transitioned from a logical 1 to a logical 0</li>
745 </ul>
746 <p >The level interrupts are not latched. This means that if the pin is a logical 1 and the level high interrupt is active, it will become inactive as soon as the pin changes to a logical 0. The edge interrupts are stored in the INTR register and can be cleared by writing to the INTR register. </p>
747 <table class="fieldtable">
748 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136" name="gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136"></a>GPIO_IRQ_LEVEL_LOW&#160;</td><td class="fielddoc"><p >IRQ when the GPIO pin is a logical 1. </p>
749 </td></tr>
750 <tr><td class="fieldname"><a id="gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de" name="gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de"></a>GPIO_IRQ_LEVEL_HIGH&#160;</td><td class="fielddoc"><p >IRQ when the GPIO pin is a logical 0. </p>
751 </td></tr>
752 <tr><td class="fieldname"><a id="gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59" name="gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59"></a>GPIO_IRQ_EDGE_FALL&#160;</td><td class="fielddoc"><p >IRQ when the GPIO has transitioned from a logical 0 to a logical 1. </p>
753 </td></tr>
754 <tr><td class="fieldname"><a id="gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e" name="gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e"></a>GPIO_IRQ_EDGE_RISE&#160;</td><td class="fielddoc"><p >IRQ when the GPIO has transitioned from a logical 1 to a logical 0. </p>
755 </td></tr>
756 </table>
757
758 </div>
759 </div>
760 <a id="ga72c250c9393043ea5beb56092d26e229" name="ga72c250c9393043ea5beb56092d26e229"></a>
761 <h2 class="memtitle"><span class="permalink"><a href="#ga72c250c9393043ea5beb56092d26e229">&#9670;&nbsp;</a></span>gpio_slew_rate</h2>
762
763 <div class="memitem">
764 <div class="memproto">
765       <table class="memname">
766         <tr>
767           <td class="memname">enum <a class="el" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a></td>
768         </tr>
769       </table>
770 </div><div class="memdoc">
771
772 <p>Slew rate limiting levels for GPIO outputs. </p>
773 <p >Slew rate limiting increases the minimum rise/fall time when a GPIO output is lightly loaded, which can help to reduce electromagnetic emissions. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8" title="Set slew rate for a specified GPIO.">gpio_set_slew_rate</a> </dd></dl>
774 <table class="fieldtable">
775 <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634" name="gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634"></a>GPIO_SLEW_RATE_SLOW&#160;</td><td class="fielddoc"><p >Slew rate limiting enabled. </p>
776 </td></tr>
777 <tr><td class="fieldname"><a id="gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade" name="gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade"></a>GPIO_SLEW_RATE_FAST&#160;</td><td class="fielddoc"><p >Slew rate limiting disabled. </p>
778 </td></tr>
779 </table>
780
781 </div>
782 </div>
783 <h2 class="groupheader">Function Documentation</h2>
784 <a id="ga091c148a5cfaf2b55e716b6effef6360" name="ga091c148a5cfaf2b55e716b6effef6360"></a>
785 <h2 class="memtitle"><span class="permalink"><a href="#ga091c148a5cfaf2b55e716b6effef6360">&#9670;&nbsp;</a></span>gpio_acknowledge_irq()</h2>
786
787 <div class="memitem">
788 <div class="memproto">
789       <table class="memname">
790         <tr>
791           <td class="memname">void gpio_acknowledge_irq </td>
792           <td>(</td>
793           <td class="paramtype">uint&#160;</td>
794           <td class="paramname"><em>gpio</em>, </td>
795         </tr>
796         <tr>
797           <td class="paramkey"></td>
798           <td></td>
799           <td class="paramtype">uint32_t&#160;</td>
800           <td class="paramname"><em>event_mask</em>&#160;</td>
801         </tr>
802         <tr>
803           <td></td>
804           <td>)</td>
805           <td></td><td></td>
806         </tr>
807       </table>
808 </div><div class="memdoc">
809
810 <p>Acknowledge a GPIO interrupt for the specified events on the calling core. </p>
811 <dl class="section note"><dt>Note</dt><dd>This may be called with a mask of any of valid bits specified in <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a>, however it has no effect on <em>level</em> sensitive interrupts which remain pending while the GPIO is at the specified level. When handling <em>level</em> sensitive interrupts, you should generally disable the interrupt (see <a class="el" href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a>) and then set it up again later once the GPIO level has changed (or to catch the opposite level).</dd></dl>
812 <dl class="params"><dt>Parameters</dt><dd>
813   <table class="params">
814     <tr><td class="paramname">gpio</td><td>GPIO number</td></tr>
815   </table>
816   </dd>
817 </dl>
818 <dl class="section note"><dt>Note</dt><dd>For callbacks set with <a class="el" href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a>, or <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>, this function is called automatically. </dd></dl>
819 <dl class="params"><dt>Parameters</dt><dd>
820   <table class="params">
821     <tr><td class="paramname">event_mask</td><td>Bitmask of events to clear. See <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> for details. </td></tr>
822   </table>
823   </dd>
824 </dl>
825
826 </div>
827 </div>
828 <a id="ga2e78fcd487a3a2e173322c6502fe9419" name="ga2e78fcd487a3a2e173322c6502fe9419"></a>
829 <h2 class="memtitle"><span class="permalink"><a href="#ga2e78fcd487a3a2e173322c6502fe9419">&#9670;&nbsp;</a></span>gpio_add_raw_irq_handler()</h2>
830
831 <div class="memitem">
832 <div class="memproto">
833 <table class="mlabels">
834   <tr>
835   <td class="mlabels-left">
836       <table class="memname">
837         <tr>
838           <td class="memname">static void gpio_add_raw_irq_handler </td>
839           <td>(</td>
840           <td class="paramtype">uint&#160;</td>
841           <td class="paramname"><em>gpio</em>, </td>
842         </tr>
843         <tr>
844           <td class="paramkey"></td>
845           <td></td>
846           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
847           <td class="paramname"><em>handler</em>&#160;</td>
848         </tr>
849         <tr>
850           <td></td>
851           <td>)</td>
852           <td></td><td></td>
853         </tr>
854       </table>
855   </td>
856   <td class="mlabels-right">
857 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
858   </tr>
859 </table>
860 </div><div class="memdoc">
861
862 <p>Adds a raw GPIO IRQ handler for a specific GPIO on the current core. </p>
863 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default event callback.</p>
864 <p >This method adds such a callback, and disables the "default" callback for the specified GPIO.</p>
865 <dl class="section note"><dt>Note</dt><dd>Multiple raw handlers should not be added for the same GPIO, and this method will assert if you attempt to. Internally, this function calls <a class="el" href="group__hardware__irq.html#gaf02f8599896c66f4579c845a96b2126e">irq_add_shared_handler</a>, which will assert if the maximum number of shared handlers (configurable via PICO_MAX_IRQ_SHARED_HANDLERS) would be exceeded.</dd></dl>
866 <p>A raw handler should check for whichever GPIOs and events it handles, and acknowledge them itself; it might look something like:</p>
867 <div class="fragment"><div class="line"><span class="keywordtype">void</span> my_irq_handler(<span class="keywordtype">void</span>) {</div>
868 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num) &amp; my_gpio_event_mask) {</div>
869 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num, my_gpio_event_mask);</div>
870 <div class="line">      <span class="comment">// handle the IRQ</span></div>
871 <div class="line">    }</div>
872 <div class="line">}</div>
873 <div class="ttc" id="agroup__hardware__gpio_html_ga091c148a5cfaf2b55e716b6effef6360"><div class="ttname"><a href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a></div><div class="ttdeci">void gpio_acknowledge_irq(uint gpio, uint32_t events)</div><div class="ttdoc">Acknowledge a GPIO interrupt for the specified events on the calling core.</div><div class="ttdef"><b>Definition:</b> gpio.c:259</div></div>
874 <div class="ttc" id="agroup__hardware__gpio_html_gaf2d1208ba7e3b02b23e7385350182583"><div class="ttname"><a href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a></div><div class="ttdeci">static uint32_t gpio_get_irq_event_mask(uint gpio)</div><div class="ttdoc">Return the current interrupt status (pending events) for the given GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:546</div></div>
875 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
876   <table class="params">
877     <tr><td class="paramname">gpio</td><td>the GPIO number that will no longer be passed to the default callback for this core </td></tr>
878     <tr><td class="paramname">handler</td><td>the handler to add to the list of GPIO IRQ handlers for this core </td></tr>
879   </table>
880   </dd>
881 </dl>
882
883 </div>
884 </div>
885 <a id="gaf745f0bcdaf049d2e060aa8971352a55" name="gaf745f0bcdaf049d2e060aa8971352a55"></a>
886 <h2 class="memtitle"><span class="permalink"><a href="#gaf745f0bcdaf049d2e060aa8971352a55">&#9670;&nbsp;</a></span>gpio_add_raw_irq_handler_masked()</h2>
887
888 <div class="memitem">
889 <div class="memproto">
890       <table class="memname">
891         <tr>
892           <td class="memname">void gpio_add_raw_irq_handler_masked </td>
893           <td>(</td>
894           <td class="paramtype">uint32_t&#160;</td>
895           <td class="paramname"><em>gpio_mask</em>, </td>
896         </tr>
897         <tr>
898           <td class="paramkey"></td>
899           <td></td>
900           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
901           <td class="paramname"><em>handler</em>&#160;</td>
902         </tr>
903         <tr>
904           <td></td>
905           <td>)</td>
906           <td></td><td></td>
907         </tr>
908       </table>
909 </div><div class="memdoc">
910
911 <p>Adds a raw GPIO IRQ handler for the specified GPIOs on the current core. </p>
912 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default event callback.</p>
913 <p >This method adds such a callback, and disables the "default" callback for the specified GPIOs.</p>
914 <dl class="section note"><dt>Note</dt><dd>Multiple raw handlers should not be added for the same GPIOs, and this method will assert if you attempt to. Internally, this function calls <a class="el" href="group__hardware__irq.html#gaf02f8599896c66f4579c845a96b2126e">irq_add_shared_handler</a>, which will assert if the maximum number of shared handlers (configurable via PICO_MAX_IRQ_SHARED_HANDLERS) would be exceeded.</dd></dl>
915 <p>A raw handler should check for whichever GPIOs and events it handles, and acknowledge them itself; it might look something like:</p>
916 <div class="fragment"><div class="line"><span class="keywordtype">void</span> my_irq_handler(<span class="keywordtype">void</span>) {</div>
917 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num) &amp; my_gpio_event_mask) {</div>
918 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num, my_gpio_event_mask);</div>
919 <div class="line">      <span class="comment">// handle the IRQ</span></div>
920 <div class="line">    }</div>
921 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num2) &amp; my_gpio_event_mask2) {</div>
922 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num2, my_gpio_event_mask2);</div>
923 <div class="line">      <span class="comment">// handle the IRQ</span></div>
924 <div class="line">    }</div>
925 <div class="line">}</div>
926 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
927   <table class="params">
928     <tr><td class="paramname">gpio_mask</td><td>a bit mask of the GPIO numbers that will no longer be passed to the default callback for this core </td></tr>
929     <tr><td class="paramname">handler</td><td>the handler to add to the list of GPIO IRQ handlers for this core </td></tr>
930   </table>
931   </dd>
932 </dl>
933
934 </div>
935 </div>
936 <a id="ga24e5e9eed83f48ffe77f732b800f1405" name="ga24e5e9eed83f48ffe77f732b800f1405"></a>
937 <h2 class="memtitle"><span class="permalink"><a href="#ga24e5e9eed83f48ffe77f732b800f1405">&#9670;&nbsp;</a></span>gpio_add_raw_irq_handler_masked64()</h2>
938
939 <div class="memitem">
940 <div class="memproto">
941       <table class="memname">
942         <tr>
943           <td class="memname">void gpio_add_raw_irq_handler_masked64 </td>
944           <td>(</td>
945           <td class="paramtype">uint64_t&#160;</td>
946           <td class="paramname"><em>gpio_mask</em>, </td>
947         </tr>
948         <tr>
949           <td class="paramkey"></td>
950           <td></td>
951           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
952           <td class="paramname"><em>handler</em>&#160;</td>
953         </tr>
954         <tr>
955           <td></td>
956           <td>)</td>
957           <td></td><td></td>
958         </tr>
959       </table>
960 </div><div class="memdoc">
961
962 <p>Adds a raw GPIO IRQ handler for the specified GPIOs on the current core. </p>
963 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default event callback.</p>
964 <p >This method adds such a callback, and disables the "default" callback for the specified GPIOs.</p>
965 <dl class="section note"><dt>Note</dt><dd>Multiple raw handlers should not be added for the same GPIOs, and this method will assert if you attempt to. Internally, this function calls <a class="el" href="group__hardware__irq.html#gaf02f8599896c66f4579c845a96b2126e">irq_add_shared_handler</a>, which will assert if the maximum number of shared handlers (configurable via PICO_MAX_IRQ_SHARED_HANDLERS) would be exceeded.</dd></dl>
966 <p>A raw handler should check for whichever GPIOs and events it handles, and acknowledge them itself; it might look something like:</p>
967 <div class="fragment"><div class="line"><span class="keywordtype">void</span> my_irq_handler(<span class="keywordtype">void</span>) {</div>
968 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num) &amp; my_gpio_event_mask) {</div>
969 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num, my_gpio_event_mask);</div>
970 <div class="line">      <span class="comment">// handle the IRQ</span></div>
971 <div class="line">    }</div>
972 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num2) &amp; my_gpio_event_mask2) {</div>
973 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num2, my_gpio_event_mask2);</div>
974 <div class="line">      <span class="comment">// handle the IRQ</span></div>
975 <div class="line">    }</div>
976 <div class="line">}</div>
977 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
978   <table class="params">
979     <tr><td class="paramname">gpio_mask</td><td>a 64 bit mask of the GPIO numbers that will no longer be passed to the default callback for this core </td></tr>
980     <tr><td class="paramname">handler</td><td>the handler to add to the list of GPIO IRQ handlers for this core </td></tr>
981   </table>
982   </dd>
983 </dl>
984
985 </div>
986 </div>
987 <a id="ga07c4de2660686b9158a5b0526ccbb446" name="ga07c4de2660686b9158a5b0526ccbb446"></a>
988 <h2 class="memtitle"><span class="permalink"><a href="#ga07c4de2660686b9158a5b0526ccbb446">&#9670;&nbsp;</a></span>gpio_add_raw_irq_handler_with_order_priority()</h2>
989
990 <div class="memitem">
991 <div class="memproto">
992 <table class="mlabels">
993   <tr>
994   <td class="mlabels-left">
995       <table class="memname">
996         <tr>
997           <td class="memname">static void gpio_add_raw_irq_handler_with_order_priority </td>
998           <td>(</td>
999           <td class="paramtype">uint&#160;</td>
1000           <td class="paramname"><em>gpio</em>, </td>
1001         </tr>
1002         <tr>
1003           <td class="paramkey"></td>
1004           <td></td>
1005           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
1006           <td class="paramname"><em>handler</em>, </td>
1007         </tr>
1008         <tr>
1009           <td class="paramkey"></td>
1010           <td></td>
1011           <td class="paramtype">uint8_t&#160;</td>
1012           <td class="paramname"><em>order_priority</em>&#160;</td>
1013         </tr>
1014         <tr>
1015           <td></td>
1016           <td>)</td>
1017           <td></td><td></td>
1018         </tr>
1019       </table>
1020   </td>
1021   <td class="mlabels-right">
1022 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1023   </tr>
1024 </table>
1025 </div><div class="memdoc">
1026
1027 <p>Adds a raw GPIO IRQ handler for a specific GPIO on the current core. </p>
1028 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default callback. The order relative to the default callback can be controlled via the order_priority parameter(the default callback has the priority GPIO_IRQ_CALLBACK_ORDER_PRIORITY which defaults to the lowest priority with the intention of it running last).</p>
1029 <p >This method adds such a callback, and disables the "default" callback for the specified GPIO.</p>
1030 <dl class="section note"><dt>Note</dt><dd>Multiple raw handlers should not be added for the same GPIO, and this method will assert if you attempt to. Internally, this function calls <a class="el" href="group__hardware__irq.html#gaf02f8599896c66f4579c845a96b2126e">irq_add_shared_handler</a>, which will assert if the maximum number of shared handlers (configurable via PICO_MAX_IRQ_SHARED_HANDLERS) would be exceeded.</dd></dl>
1031 <p>A raw handler should check for whichever GPIOs and events it handles, and acknowledge them itself; it might look something like:</p>
1032 <div class="fragment"><div class="line"><span class="keywordtype">void</span> my_irq_handler(<span class="keywordtype">void</span>) {</div>
1033 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num) &amp; my_gpio_event_mask) {</div>
1034 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num, my_gpio_event_mask);</div>
1035 <div class="line">      <span class="comment">// handle the IRQ</span></div>
1036 <div class="line">    }</div>
1037 <div class="line">}</div>
1038 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
1039   <table class="params">
1040     <tr><td class="paramname">gpio</td><td>the GPIO number that will no longer be passed to the default callback for this core </td></tr>
1041     <tr><td class="paramname">handler</td><td>the handler to add to the list of GPIO IRQ handlers for this core </td></tr>
1042     <tr><td class="paramname">order_priority</td><td>the priority order to determine the relative position of the handler in the list of GPIO IRQ handlers for this core. </td></tr>
1043   </table>
1044   </dd>
1045 </dl>
1046
1047 </div>
1048 </div>
1049 <a id="gaf43d2f09003804f535dc118688a9702c" name="gaf43d2f09003804f535dc118688a9702c"></a>
1050 <h2 class="memtitle"><span class="permalink"><a href="#gaf43d2f09003804f535dc118688a9702c">&#9670;&nbsp;</a></span>gpio_add_raw_irq_handler_with_order_priority_masked()</h2>
1051
1052 <div class="memitem">
1053 <div class="memproto">
1054       <table class="memname">
1055         <tr>
1056           <td class="memname">void gpio_add_raw_irq_handler_with_order_priority_masked </td>
1057           <td>(</td>
1058           <td class="paramtype">uint32_t&#160;</td>
1059           <td class="paramname"><em>gpio_mask</em>, </td>
1060         </tr>
1061         <tr>
1062           <td class="paramkey"></td>
1063           <td></td>
1064           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
1065           <td class="paramname"><em>handler</em>, </td>
1066         </tr>
1067         <tr>
1068           <td class="paramkey"></td>
1069           <td></td>
1070           <td class="paramtype">uint8_t&#160;</td>
1071           <td class="paramname"><em>order_priority</em>&#160;</td>
1072         </tr>
1073         <tr>
1074           <td></td>
1075           <td>)</td>
1076           <td></td><td></td>
1077         </tr>
1078       </table>
1079 </div><div class="memdoc">
1080
1081 <p>Adds a raw GPIO IRQ handler for the specified GPIOs on the current core. </p>
1082 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default callback. The order relative to the default callback can be controlled via the order_priority parameter (the default callback has the priority GPIO_IRQ_CALLBACK_ORDER_PRIORITY which defaults to the lowest priority with the intention of it running last).</p>
1083 <p >This method adds such an explicit GPIO IRQ handler, and disables the "default" callback for the specified GPIOs.</p>
1084 <dl class="section note"><dt>Note</dt><dd>Multiple raw handlers should not be added for the same GPIOs, and this method will assert if you attempt to. Internally, this function calls <a class="el" href="group__hardware__irq.html#gaf02f8599896c66f4579c845a96b2126e">irq_add_shared_handler</a>, which will assert if the maximum number of shared handlers (configurable via PICO_MAX_IRQ_SHARED_HANDLERS) would be exceeded.</dd></dl>
1085 <p>A raw handler should check for whichever GPIOs and events it handles, and acknowledge them itself; it might look something like:</p>
1086 <div class="fragment"><div class="line"><span class="keywordtype">void</span> my_irq_handler(<span class="keywordtype">void</span>) {</div>
1087 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num) &amp; my_gpio_event_mask) {</div>
1088 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num, my_gpio_event_mask);</div>
1089 <div class="line">      <span class="comment">// handle the IRQ</span></div>
1090 <div class="line">    }</div>
1091 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num2) &amp; my_gpio_event_mask2) {</div>
1092 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num2, my_gpio_event_mask2);</div>
1093 <div class="line">      <span class="comment">// handle the IRQ</span></div>
1094 <div class="line">    }</div>
1095 <div class="line">}</div>
1096 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
1097   <table class="params">
1098     <tr><td class="paramname">gpio_mask</td><td>a bit mask of the GPIO numbers that will no longer be passed to the default callback for this core </td></tr>
1099     <tr><td class="paramname">handler</td><td>the handler to add to the list of GPIO IRQ handlers for this core </td></tr>
1100     <tr><td class="paramname">order_priority</td><td>the priority order to determine the relative position of the handler in the list of GPIO IRQ handlers for this core. </td></tr>
1101   </table>
1102   </dd>
1103 </dl>
1104
1105 </div>
1106 </div>
1107 <a id="ga78f8d7c7c8fb66794f7c269311f145ae" name="ga78f8d7c7c8fb66794f7c269311f145ae"></a>
1108 <h2 class="memtitle"><span class="permalink"><a href="#ga78f8d7c7c8fb66794f7c269311f145ae">&#9670;&nbsp;</a></span>gpio_add_raw_irq_handler_with_order_priority_masked64()</h2>
1109
1110 <div class="memitem">
1111 <div class="memproto">
1112       <table class="memname">
1113         <tr>
1114           <td class="memname">void gpio_add_raw_irq_handler_with_order_priority_masked64 </td>
1115           <td>(</td>
1116           <td class="paramtype">uint64_t&#160;</td>
1117           <td class="paramname"><em>gpio_mask</em>, </td>
1118         </tr>
1119         <tr>
1120           <td class="paramkey"></td>
1121           <td></td>
1122           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
1123           <td class="paramname"><em>handler</em>, </td>
1124         </tr>
1125         <tr>
1126           <td class="paramkey"></td>
1127           <td></td>
1128           <td class="paramtype">uint8_t&#160;</td>
1129           <td class="paramname"><em>order_priority</em>&#160;</td>
1130         </tr>
1131         <tr>
1132           <td></td>
1133           <td>)</td>
1134           <td></td><td></td>
1135         </tr>
1136       </table>
1137 </div><div class="memdoc">
1138
1139 <p>Adds a raw GPIO IRQ handler for the specified GPIOs on the current core. </p>
1140 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default callback. The order relative to the default callback can be controlled via the order_priority parameter (the default callback has the priority GPIO_IRQ_CALLBACK_ORDER_PRIORITY which defaults to the lowest priority with the intention of it running last).</p>
1141 <p >This method adds such an explicit GPIO IRQ handler, and disables the "default" callback for the specified GPIOs.</p>
1142 <dl class="section note"><dt>Note</dt><dd>Multiple raw handlers should not be added for the same GPIOs, and this method will assert if you attempt to. Internally, this function calls <a class="el" href="group__hardware__irq.html#gaf02f8599896c66f4579c845a96b2126e">irq_add_shared_handler</a>, which will assert if the maximum number of shared handlers (configurable via PICO_MAX_IRQ_SHARED_HANDLERS) would be exceeded.</dd></dl>
1143 <p>A raw handler should check for whichever GPIOs and events it handles, and acknowledge them itself; it might look something like:</p>
1144 <div class="fragment"><div class="line"><span class="keywordtype">void</span> my_irq_handler(<span class="keywordtype">void</span>) {</div>
1145 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num) &amp; my_gpio_event_mask) {</div>
1146 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num, my_gpio_event_mask);</div>
1147 <div class="line">      <span class="comment">// handle the IRQ</span></div>
1148 <div class="line">    }</div>
1149 <div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(my_gpio_num2) &amp; my_gpio_event_mask2) {</div>
1150 <div class="line">       <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(my_gpio_num2, my_gpio_event_mask2);</div>
1151 <div class="line">      <span class="comment">// handle the IRQ</span></div>
1152 <div class="line">    }</div>
1153 <div class="line">}</div>
1154 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
1155   <table class="params">
1156     <tr><td class="paramname">gpio_mask</td><td>a bit mask of the GPIO numbers that will no longer be passed to the default callback for this core </td></tr>
1157     <tr><td class="paramname">handler</td><td>the handler to add to the list of GPIO IRQ handlers for this core </td></tr>
1158     <tr><td class="paramname">order_priority</td><td>the priority order to determine the relative position of the handler in the list of GPIO IRQ handlers for this core. </td></tr>
1159   </table>
1160   </dd>
1161 </dl>
1162
1163 </div>
1164 </div>
1165 <a id="ga6aca495d644a6ae66050a99ef44defbe" name="ga6aca495d644a6ae66050a99ef44defbe"></a>
1166 <h2 class="memtitle"><span class="permalink"><a href="#ga6aca495d644a6ae66050a99ef44defbe">&#9670;&nbsp;</a></span>gpio_clr_mask()</h2>
1167
1168 <div class="memitem">
1169 <div class="memproto">
1170 <table class="mlabels">
1171   <tr>
1172   <td class="mlabels-left">
1173       <table class="memname">
1174         <tr>
1175           <td class="memname">static void gpio_clr_mask </td>
1176           <td>(</td>
1177           <td class="paramtype">uint32_t&#160;</td>
1178           <td class="paramname"><em>mask</em></td><td>)</td>
1179           <td></td>
1180         </tr>
1181       </table>
1182   </td>
1183   <td class="mlabels-right">
1184 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1185   </tr>
1186 </table>
1187 </div><div class="memdoc">
1188
1189 <p>Drive low every GPIO appearing in mask. </p>
1190 <dl class="params"><dt>Parameters</dt><dd>
1191   <table class="params">
1192     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to clear </td></tr>
1193   </table>
1194   </dd>
1195 </dl>
1196
1197 </div>
1198 </div>
1199 <a id="gab37bb6b15065720e3efc9c39b3207a16" name="gab37bb6b15065720e3efc9c39b3207a16"></a>
1200 <h2 class="memtitle"><span class="permalink"><a href="#gab37bb6b15065720e3efc9c39b3207a16">&#9670;&nbsp;</a></span>gpio_clr_mask64()</h2>
1201
1202 <div class="memitem">
1203 <div class="memproto">
1204 <table class="mlabels">
1205   <tr>
1206   <td class="mlabels-left">
1207       <table class="memname">
1208         <tr>
1209           <td class="memname">static void gpio_clr_mask64 </td>
1210           <td>(</td>
1211           <td class="paramtype">uint64_t&#160;</td>
1212           <td class="paramname"><em>mask</em></td><td>)</td>
1213           <td></td>
1214         </tr>
1215       </table>
1216   </td>
1217   <td class="mlabels-right">
1218 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1219   </tr>
1220 </table>
1221 </div><div class="memdoc">
1222
1223 <p>Drive low every GPIO appearing in mask. </p>
1224 <dl class="params"><dt>Parameters</dt><dd>
1225   <table class="params">
1226     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to clear </td></tr>
1227   </table>
1228   </dd>
1229 </dl>
1230
1231 </div>
1232 </div>
1233 <a id="ga964463f96737c6d1127188b8c0bc44b8" name="ga964463f96737c6d1127188b8c0bc44b8"></a>
1234 <h2 class="memtitle"><span class="permalink"><a href="#ga964463f96737c6d1127188b8c0bc44b8">&#9670;&nbsp;</a></span>gpio_clr_mask_n()</h2>
1235
1236 <div class="memitem">
1237 <div class="memproto">
1238 <table class="mlabels">
1239   <tr>
1240   <td class="mlabels-left">
1241       <table class="memname">
1242         <tr>
1243           <td class="memname">static void gpio_clr_mask_n </td>
1244           <td>(</td>
1245           <td class="paramtype">uint&#160;</td>
1246           <td class="paramname"><em>n</em>, </td>
1247         </tr>
1248         <tr>
1249           <td class="paramkey"></td>
1250           <td></td>
1251           <td class="paramtype">uint32_t&#160;</td>
1252           <td class="paramname"><em>mask</em>&#160;</td>
1253         </tr>
1254         <tr>
1255           <td></td>
1256           <td>)</td>
1257           <td></td><td></td>
1258         </tr>
1259       </table>
1260   </td>
1261   <td class="mlabels-right">
1262 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1263   </tr>
1264 </table>
1265 </div><div class="memdoc">
1266
1267 <p>Drive low every GPIO appearing in mask. </p>
1268 <dl class="params"><dt>Parameters</dt><dd>
1269   <table class="params">
1270     <tr><td class="paramname">n</td><td>the base GPIO index of the mask to update. n == 0 means 0-&gt;31, n == 1 mean 32-&gt;63 etc. </td></tr>
1271     <tr><td class="paramname">mask</td><td>Bitmask of 32 GPIO values to clear </td></tr>
1272   </table>
1273   </dd>
1274 </dl>
1275
1276 </div>
1277 </div>
1278 <a id="ga4df18d737955c17a65c5a94412826674" name="ga4df18d737955c17a65c5a94412826674"></a>
1279 <h2 class="memtitle"><span class="permalink"><a href="#ga4df18d737955c17a65c5a94412826674">&#9670;&nbsp;</a></span>gpio_deinit()</h2>
1280
1281 <div class="memitem">
1282 <div class="memproto">
1283       <table class="memname">
1284         <tr>
1285           <td class="memname">void gpio_deinit </td>
1286           <td>(</td>
1287           <td class="paramtype">uint&#160;</td>
1288           <td class="paramname"><em>gpio</em></td><td>)</td>
1289           <td></td>
1290         </tr>
1291       </table>
1292 </div><div class="memdoc">
1293
1294 <p>Resets a GPIO back to the NULL function, i.e. disables it. </p>
1295 <dl class="params"><dt>Parameters</dt><dd>
1296   <table class="params">
1297     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1298   </table>
1299   </dd>
1300 </dl>
1301
1302 </div>
1303 </div>
1304 <a id="gae57a625b7e0bcac6d596f35864ffc792" name="gae57a625b7e0bcac6d596f35864ffc792"></a>
1305 <h2 class="memtitle"><span class="permalink"><a href="#gae57a625b7e0bcac6d596f35864ffc792">&#9670;&nbsp;</a></span>gpio_disable_pulls()</h2>
1306
1307 <div class="memitem">
1308 <div class="memproto">
1309 <table class="mlabels">
1310   <tr>
1311   <td class="mlabels-left">
1312       <table class="memname">
1313         <tr>
1314           <td class="memname">static void gpio_disable_pulls </td>
1315           <td>(</td>
1316           <td class="paramtype">uint&#160;</td>
1317           <td class="paramname"><em>gpio</em></td><td>)</td>
1318           <td></td>
1319         </tr>
1320       </table>
1321   </td>
1322   <td class="mlabels-right">
1323 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1324   </tr>
1325 </table>
1326 </div><div class="memdoc">
1327
1328 <p>Disable pulls on specified GPIO. </p>
1329 <dl class="params"><dt>Parameters</dt><dd>
1330   <table class="params">
1331     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1332   </table>
1333   </dd>
1334 </dl>
1335
1336 </div>
1337 </div>
1338 <a id="gaf38c0b39fba06d1a49d1be56ef548d73" name="gaf38c0b39fba06d1a49d1be56ef548d73"></a>
1339 <h2 class="memtitle"><span class="permalink"><a href="#gaf38c0b39fba06d1a49d1be56ef548d73">&#9670;&nbsp;</a></span>gpio_get()</h2>
1340
1341 <div class="memitem">
1342 <div class="memproto">
1343 <table class="mlabels">
1344   <tr>
1345   <td class="mlabels-left">
1346       <table class="memname">
1347         <tr>
1348           <td class="memname">static bool gpio_get </td>
1349           <td>(</td>
1350           <td class="paramtype">uint&#160;</td>
1351           <td class="paramname"><em>gpio</em></td><td>)</td>
1352           <td></td>
1353         </tr>
1354       </table>
1355   </td>
1356   <td class="mlabels-right">
1357 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1358   </tr>
1359 </table>
1360 </div><div class="memdoc">
1361
1362 <p>Get state of a single specified GPIO. </p>
1363 <dl class="params"><dt>Parameters</dt><dd>
1364   <table class="params">
1365     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1366   </table>
1367   </dd>
1368 </dl>
1369 <dl class="section return"><dt>Returns</dt><dd>Current state of the GPIO. 0 for low, non-zero for high </dd></dl>
1370
1371 </div>
1372 </div>
1373 <a id="gae895be2d3c5af5df460150eafe7858a4" name="gae895be2d3c5af5df460150eafe7858a4"></a>
1374 <h2 class="memtitle"><span class="permalink"><a href="#gae895be2d3c5af5df460150eafe7858a4">&#9670;&nbsp;</a></span>gpio_get_all()</h2>
1375
1376 <div class="memitem">
1377 <div class="memproto">
1378 <table class="mlabels">
1379   <tr>
1380   <td class="mlabels-left">
1381       <table class="memname">
1382         <tr>
1383           <td class="memname">static uint32_t gpio_get_all </td>
1384           <td>(</td>
1385           <td class="paramtype">void&#160;</td>
1386           <td class="paramname"></td><td>)</td>
1387           <td></td>
1388         </tr>
1389       </table>
1390   </td>
1391   <td class="mlabels-right">
1392 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1393   </tr>
1394 </table>
1395 </div><div class="memdoc">
1396
1397 <p>Get raw value of all GPIOs. </p>
1398 <dl class="section return"><dt>Returns</dt><dd>Bitmask of raw GPIO values </dd></dl>
1399
1400 </div>
1401 </div>
1402 <a id="gaa4c504fbf6c76632e1d11e507a3861e9" name="gaa4c504fbf6c76632e1d11e507a3861e9"></a>
1403 <h2 class="memtitle"><span class="permalink"><a href="#gaa4c504fbf6c76632e1d11e507a3861e9">&#9670;&nbsp;</a></span>gpio_get_all64()</h2>
1404
1405 <div class="memitem">
1406 <div class="memproto">
1407 <table class="mlabels">
1408   <tr>
1409   <td class="mlabels-left">
1410       <table class="memname">
1411         <tr>
1412           <td class="memname">static uint64_t gpio_get_all64 </td>
1413           <td>(</td>
1414           <td class="paramtype">void&#160;</td>
1415           <td class="paramname"></td><td>)</td>
1416           <td></td>
1417         </tr>
1418       </table>
1419   </td>
1420   <td class="mlabels-right">
1421 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1422   </tr>
1423 </table>
1424 </div><div class="memdoc">
1425
1426 <p>Get raw value of all GPIOs. </p>
1427 <dl class="section return"><dt>Returns</dt><dd>Bitmask of raw GPIO values </dd></dl>
1428
1429 </div>
1430 </div>
1431 <a id="ga2a78dd5d9b2a181794c632aa4881c5ed" name="ga2a78dd5d9b2a181794c632aa4881c5ed"></a>
1432 <h2 class="memtitle"><span class="permalink"><a href="#ga2a78dd5d9b2a181794c632aa4881c5ed">&#9670;&nbsp;</a></span>gpio_get_dir()</h2>
1433
1434 <div class="memitem">
1435 <div class="memproto">
1436 <table class="mlabels">
1437   <tr>
1438   <td class="mlabels-left">
1439       <table class="memname">
1440         <tr>
1441           <td class="memname">static uint gpio_get_dir </td>
1442           <td>(</td>
1443           <td class="paramtype">uint&#160;</td>
1444           <td class="paramname"><em>gpio</em></td><td>)</td>
1445           <td></td>
1446         </tr>
1447       </table>
1448   </td>
1449   <td class="mlabels-right">
1450 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1451   </tr>
1452 </table>
1453 </div><div class="memdoc">
1454
1455 <p>Get a specific GPIO direction. </p>
1456 <dl class="params"><dt>Parameters</dt><dd>
1457   <table class="params">
1458     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1459   </table>
1460   </dd>
1461 </dl>
1462 <dl class="section return"><dt>Returns</dt><dd>1 for out, 0 for in </dd></dl>
1463
1464 </div>
1465 </div>
1466 <a id="ga1378540c24ec318ac7674dac4ec30140" name="ga1378540c24ec318ac7674dac4ec30140"></a>
1467 <h2 class="memtitle"><span class="permalink"><a href="#ga1378540c24ec318ac7674dac4ec30140">&#9670;&nbsp;</a></span>gpio_get_drive_strength()</h2>
1468
1469 <div class="memitem">
1470 <div class="memproto">
1471       <table class="memname">
1472         <tr>
1473           <td class="memname">enum <a class="el" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> gpio_get_drive_strength </td>
1474           <td>(</td>
1475           <td class="paramtype">uint&#160;</td>
1476           <td class="paramname"><em>gpio</em></td><td>)</td>
1477           <td></td>
1478         </tr>
1479       </table>
1480 </div><div class="memdoc">
1481
1482 <p>Determine current drive strength for a specified GPIO. </p>
1483 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca" title="Set drive strength for a specified GPIO.">gpio_set_drive_strength</a> </dd></dl>
1484 <dl class="params"><dt>Parameters</dt><dd>
1485   <table class="params">
1486     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1487   </table>
1488   </dd>
1489 </dl>
1490 <dl class="section return"><dt>Returns</dt><dd>Current drive strength of that GPIO </dd></dl>
1491
1492 </div>
1493 </div>
1494 <a id="ga24dabfcb46dde4daa8938b36df130c31" name="ga24dabfcb46dde4daa8938b36df130c31"></a>
1495 <h2 class="memtitle"><span class="permalink"><a href="#ga24dabfcb46dde4daa8938b36df130c31">&#9670;&nbsp;</a></span>gpio_get_function()</h2>
1496
1497 <div class="memitem">
1498 <div class="memproto">
1499       <table class="memname">
1500         <tr>
1501           <td class="memname"><a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> gpio_get_function </td>
1502           <td>(</td>
1503           <td class="paramtype">uint&#160;</td>
1504           <td class="paramname"><em>gpio</em></td><td>)</td>
1505           <td></td>
1506         </tr>
1507       </table>
1508 </div><div class="memdoc">
1509
1510 <p>Determine current GPIO function. </p>
1511 <dl class="params"><dt>Parameters</dt><dd>
1512   <table class="params">
1513     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1514   </table>
1515   </dd>
1516 </dl>
1517 <dl class="section return"><dt>Returns</dt><dd>Which GPIO function is currently selected from list gpio_function </dd></dl>
1518
1519 </div>
1520 </div>
1521 <a id="gaf2d1208ba7e3b02b23e7385350182583" name="gaf2d1208ba7e3b02b23e7385350182583"></a>
1522 <h2 class="memtitle"><span class="permalink"><a href="#gaf2d1208ba7e3b02b23e7385350182583">&#9670;&nbsp;</a></span>gpio_get_irq_event_mask()</h2>
1523
1524 <div class="memitem">
1525 <div class="memproto">
1526 <table class="mlabels">
1527   <tr>
1528   <td class="mlabels-left">
1529       <table class="memname">
1530         <tr>
1531           <td class="memname">static uint32_t gpio_get_irq_event_mask </td>
1532           <td>(</td>
1533           <td class="paramtype">uint&#160;</td>
1534           <td class="paramname"><em>gpio</em></td><td>)</td>
1535           <td></td>
1536         </tr>
1537       </table>
1538   </td>
1539   <td class="mlabels-right">
1540 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1541   </tr>
1542 </table>
1543 </div><div class="memdoc">
1544
1545 <p>Return the current interrupt status (pending events) for the given GPIO. </p>
1546 <dl class="params"><dt>Parameters</dt><dd>
1547   <table class="params">
1548     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1549   </table>
1550   </dd>
1551 </dl>
1552 <dl class="section return"><dt>Returns</dt><dd>Bitmask of events that are currently pending for the GPIO. See <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> for details. </dd></dl>
1553 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360" title="Acknowledge a GPIO interrupt for the specified events on the calling core.">gpio_acknowledge_irq</a> </dd></dl>
1554
1555 </div>
1556 </div>
1557 <a id="ga0a818ceaa50e3e2317fbb0856d47eaef" name="ga0a818ceaa50e3e2317fbb0856d47eaef"></a>
1558 <h2 class="memtitle"><span class="permalink"><a href="#ga0a818ceaa50e3e2317fbb0856d47eaef">&#9670;&nbsp;</a></span>gpio_get_out_level()</h2>
1559
1560 <div class="memitem">
1561 <div class="memproto">
1562 <table class="mlabels">
1563   <tr>
1564   <td class="mlabels-left">
1565       <table class="memname">
1566         <tr>
1567           <td class="memname">static bool gpio_get_out_level </td>
1568           <td>(</td>
1569           <td class="paramtype">uint&#160;</td>
1570           <td class="paramname"><em>gpio</em></td><td>)</td>
1571           <td></td>
1572         </tr>
1573       </table>
1574   </td>
1575   <td class="mlabels-right">
1576 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1577   </tr>
1578 </table>
1579 </div><div class="memdoc">
1580
1581 <p>Determine whether a GPIO is currently driven high or low. </p>
1582 <p >This function returns the high/low output level most recently assigned to a GPIO via <a class="el" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab" title="Drive a single GPIO high/low.">gpio_put()</a> or similar. This is the value that is presented outward to the IO muxing, <em>not</em> the input level back from the pad (which can be read using <a class="el" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73" title="Get state of a single specified GPIO.">gpio_get()</a>).</p>
1583 <p >To avoid races, this function must not be used for read-modify-write sequences when driving GPIOs &ndash; instead functions like <a class="el" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab" title="Drive a single GPIO high/low.">gpio_put()</a> should be used to atomically update GPIOs. This accessor is intended for debug use only.</p>
1584 <dl class="params"><dt>Parameters</dt><dd>
1585   <table class="params">
1586     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1587   </table>
1588   </dd>
1589 </dl>
1590 <dl class="section return"><dt>Returns</dt><dd>true if the GPIO output level is high, false if low. </dd></dl>
1591
1592 </div>
1593 </div>
1594 <a id="ga4422d9c09199d199e8fe736b3c29ae49" name="ga4422d9c09199d199e8fe736b3c29ae49"></a>
1595 <h2 class="memtitle"><span class="permalink"><a href="#ga4422d9c09199d199e8fe736b3c29ae49">&#9670;&nbsp;</a></span>gpio_get_slew_rate()</h2>
1596
1597 <div class="memitem">
1598 <div class="memproto">
1599       <table class="memname">
1600         <tr>
1601           <td class="memname">enum <a class="el" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> gpio_get_slew_rate </td>
1602           <td>(</td>
1603           <td class="paramtype">uint&#160;</td>
1604           <td class="paramname"><em>gpio</em></td><td>)</td>
1605           <td></td>
1606         </tr>
1607       </table>
1608 </div><div class="memdoc">
1609
1610 <p>Determine current slew rate for a specified GPIO. </p>
1611 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8" title="Set slew rate for a specified GPIO.">gpio_set_slew_rate</a> </dd></dl>
1612 <dl class="params"><dt>Parameters</dt><dd>
1613   <table class="params">
1614     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1615   </table>
1616   </dd>
1617 </dl>
1618 <dl class="section return"><dt>Returns</dt><dd>Current slew rate of that GPIO </dd></dl>
1619
1620 </div>
1621 </div>
1622 <a id="ga8aa4741d93dc40bc728dbd3e41813ad1" name="ga8aa4741d93dc40bc728dbd3e41813ad1"></a>
1623 <h2 class="memtitle"><span class="permalink"><a href="#ga8aa4741d93dc40bc728dbd3e41813ad1">&#9670;&nbsp;</a></span>gpio_init()</h2>
1624
1625 <div class="memitem">
1626 <div class="memproto">
1627       <table class="memname">
1628         <tr>
1629           <td class="memname">void gpio_init </td>
1630           <td>(</td>
1631           <td class="paramtype">uint&#160;</td>
1632           <td class="paramname"><em>gpio</em></td><td>)</td>
1633           <td></td>
1634         </tr>
1635       </table>
1636 </div><div class="memdoc">
1637
1638 <p>Initialise a GPIO for (enabled I/O and set func to GPIO_FUNC_SIO) </p>
1639 <p >Clear the output enable (i.e. set to input). Clear any output value.</p>
1640 <dl class="params"><dt>Parameters</dt><dd>
1641   <table class="params">
1642     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1643   </table>
1644   </dd>
1645 </dl>
1646
1647 </div>
1648 </div>
1649 <a id="ga2f3ccb15297fecd3792359d9cbbf6ed6" name="ga2f3ccb15297fecd3792359d9cbbf6ed6"></a>
1650 <h2 class="memtitle"><span class="permalink"><a href="#ga2f3ccb15297fecd3792359d9cbbf6ed6">&#9670;&nbsp;</a></span>gpio_init_mask()</h2>
1651
1652 <div class="memitem">
1653 <div class="memproto">
1654       <table class="memname">
1655         <tr>
1656           <td class="memname">void gpio_init_mask </td>
1657           <td>(</td>
1658           <td class="paramtype">uint&#160;</td>
1659           <td class="paramname"><em>gpio_mask</em></td><td>)</td>
1660           <td></td>
1661         </tr>
1662       </table>
1663 </div><div class="memdoc">
1664
1665 <p>Initialise multiple GPIOs (enabled I/O and set func to GPIO_FUNC_SIO) </p>
1666 <p >Clear the output enable (i.e. set to input). Clear any output value.</p>
1667 <dl class="params"><dt>Parameters</dt><dd>
1668   <table class="params">
1669     <tr><td class="paramname">gpio_mask</td><td>Mask with 1 bit per GPIO number to initialize </td></tr>
1670   </table>
1671   </dd>
1672 </dl>
1673
1674 </div>
1675 </div>
1676 <a id="gaa0dbc5c65103d483217a190b72ed26dc" name="gaa0dbc5c65103d483217a190b72ed26dc"></a>
1677 <h2 class="memtitle"><span class="permalink"><a href="#gaa0dbc5c65103d483217a190b72ed26dc">&#9670;&nbsp;</a></span>gpio_is_dir_out()</h2>
1678
1679 <div class="memitem">
1680 <div class="memproto">
1681 <table class="mlabels">
1682   <tr>
1683   <td class="mlabels-left">
1684       <table class="memname">
1685         <tr>
1686           <td class="memname">static bool gpio_is_dir_out </td>
1687           <td>(</td>
1688           <td class="paramtype">uint&#160;</td>
1689           <td class="paramname"><em>gpio</em></td><td>)</td>
1690           <td></td>
1691         </tr>
1692       </table>
1693   </td>
1694   <td class="mlabels-right">
1695 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1696   </tr>
1697 </table>
1698 </div><div class="memdoc">
1699
1700 <p>Check if a specific GPIO direction is OUT. </p>
1701 <dl class="params"><dt>Parameters</dt><dd>
1702   <table class="params">
1703     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1704   </table>
1705   </dd>
1706 </dl>
1707 <dl class="section return"><dt>Returns</dt><dd>true if the direction for the pin is OUT </dd></dl>
1708
1709 </div>
1710 </div>
1711 <a id="gac451f3251c0d0bea97aa535f65974ec8" name="gac451f3251c0d0bea97aa535f65974ec8"></a>
1712 <h2 class="memtitle"><span class="permalink"><a href="#gac451f3251c0d0bea97aa535f65974ec8">&#9670;&nbsp;</a></span>gpio_is_input_hysteresis_enabled()</h2>
1713
1714 <div class="memitem">
1715 <div class="memproto">
1716       <table class="memname">
1717         <tr>
1718           <td class="memname">bool gpio_is_input_hysteresis_enabled </td>
1719           <td>(</td>
1720           <td class="paramtype">uint&#160;</td>
1721           <td class="paramname"><em>gpio</em></td><td>)</td>
1722           <td></td>
1723         </tr>
1724       </table>
1725 </div><div class="memdoc">
1726
1727 <p>Determine whether input hysteresis is enabled on a specified GPIO. </p>
1728 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107" title="Enable/disable GPIO input hysteresis (Schmitt trigger)">gpio_set_input_hysteresis_enabled</a> </dd></dl>
1729 <dl class="params"><dt>Parameters</dt><dd>
1730   <table class="params">
1731     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1732   </table>
1733   </dd>
1734 </dl>
1735
1736 </div>
1737 </div>
1738 <a id="ga54c35d7beb7025aa001ae5b93d38935b" name="ga54c35d7beb7025aa001ae5b93d38935b"></a>
1739 <h2 class="memtitle"><span class="permalink"><a href="#ga54c35d7beb7025aa001ae5b93d38935b">&#9670;&nbsp;</a></span>gpio_is_pulled_down()</h2>
1740
1741 <div class="memitem">
1742 <div class="memproto">
1743 <table class="mlabels">
1744   <tr>
1745   <td class="mlabels-left">
1746       <table class="memname">
1747         <tr>
1748           <td class="memname">static bool gpio_is_pulled_down </td>
1749           <td>(</td>
1750           <td class="paramtype">uint&#160;</td>
1751           <td class="paramname"><em>gpio</em></td><td>)</td>
1752           <td></td>
1753         </tr>
1754       </table>
1755   </td>
1756   <td class="mlabels-right">
1757 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1758   </tr>
1759 </table>
1760 </div><div class="memdoc">
1761
1762 <p>Determine if the specified GPIO is pulled down. </p>
1763 <dl class="params"><dt>Parameters</dt><dd>
1764   <table class="params">
1765     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1766   </table>
1767   </dd>
1768 </dl>
1769 <dl class="section return"><dt>Returns</dt><dd>true if the GPIO is pulled down </dd></dl>
1770
1771 </div>
1772 </div>
1773 <a id="gac7038968884d02b67403a50f1be6ecd6" name="gac7038968884d02b67403a50f1be6ecd6"></a>
1774 <h2 class="memtitle"><span class="permalink"><a href="#gac7038968884d02b67403a50f1be6ecd6">&#9670;&nbsp;</a></span>gpio_is_pulled_up()</h2>
1775
1776 <div class="memitem">
1777 <div class="memproto">
1778 <table class="mlabels">
1779   <tr>
1780   <td class="mlabels-left">
1781       <table class="memname">
1782         <tr>
1783           <td class="memname">static bool gpio_is_pulled_up </td>
1784           <td>(</td>
1785           <td class="paramtype">uint&#160;</td>
1786           <td class="paramname"><em>gpio</em></td><td>)</td>
1787           <td></td>
1788         </tr>
1789       </table>
1790   </td>
1791   <td class="mlabels-right">
1792 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1793   </tr>
1794 </table>
1795 </div><div class="memdoc">
1796
1797 <p>Determine if the specified GPIO is pulled up. </p>
1798 <dl class="params"><dt>Parameters</dt><dd>
1799   <table class="params">
1800     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1801   </table>
1802   </dd>
1803 </dl>
1804 <dl class="section return"><dt>Returns</dt><dd>true if the GPIO is pulled up </dd></dl>
1805
1806 </div>
1807 </div>
1808 <a id="gaea499c33479cf8f87a91a74411ad241f" name="gaea499c33479cf8f87a91a74411ad241f"></a>
1809 <h2 class="memtitle"><span class="permalink"><a href="#gaea499c33479cf8f87a91a74411ad241f">&#9670;&nbsp;</a></span>gpio_pull_down()</h2>
1810
1811 <div class="memitem">
1812 <div class="memproto">
1813 <table class="mlabels">
1814   <tr>
1815   <td class="mlabels-left">
1816       <table class="memname">
1817         <tr>
1818           <td class="memname">static void gpio_pull_down </td>
1819           <td>(</td>
1820           <td class="paramtype">uint&#160;</td>
1821           <td class="paramname"><em>gpio</em></td><td>)</td>
1822           <td></td>
1823         </tr>
1824       </table>
1825   </td>
1826   <td class="mlabels-right">
1827 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1828   </tr>
1829 </table>
1830 </div><div class="memdoc">
1831
1832 <p>Set specified GPIO to be pulled down. </p>
1833 <dl class="params"><dt>Parameters</dt><dd>
1834   <table class="params">
1835     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1836   </table>
1837   </dd>
1838 </dl>
1839
1840 </div>
1841 </div>
1842 <a id="ga30a6733240f3d2e25e6b579b6c3902da" name="ga30a6733240f3d2e25e6b579b6c3902da"></a>
1843 <h2 class="memtitle"><span class="permalink"><a href="#ga30a6733240f3d2e25e6b579b6c3902da">&#9670;&nbsp;</a></span>gpio_pull_up()</h2>
1844
1845 <div class="memitem">
1846 <div class="memproto">
1847 <table class="mlabels">
1848   <tr>
1849   <td class="mlabels-left">
1850       <table class="memname">
1851         <tr>
1852           <td class="memname">static void gpio_pull_up </td>
1853           <td>(</td>
1854           <td class="paramtype">uint&#160;</td>
1855           <td class="paramname"><em>gpio</em></td><td>)</td>
1856           <td></td>
1857         </tr>
1858       </table>
1859   </td>
1860   <td class="mlabels-right">
1861 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1862   </tr>
1863 </table>
1864 </div><div class="memdoc">
1865
1866 <p>Set specified GPIO to be pulled up. </p>
1867 <dl class="params"><dt>Parameters</dt><dd>
1868   <table class="params">
1869     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1870   </table>
1871   </dd>
1872 </dl>
1873
1874 </div>
1875 </div>
1876 <a id="ga71d35b29e897b9bb4fc881b587b08cab" name="ga71d35b29e897b9bb4fc881b587b08cab"></a>
1877 <h2 class="memtitle"><span class="permalink"><a href="#ga71d35b29e897b9bb4fc881b587b08cab">&#9670;&nbsp;</a></span>gpio_put()</h2>
1878
1879 <div class="memitem">
1880 <div class="memproto">
1881 <table class="mlabels">
1882   <tr>
1883   <td class="mlabels-left">
1884       <table class="memname">
1885         <tr>
1886           <td class="memname">static void gpio_put </td>
1887           <td>(</td>
1888           <td class="paramtype">uint&#160;</td>
1889           <td class="paramname"><em>gpio</em>, </td>
1890         </tr>
1891         <tr>
1892           <td class="paramkey"></td>
1893           <td></td>
1894           <td class="paramtype">bool&#160;</td>
1895           <td class="paramname"><em>value</em>&#160;</td>
1896         </tr>
1897         <tr>
1898           <td></td>
1899           <td>)</td>
1900           <td></td><td></td>
1901         </tr>
1902       </table>
1903   </td>
1904   <td class="mlabels-right">
1905 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1906   </tr>
1907 </table>
1908 </div><div class="memdoc">
1909
1910 <p>Drive a single GPIO high/low. </p>
1911 <dl class="params"><dt>Parameters</dt><dd>
1912   <table class="params">
1913     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
1914     <tr><td class="paramname">value</td><td>If false clear the GPIO, otherwise set it. </td></tr>
1915   </table>
1916   </dd>
1917 </dl>
1918
1919 </div>
1920 </div>
1921 <a id="ga7aa41e10d04a8d99d9a8c4d7ba5007b8" name="ga7aa41e10d04a8d99d9a8c4d7ba5007b8"></a>
1922 <h2 class="memtitle"><span class="permalink"><a href="#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">&#9670;&nbsp;</a></span>gpio_put_all()</h2>
1923
1924 <div class="memitem">
1925 <div class="memproto">
1926 <table class="mlabels">
1927   <tr>
1928   <td class="mlabels-left">
1929       <table class="memname">
1930         <tr>
1931           <td class="memname">static void gpio_put_all </td>
1932           <td>(</td>
1933           <td class="paramtype">uint32_t&#160;</td>
1934           <td class="paramname"><em>value</em></td><td>)</td>
1935           <td></td>
1936         </tr>
1937       </table>
1938   </td>
1939   <td class="mlabels-right">
1940 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1941   </tr>
1942 </table>
1943 </div><div class="memdoc">
1944
1945 <p>Drive all pins simultaneously. </p>
1946 <dl class="params"><dt>Parameters</dt><dd>
1947   <table class="params">
1948     <tr><td class="paramname">value</td><td>Bitmask of GPIO values to change </td></tr>
1949   </table>
1950   </dd>
1951 </dl>
1952
1953 </div>
1954 </div>
1955 <a id="ga0ac6439a42e8080449a192bb79e6166c" name="ga0ac6439a42e8080449a192bb79e6166c"></a>
1956 <h2 class="memtitle"><span class="permalink"><a href="#ga0ac6439a42e8080449a192bb79e6166c">&#9670;&nbsp;</a></span>gpio_put_all64()</h2>
1957
1958 <div class="memitem">
1959 <div class="memproto">
1960 <table class="mlabels">
1961   <tr>
1962   <td class="mlabels-left">
1963       <table class="memname">
1964         <tr>
1965           <td class="memname">static void gpio_put_all64 </td>
1966           <td>(</td>
1967           <td class="paramtype">uint64_t&#160;</td>
1968           <td class="paramname"><em>value</em></td><td>)</td>
1969           <td></td>
1970         </tr>
1971       </table>
1972   </td>
1973   <td class="mlabels-right">
1974 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
1975   </tr>
1976 </table>
1977 </div><div class="memdoc">
1978
1979 <p>Drive all pins simultaneously. </p>
1980 <dl class="params"><dt>Parameters</dt><dd>
1981   <table class="params">
1982     <tr><td class="paramname">value</td><td>Bitmask of GPIO values to change </td></tr>
1983   </table>
1984   </dd>
1985 </dl>
1986
1987 </div>
1988 </div>
1989 <a id="gac86436d117c7a87f982c9b3311543302" name="gac86436d117c7a87f982c9b3311543302"></a>
1990 <h2 class="memtitle"><span class="permalink"><a href="#gac86436d117c7a87f982c9b3311543302">&#9670;&nbsp;</a></span>gpio_put_masked()</h2>
1991
1992 <div class="memitem">
1993 <div class="memproto">
1994 <table class="mlabels">
1995   <tr>
1996   <td class="mlabels-left">
1997       <table class="memname">
1998         <tr>
1999           <td class="memname">static void gpio_put_masked </td>
2000           <td>(</td>
2001           <td class="paramtype">uint32_t&#160;</td>
2002           <td class="paramname"><em>mask</em>, </td>
2003         </tr>
2004         <tr>
2005           <td class="paramkey"></td>
2006           <td></td>
2007           <td class="paramtype">uint32_t&#160;</td>
2008           <td class="paramname"><em>value</em>&#160;</td>
2009         </tr>
2010         <tr>
2011           <td></td>
2012           <td>)</td>
2013           <td></td><td></td>
2014         </tr>
2015       </table>
2016   </td>
2017   <td class="mlabels-right">
2018 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2019   </tr>
2020 </table>
2021 </div><div class="memdoc">
2022
2023 <p>Drive GPIOs high/low depending on parameters. </p>
2024 <dl class="params"><dt>Parameters</dt><dd>
2025   <table class="params">
2026     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to change </td></tr>
2027     <tr><td class="paramname">value</td><td>Value to set</td></tr>
2028   </table>
2029   </dd>
2030 </dl>
2031 <p>For each 1 bit in <code>mask</code>, drive that pin to the value given by corresponding bit in <code>value</code>, leaving other pins unchanged. Since this uses the TOGL alias, it is concurrency-safe with e.g. an IRQ bashing different pins from the same core. </p>
2032
2033 </div>
2034 </div>
2035 <a id="gaa613a661abe840e614116c67b84c2003" name="gaa613a661abe840e614116c67b84c2003"></a>
2036 <h2 class="memtitle"><span class="permalink"><a href="#gaa613a661abe840e614116c67b84c2003">&#9670;&nbsp;</a></span>gpio_put_masked64()</h2>
2037
2038 <div class="memitem">
2039 <div class="memproto">
2040 <table class="mlabels">
2041   <tr>
2042   <td class="mlabels-left">
2043       <table class="memname">
2044         <tr>
2045           <td class="memname">static void gpio_put_masked64 </td>
2046           <td>(</td>
2047           <td class="paramtype">uint64_t&#160;</td>
2048           <td class="paramname"><em>mask</em>, </td>
2049         </tr>
2050         <tr>
2051           <td class="paramkey"></td>
2052           <td></td>
2053           <td class="paramtype">uint64_t&#160;</td>
2054           <td class="paramname"><em>value</em>&#160;</td>
2055         </tr>
2056         <tr>
2057           <td></td>
2058           <td>)</td>
2059           <td></td><td></td>
2060         </tr>
2061       </table>
2062   </td>
2063   <td class="mlabels-right">
2064 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2065   </tr>
2066 </table>
2067 </div><div class="memdoc">
2068
2069 <p>Drive GPIOs high/low depending on parameters. </p>
2070 <dl class="params"><dt>Parameters</dt><dd>
2071   <table class="params">
2072     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to change </td></tr>
2073     <tr><td class="paramname">value</td><td>Value to set</td></tr>
2074   </table>
2075   </dd>
2076 </dl>
2077 <p>For each 1 bit in <code>mask</code>, drive that pin to the value given by corresponding bit in <code>value</code>, leaving other pins unchanged. Since this uses the TOGL alias, it is concurrency-safe with e.g. an IRQ bashing different pins from the same core. </p>
2078
2079 </div>
2080 </div>
2081 <a id="ga6ff6c7a437acc5750c0a290c086347b5" name="ga6ff6c7a437acc5750c0a290c086347b5"></a>
2082 <h2 class="memtitle"><span class="permalink"><a href="#ga6ff6c7a437acc5750c0a290c086347b5">&#9670;&nbsp;</a></span>gpio_put_masked_n()</h2>
2083
2084 <div class="memitem">
2085 <div class="memproto">
2086 <table class="mlabels">
2087   <tr>
2088   <td class="mlabels-left">
2089       <table class="memname">
2090         <tr>
2091           <td class="memname">static void gpio_put_masked_n </td>
2092           <td>(</td>
2093           <td class="paramtype">uint&#160;</td>
2094           <td class="paramname"><em>n</em>, </td>
2095         </tr>
2096         <tr>
2097           <td class="paramkey"></td>
2098           <td></td>
2099           <td class="paramtype">uint32_t&#160;</td>
2100           <td class="paramname"><em>mask</em>, </td>
2101         </tr>
2102         <tr>
2103           <td class="paramkey"></td>
2104           <td></td>
2105           <td class="paramtype">uint32_t&#160;</td>
2106           <td class="paramname"><em>value</em>&#160;</td>
2107         </tr>
2108         <tr>
2109           <td></td>
2110           <td>)</td>
2111           <td></td><td></td>
2112         </tr>
2113       </table>
2114   </td>
2115   <td class="mlabels-right">
2116 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2117   </tr>
2118 </table>
2119 </div><div class="memdoc">
2120
2121 <p>Drive GPIOs high/low depending on parameters. </p>
2122 <dl class="params"><dt>Parameters</dt><dd>
2123   <table class="params">
2124     <tr><td class="paramname">n</td><td>the base GPIO index of the mask to update. n == 0 means 0-&gt;31, n == 1 mean 32-&gt;63 etc. </td></tr>
2125     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to change </td></tr>
2126     <tr><td class="paramname">value</td><td>Value to set</td></tr>
2127   </table>
2128   </dd>
2129 </dl>
2130 <p>For each 1 bit in <code>mask</code>, drive that pin to the value given by corresponding bit in <code>value</code>, leaving other pins unchanged. Since this uses the TOGL alias, it is concurrency-safe with e.g. an IRQ bashing different pins from the same core. </p>
2131
2132 </div>
2133 </div>
2134 <a id="ga495c253b01a68b0f81721d2061741243" name="ga495c253b01a68b0f81721d2061741243"></a>
2135 <h2 class="memtitle"><span class="permalink"><a href="#ga495c253b01a68b0f81721d2061741243">&#9670;&nbsp;</a></span>gpio_remove_raw_irq_handler()</h2>
2136
2137 <div class="memitem">
2138 <div class="memproto">
2139 <table class="mlabels">
2140   <tr>
2141   <td class="mlabels-left">
2142       <table class="memname">
2143         <tr>
2144           <td class="memname">static void gpio_remove_raw_irq_handler </td>
2145           <td>(</td>
2146           <td class="paramtype">uint&#160;</td>
2147           <td class="paramname"><em>gpio</em>, </td>
2148         </tr>
2149         <tr>
2150           <td class="paramkey"></td>
2151           <td></td>
2152           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
2153           <td class="paramname"><em>handler</em>&#160;</td>
2154         </tr>
2155         <tr>
2156           <td></td>
2157           <td>)</td>
2158           <td></td><td></td>
2159         </tr>
2160       </table>
2161   </td>
2162   <td class="mlabels-right">
2163 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2164   </tr>
2165 </table>
2166 </div><div class="memdoc">
2167
2168 <p>Removes a raw GPIO IRQ handler for the specified GPIO on the current core. </p>
2169 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default event callback.</p>
2170 <p >This method removes such a callback, and enables the "default" callback for the specified GPIO.</p>
2171 <dl class="params"><dt>Parameters</dt><dd>
2172   <table class="params">
2173     <tr><td class="paramname">gpio</td><td>the GPIO number that will now be passed to the default callback for this core </td></tr>
2174     <tr><td class="paramname">handler</td><td>the handler to remove from the list of GPIO IRQ handlers for this core </td></tr>
2175   </table>
2176   </dd>
2177 </dl>
2178
2179 </div>
2180 </div>
2181 <a id="ga25b1f0b4dc42144da4ed3acbed513095" name="ga25b1f0b4dc42144da4ed3acbed513095"></a>
2182 <h2 class="memtitle"><span class="permalink"><a href="#ga25b1f0b4dc42144da4ed3acbed513095">&#9670;&nbsp;</a></span>gpio_remove_raw_irq_handler_masked()</h2>
2183
2184 <div class="memitem">
2185 <div class="memproto">
2186       <table class="memname">
2187         <tr>
2188           <td class="memname">void gpio_remove_raw_irq_handler_masked </td>
2189           <td>(</td>
2190           <td class="paramtype">uint32_t&#160;</td>
2191           <td class="paramname"><em>gpio_mask</em>, </td>
2192         </tr>
2193         <tr>
2194           <td class="paramkey"></td>
2195           <td></td>
2196           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
2197           <td class="paramname"><em>handler</em>&#160;</td>
2198         </tr>
2199         <tr>
2200           <td></td>
2201           <td>)</td>
2202           <td></td><td></td>
2203         </tr>
2204       </table>
2205 </div><div class="memdoc">
2206
2207 <p>Removes a raw GPIO IRQ handler for the specified GPIOs on the current core. </p>
2208 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default event callback.</p>
2209 <p >This method removes such a callback, and enables the "default" callback for the specified GPIOs.</p>
2210 <dl class="params"><dt>Parameters</dt><dd>
2211   <table class="params">
2212     <tr><td class="paramname">gpio_mask</td><td>a bit mask of the GPIO numbers that will now be passed to the default callback for this core </td></tr>
2213     <tr><td class="paramname">handler</td><td>the handler to remove from the list of GPIO IRQ handlers for this core </td></tr>
2214   </table>
2215   </dd>
2216 </dl>
2217
2218 </div>
2219 </div>
2220 <a id="ga9310346a1f7b58ba6b6be82097980af6" name="ga9310346a1f7b58ba6b6be82097980af6"></a>
2221 <h2 class="memtitle"><span class="permalink"><a href="#ga9310346a1f7b58ba6b6be82097980af6">&#9670;&nbsp;</a></span>gpio_remove_raw_irq_handler_masked64()</h2>
2222
2223 <div class="memitem">
2224 <div class="memproto">
2225       <table class="memname">
2226         <tr>
2227           <td class="memname">void gpio_remove_raw_irq_handler_masked64 </td>
2228           <td>(</td>
2229           <td class="paramtype">uint64_t&#160;</td>
2230           <td class="paramname"><em>gpio_mask</em>, </td>
2231         </tr>
2232         <tr>
2233           <td class="paramkey"></td>
2234           <td></td>
2235           <td class="paramtype"><a class="el" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a>&#160;</td>
2236           <td class="paramname"><em>handler</em>&#160;</td>
2237         </tr>
2238         <tr>
2239           <td></td>
2240           <td>)</td>
2241           <td></td><td></td>
2242         </tr>
2243       </table>
2244 </div><div class="memdoc">
2245
2246 <p>Removes a raw GPIO IRQ handler for the specified GPIOs on the current core. </p>
2247 <p >In addition to the default mechanism of a single GPIO IRQ event callback per core (see <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>), it is possible to add explicit GPIO IRQ handlers which are called independent of the default event callback.</p>
2248 <p >This method removes such a callback, and enables the "default" callback for the specified GPIOs.</p>
2249 <dl class="params"><dt>Parameters</dt><dd>
2250   <table class="params">
2251     <tr><td class="paramname">gpio_mask</td><td>a bit mask of the GPIO numbers that will now be passed to the default callback for this core </td></tr>
2252     <tr><td class="paramname">handler</td><td>the handler to remove from the list of GPIO IRQ handlers for this core </td></tr>
2253   </table>
2254   </dd>
2255 </dl>
2256
2257 </div>
2258 </div>
2259 <a id="ga6a40edf0d86f6b3f0dcb51a768cf4681" name="ga6a40edf0d86f6b3f0dcb51a768cf4681"></a>
2260 <h2 class="memtitle"><span class="permalink"><a href="#ga6a40edf0d86f6b3f0dcb51a768cf4681">&#9670;&nbsp;</a></span>gpio_set_dir()</h2>
2261
2262 <div class="memitem">
2263 <div class="memproto">
2264 <table class="mlabels">
2265   <tr>
2266   <td class="mlabels-left">
2267       <table class="memname">
2268         <tr>
2269           <td class="memname">static void gpio_set_dir </td>
2270           <td>(</td>
2271           <td class="paramtype">uint&#160;</td>
2272           <td class="paramname"><em>gpio</em>, </td>
2273         </tr>
2274         <tr>
2275           <td class="paramkey"></td>
2276           <td></td>
2277           <td class="paramtype">bool&#160;</td>
2278           <td class="paramname"><em>out</em>&#160;</td>
2279         </tr>
2280         <tr>
2281           <td></td>
2282           <td>)</td>
2283           <td></td><td></td>
2284         </tr>
2285       </table>
2286   </td>
2287   <td class="mlabels-right">
2288 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2289   </tr>
2290 </table>
2291 </div><div class="memdoc">
2292
2293 <p>Set a single GPIO direction. </p>
2294 <dl class="params"><dt>Parameters</dt><dd>
2295   <table class="params">
2296     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2297     <tr><td class="paramname">out</td><td>true for out, false for in </td></tr>
2298   </table>
2299   </dd>
2300 </dl>
2301
2302 </div>
2303 </div>
2304 <a id="ga50b526aa81f036a20c60f04106910578" name="ga50b526aa81f036a20c60f04106910578"></a>
2305 <h2 class="memtitle"><span class="permalink"><a href="#ga50b526aa81f036a20c60f04106910578">&#9670;&nbsp;</a></span>gpio_set_dir_all_bits()</h2>
2306
2307 <div class="memitem">
2308 <div class="memproto">
2309 <table class="mlabels">
2310   <tr>
2311   <td class="mlabels-left">
2312       <table class="memname">
2313         <tr>
2314           <td class="memname">static void gpio_set_dir_all_bits </td>
2315           <td>(</td>
2316           <td class="paramtype">uint32_t&#160;</td>
2317           <td class="paramname"><em>values</em></td><td>)</td>
2318           <td></td>
2319         </tr>
2320       </table>
2321   </td>
2322   <td class="mlabels-right">
2323 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2324   </tr>
2325 </table>
2326 </div><div class="memdoc">
2327
2328 <p>Set direction of all pins simultaneously. </p>
2329 <dl class="params"><dt>Parameters</dt><dd>
2330   <table class="params">
2331     <tr><td class="paramname">values</td><td>individual settings for each gpio; for GPIO N, bit N is 1 for out, 0 for in </td></tr>
2332   </table>
2333   </dd>
2334 </dl>
2335
2336 </div>
2337 </div>
2338 <a id="gab6a80e41c677f7643a114351ea48ced4" name="gab6a80e41c677f7643a114351ea48ced4"></a>
2339 <h2 class="memtitle"><span class="permalink"><a href="#gab6a80e41c677f7643a114351ea48ced4">&#9670;&nbsp;</a></span>gpio_set_dir_all_bits64()</h2>
2340
2341 <div class="memitem">
2342 <div class="memproto">
2343 <table class="mlabels">
2344   <tr>
2345   <td class="mlabels-left">
2346       <table class="memname">
2347         <tr>
2348           <td class="memname">static void gpio_set_dir_all_bits64 </td>
2349           <td>(</td>
2350           <td class="paramtype">uint64_t&#160;</td>
2351           <td class="paramname"><em>values</em></td><td>)</td>
2352           <td></td>
2353         </tr>
2354       </table>
2355   </td>
2356   <td class="mlabels-right">
2357 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2358   </tr>
2359 </table>
2360 </div><div class="memdoc">
2361
2362 <p>Set direction of all pins simultaneously. </p>
2363 <dl class="params"><dt>Parameters</dt><dd>
2364   <table class="params">
2365     <tr><td class="paramname">values</td><td>individual settings for each gpio; for GPIO N, bit N is 1 for out, 0 for in </td></tr>
2366   </table>
2367   </dd>
2368 </dl>
2369
2370 </div>
2371 </div>
2372 <a id="ga79819a97822983d7422d37c3e532cc53" name="ga79819a97822983d7422d37c3e532cc53"></a>
2373 <h2 class="memtitle"><span class="permalink"><a href="#ga79819a97822983d7422d37c3e532cc53">&#9670;&nbsp;</a></span>gpio_set_dir_in_masked()</h2>
2374
2375 <div class="memitem">
2376 <div class="memproto">
2377 <table class="mlabels">
2378   <tr>
2379   <td class="mlabels-left">
2380       <table class="memname">
2381         <tr>
2382           <td class="memname">static void gpio_set_dir_in_masked </td>
2383           <td>(</td>
2384           <td class="paramtype">uint32_t&#160;</td>
2385           <td class="paramname"><em>mask</em></td><td>)</td>
2386           <td></td>
2387         </tr>
2388       </table>
2389   </td>
2390   <td class="mlabels-right">
2391 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2392   </tr>
2393 </table>
2394 </div><div class="memdoc">
2395
2396 <p>Set a number of GPIOs to input. </p>
2397 <dl class="params"><dt>Parameters</dt><dd>
2398   <table class="params">
2399     <tr><td class="paramname">mask</td><td>Bitmask of GPIO to set to input </td></tr>
2400   </table>
2401   </dd>
2402 </dl>
2403
2404 </div>
2405 </div>
2406 <a id="gac6dbb6aa0cd534decaee71bfb7883371" name="gac6dbb6aa0cd534decaee71bfb7883371"></a>
2407 <h2 class="memtitle"><span class="permalink"><a href="#gac6dbb6aa0cd534decaee71bfb7883371">&#9670;&nbsp;</a></span>gpio_set_dir_in_masked64()</h2>
2408
2409 <div class="memitem">
2410 <div class="memproto">
2411 <table class="mlabels">
2412   <tr>
2413   <td class="mlabels-left">
2414       <table class="memname">
2415         <tr>
2416           <td class="memname">static void gpio_set_dir_in_masked64 </td>
2417           <td>(</td>
2418           <td class="paramtype">uint64_t&#160;</td>
2419           <td class="paramname"><em>mask</em></td><td>)</td>
2420           <td></td>
2421         </tr>
2422       </table>
2423   </td>
2424   <td class="mlabels-right">
2425 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2426   </tr>
2427 </table>
2428 </div><div class="memdoc">
2429
2430 <p>Set a number of GPIOs to input. </p>
2431 <dl class="params"><dt>Parameters</dt><dd>
2432   <table class="params">
2433     <tr><td class="paramname">mask</td><td>Bitmask of GPIO to set to input </td></tr>
2434   </table>
2435   </dd>
2436 </dl>
2437
2438 </div>
2439 </div>
2440 <a id="gaa64fdceff54dda03f4427f04c2f9ced2" name="gaa64fdceff54dda03f4427f04c2f9ced2"></a>
2441 <h2 class="memtitle"><span class="permalink"><a href="#gaa64fdceff54dda03f4427f04c2f9ced2">&#9670;&nbsp;</a></span>gpio_set_dir_masked()</h2>
2442
2443 <div class="memitem">
2444 <div class="memproto">
2445 <table class="mlabels">
2446   <tr>
2447   <td class="mlabels-left">
2448       <table class="memname">
2449         <tr>
2450           <td class="memname">static void gpio_set_dir_masked </td>
2451           <td>(</td>
2452           <td class="paramtype">uint32_t&#160;</td>
2453           <td class="paramname"><em>mask</em>, </td>
2454         </tr>
2455         <tr>
2456           <td class="paramkey"></td>
2457           <td></td>
2458           <td class="paramtype">uint32_t&#160;</td>
2459           <td class="paramname"><em>value</em>&#160;</td>
2460         </tr>
2461         <tr>
2462           <td></td>
2463           <td>)</td>
2464           <td></td><td></td>
2465         </tr>
2466       </table>
2467   </td>
2468   <td class="mlabels-right">
2469 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2470   </tr>
2471 </table>
2472 </div><div class="memdoc">
2473
2474 <p>Set multiple GPIO directions. </p>
2475 <dl class="params"><dt>Parameters</dt><dd>
2476   <table class="params">
2477     <tr><td class="paramname">mask</td><td>Bitmask of GPIO to set to input, as bits 0-29 </td></tr>
2478     <tr><td class="paramname">value</td><td>Values to set</td></tr>
2479   </table>
2480   </dd>
2481 </dl>
2482 <p>For each 1 bit in "mask", switch that pin to the direction given by corresponding bit in "value", leaving other pins unchanged. E.g. gpio_set_dir_masked(0x3, 0x2); -&gt; set pin 0 to input, pin 1 to output, simultaneously. </p>
2483
2484 </div>
2485 </div>
2486 <a id="ga2db74931aa7a9b7396765d86a6c53148" name="ga2db74931aa7a9b7396765d86a6c53148"></a>
2487 <h2 class="memtitle"><span class="permalink"><a href="#ga2db74931aa7a9b7396765d86a6c53148">&#9670;&nbsp;</a></span>gpio_set_dir_masked64()</h2>
2488
2489 <div class="memitem">
2490 <div class="memproto">
2491 <table class="mlabels">
2492   <tr>
2493   <td class="mlabels-left">
2494       <table class="memname">
2495         <tr>
2496           <td class="memname">static void gpio_set_dir_masked64 </td>
2497           <td>(</td>
2498           <td class="paramtype">uint64_t&#160;</td>
2499           <td class="paramname"><em>mask</em>, </td>
2500         </tr>
2501         <tr>
2502           <td class="paramkey"></td>
2503           <td></td>
2504           <td class="paramtype">uint64_t&#160;</td>
2505           <td class="paramname"><em>value</em>&#160;</td>
2506         </tr>
2507         <tr>
2508           <td></td>
2509           <td>)</td>
2510           <td></td><td></td>
2511         </tr>
2512       </table>
2513   </td>
2514   <td class="mlabels-right">
2515 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2516   </tr>
2517 </table>
2518 </div><div class="memdoc">
2519
2520 <p>Set multiple GPIO directions. </p>
2521 <dl class="params"><dt>Parameters</dt><dd>
2522   <table class="params">
2523     <tr><td class="paramname">mask</td><td>Bitmask of GPIO to set to input, as bits 0-29 </td></tr>
2524     <tr><td class="paramname">value</td><td>Values to set</td></tr>
2525   </table>
2526   </dd>
2527 </dl>
2528 <p>For each 1 bit in "mask", switch that pin to the direction given by corresponding bit in "value", leaving other pins unchanged. E.g. gpio_set_dir_masked(0x3, 0x2); -&gt; set pin 0 to input, pin 1 to output, simultaneously. </p>
2529
2530 </div>
2531 </div>
2532 <a id="ga7b2cc867ac41996100e881a768c7f969" name="ga7b2cc867ac41996100e881a768c7f969"></a>
2533 <h2 class="memtitle"><span class="permalink"><a href="#ga7b2cc867ac41996100e881a768c7f969">&#9670;&nbsp;</a></span>gpio_set_dir_out_masked()</h2>
2534
2535 <div class="memitem">
2536 <div class="memproto">
2537 <table class="mlabels">
2538   <tr>
2539   <td class="mlabels-left">
2540       <table class="memname">
2541         <tr>
2542           <td class="memname">static void gpio_set_dir_out_masked </td>
2543           <td>(</td>
2544           <td class="paramtype">uint32_t&#160;</td>
2545           <td class="paramname"><em>mask</em></td><td>)</td>
2546           <td></td>
2547         </tr>
2548       </table>
2549   </td>
2550   <td class="mlabels-right">
2551 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2552   </tr>
2553 </table>
2554 </div><div class="memdoc">
2555
2556 <p>Set a number of GPIOs to output. </p>
2557 <p >Switch all GPIOs in "mask" to output</p>
2558 <dl class="params"><dt>Parameters</dt><dd>
2559   <table class="params">
2560     <tr><td class="paramname">mask</td><td>Bitmask of GPIO to set to output </td></tr>
2561   </table>
2562   </dd>
2563 </dl>
2564
2565 </div>
2566 </div>
2567 <a id="ga71c466b22b8ce63c8863933c82c4810e" name="ga71c466b22b8ce63c8863933c82c4810e"></a>
2568 <h2 class="memtitle"><span class="permalink"><a href="#ga71c466b22b8ce63c8863933c82c4810e">&#9670;&nbsp;</a></span>gpio_set_dir_out_masked64()</h2>
2569
2570 <div class="memitem">
2571 <div class="memproto">
2572 <table class="mlabels">
2573   <tr>
2574   <td class="mlabels-left">
2575       <table class="memname">
2576         <tr>
2577           <td class="memname">static void gpio_set_dir_out_masked64 </td>
2578           <td>(</td>
2579           <td class="paramtype">uint64_t&#160;</td>
2580           <td class="paramname"><em>mask</em></td><td>)</td>
2581           <td></td>
2582         </tr>
2583       </table>
2584   </td>
2585   <td class="mlabels-right">
2586 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
2587   </tr>
2588 </table>
2589 </div><div class="memdoc">
2590
2591 <p>Set a number of GPIOs to output. </p>
2592 <p >Switch all GPIOs in "mask" to output</p>
2593 <dl class="params"><dt>Parameters</dt><dd>
2594   <table class="params">
2595     <tr><td class="paramname">mask</td><td>Bitmask of GPIO to set to output </td></tr>
2596   </table>
2597   </dd>
2598 </dl>
2599
2600 </div>
2601 </div>
2602 <a id="ga0b10ec79e10d7df958373b178debcd2e" name="ga0b10ec79e10d7df958373b178debcd2e"></a>
2603 <h2 class="memtitle"><span class="permalink"><a href="#ga0b10ec79e10d7df958373b178debcd2e">&#9670;&nbsp;</a></span>gpio_set_dormant_irq_enabled()</h2>
2604
2605 <div class="memitem">
2606 <div class="memproto">
2607       <table class="memname">
2608         <tr>
2609           <td class="memname">void gpio_set_dormant_irq_enabled </td>
2610           <td>(</td>
2611           <td class="paramtype">uint&#160;</td>
2612           <td class="paramname"><em>gpio</em>, </td>
2613         </tr>
2614         <tr>
2615           <td class="paramkey"></td>
2616           <td></td>
2617           <td class="paramtype">uint32_t&#160;</td>
2618           <td class="paramname"><em>event_mask</em>, </td>
2619         </tr>
2620         <tr>
2621           <td class="paramkey"></td>
2622           <td></td>
2623           <td class="paramtype">bool&#160;</td>
2624           <td class="paramname"><em>enabled</em>&#160;</td>
2625         </tr>
2626         <tr>
2627           <td></td>
2628           <td>)</td>
2629           <td></td><td></td>
2630         </tr>
2631       </table>
2632 </div><div class="memdoc">
2633
2634 <p>Enable dormant wake up interrupt for specified GPIO and events. </p>
2635 <p >This configures IRQs to restart the XOSC or ROSC when they are disabled in dormant mode</p>
2636 <dl class="params"><dt>Parameters</dt><dd>
2637   <table class="params">
2638     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2639     <tr><td class="paramname">event_mask</td><td>Which events will cause an interrupt. See <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> for details. </td></tr>
2640     <tr><td class="paramname">enabled</td><td>Enable/disable flag </td></tr>
2641   </table>
2642   </dd>
2643 </dl>
2644
2645 </div>
2646 </div>
2647 <a id="ga0ffe0ddabcd081b513731275df97e7ca" name="ga0ffe0ddabcd081b513731275df97e7ca"></a>
2648 <h2 class="memtitle"><span class="permalink"><a href="#ga0ffe0ddabcd081b513731275df97e7ca">&#9670;&nbsp;</a></span>gpio_set_drive_strength()</h2>
2649
2650 <div class="memitem">
2651 <div class="memproto">
2652       <table class="memname">
2653         <tr>
2654           <td class="memname">void gpio_set_drive_strength </td>
2655           <td>(</td>
2656           <td class="paramtype">uint&#160;</td>
2657           <td class="paramname"><em>gpio</em>, </td>
2658         </tr>
2659         <tr>
2660           <td class="paramkey"></td>
2661           <td></td>
2662           <td class="paramtype">enum <a class="el" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a>&#160;</td>
2663           <td class="paramname"><em>drive</em>&#160;</td>
2664         </tr>
2665         <tr>
2666           <td></td>
2667           <td>)</td>
2668           <td></td><td></td>
2669         </tr>
2670       </table>
2671 </div><div class="memdoc">
2672
2673 <p>Set drive strength for a specified GPIO. </p>
2674 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140" title="Determine current drive strength for a specified GPIO.">gpio_get_drive_strength</a> </dd></dl>
2675 <dl class="params"><dt>Parameters</dt><dd>
2676   <table class="params">
2677     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2678     <tr><td class="paramname">drive</td><td>GPIO output drive strength </td></tr>
2679   </table>
2680   </dd>
2681 </dl>
2682
2683 </div>
2684 </div>
2685 <a id="ga22f6b90c4c7e0013b4b5341de0a44fc4" name="ga22f6b90c4c7e0013b4b5341de0a44fc4"></a>
2686 <h2 class="memtitle"><span class="permalink"><a href="#ga22f6b90c4c7e0013b4b5341de0a44fc4">&#9670;&nbsp;</a></span>gpio_set_function()</h2>
2687
2688 <div class="memitem">
2689 <div class="memproto">
2690       <table class="memname">
2691         <tr>
2692           <td class="memname">void gpio_set_function </td>
2693           <td>(</td>
2694           <td class="paramtype">uint&#160;</td>
2695           <td class="paramname"><em>gpio</em>, </td>
2696         </tr>
2697         <tr>
2698           <td class="paramkey"></td>
2699           <td></td>
2700           <td class="paramtype"><a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a>&#160;</td>
2701           <td class="paramname"><em>fn</em>&#160;</td>
2702         </tr>
2703         <tr>
2704           <td></td>
2705           <td>)</td>
2706           <td></td><td></td>
2707         </tr>
2708       </table>
2709 </div><div class="memdoc">
2710
2711 <p>Select GPIO function. </p>
2712 <dl class="params"><dt>Parameters</dt><dd>
2713   <table class="params">
2714     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2715     <tr><td class="paramname">fn</td><td>Which GPIO function select to use from list gpio_function </td></tr>
2716   </table>
2717   </dd>
2718 </dl>
2719
2720 </div>
2721 </div>
2722 <a id="ga32c1aae77b4b3bf42e9ae554d16284ab" name="ga32c1aae77b4b3bf42e9ae554d16284ab"></a>
2723 <h2 class="memtitle"><span class="permalink"><a href="#ga32c1aae77b4b3bf42e9ae554d16284ab">&#9670;&nbsp;</a></span>gpio_set_function_masked()</h2>
2724
2725 <div class="memitem">
2726 <div class="memproto">
2727       <table class="memname">
2728         <tr>
2729           <td class="memname">void gpio_set_function_masked </td>
2730           <td>(</td>
2731           <td class="paramtype">uint32_t&#160;</td>
2732           <td class="paramname"><em>gpio_mask</em>, </td>
2733         </tr>
2734         <tr>
2735           <td class="paramkey"></td>
2736           <td></td>
2737           <td class="paramtype"><a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a>&#160;</td>
2738           <td class="paramname"><em>fn</em>&#160;</td>
2739         </tr>
2740         <tr>
2741           <td></td>
2742           <td>)</td>
2743           <td></td><td></td>
2744         </tr>
2745       </table>
2746 </div><div class="memdoc">
2747
2748 <p>Select the function for multiple GPIOs. </p>
2749 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4" title="Select GPIO function.">gpio_set_function</a> </dd></dl>
2750 <dl class="params"><dt>Parameters</dt><dd>
2751   <table class="params">
2752     <tr><td class="paramname">gpio_mask</td><td>Mask with 1 bit per GPIO number to set the function for </td></tr>
2753     <tr><td class="paramname">fn</td><td>Which GPIO function select to use from list gpio_function </td></tr>
2754   </table>
2755   </dd>
2756 </dl>
2757
2758 </div>
2759 </div>
2760 <a id="ga83093178ba0ad7d711bff47fc90d361b" name="ga83093178ba0ad7d711bff47fc90d361b"></a>
2761 <h2 class="memtitle"><span class="permalink"><a href="#ga83093178ba0ad7d711bff47fc90d361b">&#9670;&nbsp;</a></span>gpio_set_function_masked64()</h2>
2762
2763 <div class="memitem">
2764 <div class="memproto">
2765       <table class="memname">
2766         <tr>
2767           <td class="memname">void gpio_set_function_masked64 </td>
2768           <td>(</td>
2769           <td class="paramtype">uint64_t&#160;</td>
2770           <td class="paramname"><em>gpio_mask</em>, </td>
2771         </tr>
2772         <tr>
2773           <td class="paramkey"></td>
2774           <td></td>
2775           <td class="paramtype"><a class="el" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a>&#160;</td>
2776           <td class="paramname"><em>fn</em>&#160;</td>
2777         </tr>
2778         <tr>
2779           <td></td>
2780           <td>)</td>
2781           <td></td><td></td>
2782         </tr>
2783       </table>
2784 </div><div class="memdoc">
2785
2786 <p>Select the function for multiple GPIOs. </p>
2787 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4" title="Select GPIO function.">gpio_set_function</a> </dd></dl>
2788 <dl class="params"><dt>Parameters</dt><dd>
2789   <table class="params">
2790     <tr><td class="paramname">gpio_mask</td><td>Mask with 1 bit per GPIO number to set the function for </td></tr>
2791     <tr><td class="paramname">fn</td><td>Which GPIO function select to use from list gpio_function </td></tr>
2792   </table>
2793   </dd>
2794 </dl>
2795
2796 </div>
2797 </div>
2798 <a id="ga6037bdaf406a84336043c9a6c40e5073" name="ga6037bdaf406a84336043c9a6c40e5073"></a>
2799 <h2 class="memtitle"><span class="permalink"><a href="#ga6037bdaf406a84336043c9a6c40e5073">&#9670;&nbsp;</a></span>gpio_set_inover()</h2>
2800
2801 <div class="memitem">
2802 <div class="memproto">
2803       <table class="memname">
2804         <tr>
2805           <td class="memname">void gpio_set_inover </td>
2806           <td>(</td>
2807           <td class="paramtype">uint&#160;</td>
2808           <td class="paramname"><em>gpio</em>, </td>
2809         </tr>
2810         <tr>
2811           <td class="paramkey"></td>
2812           <td></td>
2813           <td class="paramtype">uint&#160;</td>
2814           <td class="paramname"><em>value</em>&#160;</td>
2815         </tr>
2816         <tr>
2817           <td></td>
2818           <td>)</td>
2819           <td></td><td></td>
2820         </tr>
2821       </table>
2822 </div><div class="memdoc">
2823
2824 <p>Select GPIO input override. </p>
2825 <dl class="params"><dt>Parameters</dt><dd>
2826   <table class="params">
2827     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2828     <tr><td class="paramname">value</td><td>See <a class="el" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a> </td></tr>
2829   </table>
2830   </dd>
2831 </dl>
2832
2833 </div>
2834 </div>
2835 <a id="ga74a8c3e55185581bc3df335aea1d0fb8" name="ga74a8c3e55185581bc3df335aea1d0fb8"></a>
2836 <h2 class="memtitle"><span class="permalink"><a href="#ga74a8c3e55185581bc3df335aea1d0fb8">&#9670;&nbsp;</a></span>gpio_set_input_enabled()</h2>
2837
2838 <div class="memitem">
2839 <div class="memproto">
2840       <table class="memname">
2841         <tr>
2842           <td class="memname">void gpio_set_input_enabled </td>
2843           <td>(</td>
2844           <td class="paramtype">uint&#160;</td>
2845           <td class="paramname"><em>gpio</em>, </td>
2846         </tr>
2847         <tr>
2848           <td class="paramkey"></td>
2849           <td></td>
2850           <td class="paramtype">bool&#160;</td>
2851           <td class="paramname"><em>enabled</em>&#160;</td>
2852         </tr>
2853         <tr>
2854           <td></td>
2855           <td>)</td>
2856           <td></td><td></td>
2857         </tr>
2858       </table>
2859 </div><div class="memdoc">
2860
2861 <p>Enable GPIO input. </p>
2862 <dl class="params"><dt>Parameters</dt><dd>
2863   <table class="params">
2864     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2865     <tr><td class="paramname">enabled</td><td>true to enable input on specified GPIO </td></tr>
2866   </table>
2867   </dd>
2868 </dl>
2869
2870 </div>
2871 </div>
2872 <a id="ga1f52eecc12d4348ef8bd1e17bdb4b107" name="ga1f52eecc12d4348ef8bd1e17bdb4b107"></a>
2873 <h2 class="memtitle"><span class="permalink"><a href="#ga1f52eecc12d4348ef8bd1e17bdb4b107">&#9670;&nbsp;</a></span>gpio_set_input_hysteresis_enabled()</h2>
2874
2875 <div class="memitem">
2876 <div class="memproto">
2877       <table class="memname">
2878         <tr>
2879           <td class="memname">void gpio_set_input_hysteresis_enabled </td>
2880           <td>(</td>
2881           <td class="paramtype">uint&#160;</td>
2882           <td class="paramname"><em>gpio</em>, </td>
2883         </tr>
2884         <tr>
2885           <td class="paramkey"></td>
2886           <td></td>
2887           <td class="paramtype">bool&#160;</td>
2888           <td class="paramname"><em>enabled</em>&#160;</td>
2889         </tr>
2890         <tr>
2891           <td></td>
2892           <td>)</td>
2893           <td></td><td></td>
2894         </tr>
2895       </table>
2896 </div><div class="memdoc">
2897
2898 <p>Enable/disable GPIO input hysteresis (Schmitt trigger) </p>
2899 <p >Enable or disable the Schmitt trigger hysteresis on a given GPIO. This is enabled on all GPIOs by default. Disabling input hysteresis can lead to inconsistent readings when the input signal has very long rise or fall times, but slightly reduces the GPIO's input delay.</p>
2900 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8" title="Determine whether input hysteresis is enabled on a specified GPIO.">gpio_is_input_hysteresis_enabled</a> </dd></dl>
2901 <dl class="params"><dt>Parameters</dt><dd>
2902   <table class="params">
2903     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2904     <tr><td class="paramname">enabled</td><td>true to enable input hysteresis on specified GPIO </td></tr>
2905   </table>
2906   </dd>
2907 </dl>
2908
2909 </div>
2910 </div>
2911 <a id="ga37b23dea291af5926735b5e8c87b7dbb" name="ga37b23dea291af5926735b5e8c87b7dbb"></a>
2912 <h2 class="memtitle"><span class="permalink"><a href="#ga37b23dea291af5926735b5e8c87b7dbb">&#9670;&nbsp;</a></span>gpio_set_irq_callback()</h2>
2913
2914 <div class="memitem">
2915 <div class="memproto">
2916       <table class="memname">
2917         <tr>
2918           <td class="memname">void gpio_set_irq_callback </td>
2919           <td>(</td>
2920           <td class="paramtype"><a class="el" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a>&#160;</td>
2921           <td class="paramname"><em>callback</em></td><td>)</td>
2922           <td></td>
2923         </tr>
2924       </table>
2925 </div><div class="memdoc">
2926
2927 <p>Set the generic callback used for GPIO IRQ events for the current core. </p>
2928 <p >This function sets the callback used for all GPIO IRQs on the current core that are not explicitly hooked via <a class="el" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a> or other gpio_add_raw_irq_handler_ functions.</p>
2929 <p >This function is called with the GPIO number and event mask for each of the (not explicitly hooked) GPIOs that have events enabled and that are pending (see <a class="el" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>).</p>
2930 <dl class="section note"><dt>Note</dt><dd>The IO IRQs are independent per-processor. This function affects the processor that calls the function.</dd></dl>
2931 <dl class="params"><dt>Parameters</dt><dd>
2932   <table class="params">
2933     <tr><td class="paramname">callback</td><td>default user function to call on GPIO irq. Note only one of these can be set per processor. </td></tr>
2934   </table>
2935   </dd>
2936 </dl>
2937
2938 </div>
2939 </div>
2940 <a id="ga08b1f920beba446c4d4385de999cf945" name="ga08b1f920beba446c4d4385de999cf945"></a>
2941 <h2 class="memtitle"><span class="permalink"><a href="#ga08b1f920beba446c4d4385de999cf945">&#9670;&nbsp;</a></span>gpio_set_irq_enabled()</h2>
2942
2943 <div class="memitem">
2944 <div class="memproto">
2945       <table class="memname">
2946         <tr>
2947           <td class="memname">void gpio_set_irq_enabled </td>
2948           <td>(</td>
2949           <td class="paramtype">uint&#160;</td>
2950           <td class="paramname"><em>gpio</em>, </td>
2951         </tr>
2952         <tr>
2953           <td class="paramkey"></td>
2954           <td></td>
2955           <td class="paramtype">uint32_t&#160;</td>
2956           <td class="paramname"><em>event_mask</em>, </td>
2957         </tr>
2958         <tr>
2959           <td class="paramkey"></td>
2960           <td></td>
2961           <td class="paramtype">bool&#160;</td>
2962           <td class="paramname"><em>enabled</em>&#160;</td>
2963         </tr>
2964         <tr>
2965           <td></td>
2966           <td>)</td>
2967           <td></td><td></td>
2968         </tr>
2969       </table>
2970 </div><div class="memdoc">
2971
2972 <p>Enable or disable specific interrupt events for specified GPIO. </p>
2973 <p >This function sets which GPIO events cause a GPIO interrupt on the calling core. See <a class="el" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>, <a class="el" href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a> and <a class="el" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a> to set up a GPIO interrupt handler to handle the events.</p>
2974 <dl class="section note"><dt>Note</dt><dd>The IO IRQs are independent per-processor. This configures the interrupt events for the processor that calls the function.</dd></dl>
2975 <dl class="params"><dt>Parameters</dt><dd>
2976   <table class="params">
2977     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
2978     <tr><td class="paramname">event_mask</td><td>Which events will cause an interrupt </td></tr>
2979     <tr><td class="paramname">enabled</td><td>Enable or disable flag</td></tr>
2980   </table>
2981   </dd>
2982 </dl>
2983 <p>Events is a bitmask of the following <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> values:</p>
2984 <table class="markdownTable">
2985 <tr class="markdownTableHead">
2986 <th class="markdownTableHeadNone">bit   </th><th class="markdownTableHeadNone">constant   </th><th class="markdownTableHeadNone">interrupt    </th></tr>
2987 <tr class="markdownTableRowOdd">
2988 <td class="markdownTableBodyNone">0   </td><td class="markdownTableBodyNone">GPIO_IRQ_LEVEL_LOW   </td><td class="markdownTableBodyNone">Continuously while level is low    </td></tr>
2989 <tr class="markdownTableRowEven">
2990 <td class="markdownTableBodyNone">1   </td><td class="markdownTableBodyNone">GPIO_IRQ_LEVEL_HIGH   </td><td class="markdownTableBodyNone">Continuously while level is high    </td></tr>
2991 <tr class="markdownTableRowOdd">
2992 <td class="markdownTableBodyNone">2   </td><td class="markdownTableBodyNone">GPIO_IRQ_EDGE_FALL   </td><td class="markdownTableBodyNone">On each transition from high to low    </td></tr>
2993 <tr class="markdownTableRowEven">
2994 <td class="markdownTableBodyNone">3   </td><td class="markdownTableBodyNone">GPIO_IRQ_EDGE_RISE   </td><td class="markdownTableBodyNone">On each transition from low to high   </td></tr>
2995 </table>
2996 <p >which are specified in <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> </p>
2997
2998 </div>
2999 </div>
3000 <a id="ga6165f07f4b619dd08ea6dc97d069e78a" name="ga6165f07f4b619dd08ea6dc97d069e78a"></a>
3001 <h2 class="memtitle"><span class="permalink"><a href="#ga6165f07f4b619dd08ea6dc97d069e78a">&#9670;&nbsp;</a></span>gpio_set_irq_enabled_with_callback()</h2>
3002
3003 <div class="memitem">
3004 <div class="memproto">
3005       <table class="memname">
3006         <tr>
3007           <td class="memname">void gpio_set_irq_enabled_with_callback </td>
3008           <td>(</td>
3009           <td class="paramtype">uint&#160;</td>
3010           <td class="paramname"><em>gpio</em>, </td>
3011         </tr>
3012         <tr>
3013           <td class="paramkey"></td>
3014           <td></td>
3015           <td class="paramtype">uint32_t&#160;</td>
3016           <td class="paramname"><em>event_mask</em>, </td>
3017         </tr>
3018         <tr>
3019           <td class="paramkey"></td>
3020           <td></td>
3021           <td class="paramtype">bool&#160;</td>
3022           <td class="paramname"><em>enabled</em>, </td>
3023         </tr>
3024         <tr>
3025           <td class="paramkey"></td>
3026           <td></td>
3027           <td class="paramtype"><a class="el" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a>&#160;</td>
3028           <td class="paramname"><em>callback</em>&#160;</td>
3029         </tr>
3030         <tr>
3031           <td></td>
3032           <td>)</td>
3033           <td></td><td></td>
3034         </tr>
3035       </table>
3036 </div><div class="memdoc">
3037
3038 <p>Convenience function which performs multiple GPIO IRQ related initializations. </p>
3039 <p >This method is a slightly eclectic mix of initialization, that:</p>
3040 <ul>
3041 <li>Updates whether the specified events for the specified GPIO causes an interrupt on the calling core based on the enable flag.</li>
3042 </ul>
3043 <ul>
3044 <li>Sets the callback handler for the calling core to callback (or clears the handler if the callback is NULL).</li>
3045 </ul>
3046 <ul>
3047 <li>Enables GPIO IRQs on the current core if enabled is true.</li>
3048 </ul>
3049 <p>This method is commonly used to perform a one time setup, and following that any additional IRQs/events are enabled via <a class="el" href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a>. All GPIOs/events added in this way on the same core share the same callback; for multiple independent handlers for different GPIOs you should use <a class="el" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a> and related functions.</p>
3050 <p >This method is equivalent to:</p>
3051 <div class="fragment"><div class="line"><a class="code hl_function" href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a>(gpio, event_mask, enabled);</div>
3052 <div class="line"><a class="code hl_function" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>(callback);</div>
3053 <div class="line"><span class="keywordflow">if</span> (enabled) <a class="code hl_function" href="group__hardware__irq.html#ga7c7167f643c6898b758340ce59d333d9">irq_set_enabled</a>(<a class="code hl_enumvalue" href="group__hardware__irq.html#gga876b9495995a81dff786f07a1975c3b8ae9d0650a36de3bfbad6edc82a613d3c1">IO_IRQ_BANK0</a>, <span class="keyword">true</span>);</div>
3054 <div class="ttc" id="agroup__hardware__gpio_html_ga08b1f920beba446c4d4385de999cf945"><div class="ttname"><a href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a></div><div class="ttdeci">void gpio_set_irq_enabled(uint gpio, uint32_t events, bool enabled)</div><div class="ttdoc">Enable or disable specific interrupt events for specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:186</div></div>
3055 <div class="ttc" id="agroup__hardware__gpio_html_ga37b23dea291af5926735b5e8c87b7dbb"><div class="ttname"><a href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a></div><div class="ttdeci">void gpio_set_irq_callback(gpio_irq_callback_t callback)</div><div class="ttdoc">Set the generic callback used for GPIO IRQ events for the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:208</div></div>
3056 <div class="ttc" id="agroup__hardware__irq_html_ga7c7167f643c6898b758340ce59d333d9"><div class="ttname"><a href="group__hardware__irq.html#ga7c7167f643c6898b758340ce59d333d9">irq_set_enabled</a></div><div class="ttdeci">void irq_set_enabled(uint num, bool enabled)</div><div class="ttdoc">Enable or disable a specific interrupt on the executing core.</div><div class="ttdef"><b>Definition:</b> irq.c:61</div></div>
3057 <div class="ttc" id="agroup__hardware__irq_html_gga876b9495995a81dff786f07a1975c3b8ae9d0650a36de3bfbad6edc82a613d3c1"><div class="ttname"><a href="group__hardware__irq.html#gga876b9495995a81dff786f07a1975c3b8ae9d0650a36de3bfbad6edc82a613d3c1">IO_IRQ_BANK0</a></div><div class="ttdeci">@ IO_IRQ_BANK0</div><div class="ttdoc">Select IO_BANK0's IRQ output.</div><div class="ttdef"><b>Definition:</b> intctrl.h:95</div></div>
3058 </div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>The IO IRQs are independent per-processor. This method affects only the processor that calls the function.</dd></dl>
3059 <dl class="params"><dt>Parameters</dt><dd>
3060   <table class="params">
3061     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
3062     <tr><td class="paramname">event_mask</td><td>Which events will cause an interrupt. See <a class="el" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> for details. </td></tr>
3063     <tr><td class="paramname">enabled</td><td>Enable or disable flag </td></tr>
3064     <tr><td class="paramname">callback</td><td>user function to call on GPIO irq. if NULL, the callback is removed </td></tr>
3065   </table>
3066   </dd>
3067 </dl>
3068
3069 </div>
3070 </div>
3071 <a id="ga9788ec1b8306c6bacfb578f0074eb3ad" name="ga9788ec1b8306c6bacfb578f0074eb3ad"></a>
3072 <h2 class="memtitle"><span class="permalink"><a href="#ga9788ec1b8306c6bacfb578f0074eb3ad">&#9670;&nbsp;</a></span>gpio_set_irqover()</h2>
3073
3074 <div class="memitem">
3075 <div class="memproto">
3076       <table class="memname">
3077         <tr>
3078           <td class="memname">void gpio_set_irqover </td>
3079           <td>(</td>
3080           <td class="paramtype">uint&#160;</td>
3081           <td class="paramname"><em>gpio</em>, </td>
3082         </tr>
3083         <tr>
3084           <td class="paramkey"></td>
3085           <td></td>
3086           <td class="paramtype">uint&#160;</td>
3087           <td class="paramname"><em>value</em>&#160;</td>
3088         </tr>
3089         <tr>
3090           <td></td>
3091           <td>)</td>
3092           <td></td><td></td>
3093         </tr>
3094       </table>
3095 </div><div class="memdoc">
3096
3097 <p>Set GPIO IRQ override. </p>
3098 <p >Optionally invert a GPIO IRQ signal, or drive it high or low</p>
3099 <dl class="params"><dt>Parameters</dt><dd>
3100   <table class="params">
3101     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
3102     <tr><td class="paramname">value</td><td>See <a class="el" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a> </td></tr>
3103   </table>
3104   </dd>
3105 </dl>
3106
3107 </div>
3108 </div>
3109 <a id="gaf3aa12aa4543965e24f52cfa9b529904" name="gaf3aa12aa4543965e24f52cfa9b529904"></a>
3110 <h2 class="memtitle"><span class="permalink"><a href="#gaf3aa12aa4543965e24f52cfa9b529904">&#9670;&nbsp;</a></span>gpio_set_mask()</h2>
3111
3112 <div class="memitem">
3113 <div class="memproto">
3114 <table class="mlabels">
3115   <tr>
3116   <td class="mlabels-left">
3117       <table class="memname">
3118         <tr>
3119           <td class="memname">static void gpio_set_mask </td>
3120           <td>(</td>
3121           <td class="paramtype">uint32_t&#160;</td>
3122           <td class="paramname"><em>mask</em></td><td>)</td>
3123           <td></td>
3124         </tr>
3125       </table>
3126   </td>
3127   <td class="mlabels-right">
3128 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3129   </tr>
3130 </table>
3131 </div><div class="memdoc">
3132
3133 <p>Drive high every GPIO appearing in mask. </p>
3134 <dl class="params"><dt>Parameters</dt><dd>
3135   <table class="params">
3136     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to set </td></tr>
3137   </table>
3138   </dd>
3139 </dl>
3140
3141 </div>
3142 </div>
3143 <a id="ga9eea2536fc6321a238fe6937652c4e9e" name="ga9eea2536fc6321a238fe6937652c4e9e"></a>
3144 <h2 class="memtitle"><span class="permalink"><a href="#ga9eea2536fc6321a238fe6937652c4e9e">&#9670;&nbsp;</a></span>gpio_set_mask64()</h2>
3145
3146 <div class="memitem">
3147 <div class="memproto">
3148 <table class="mlabels">
3149   <tr>
3150   <td class="mlabels-left">
3151       <table class="memname">
3152         <tr>
3153           <td class="memname">static void gpio_set_mask64 </td>
3154           <td>(</td>
3155           <td class="paramtype">uint64_t&#160;</td>
3156           <td class="paramname"><em>mask</em></td><td>)</td>
3157           <td></td>
3158         </tr>
3159       </table>
3160   </td>
3161   <td class="mlabels-right">
3162 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3163   </tr>
3164 </table>
3165 </div><div class="memdoc">
3166
3167 <p>Drive high every GPIO appearing in mask. </p>
3168 <dl class="params"><dt>Parameters</dt><dd>
3169   <table class="params">
3170     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to set </td></tr>
3171   </table>
3172   </dd>
3173 </dl>
3174
3175 </div>
3176 </div>
3177 <a id="ga94edb03754cad21d38ef58bf85c13814" name="ga94edb03754cad21d38ef58bf85c13814"></a>
3178 <h2 class="memtitle"><span class="permalink"><a href="#ga94edb03754cad21d38ef58bf85c13814">&#9670;&nbsp;</a></span>gpio_set_mask_n()</h2>
3179
3180 <div class="memitem">
3181 <div class="memproto">
3182 <table class="mlabels">
3183   <tr>
3184   <td class="mlabels-left">
3185       <table class="memname">
3186         <tr>
3187           <td class="memname">static void gpio_set_mask_n </td>
3188           <td>(</td>
3189           <td class="paramtype">uint&#160;</td>
3190           <td class="paramname"><em>n</em>, </td>
3191         </tr>
3192         <tr>
3193           <td class="paramkey"></td>
3194           <td></td>
3195           <td class="paramtype">uint32_t&#160;</td>
3196           <td class="paramname"><em>mask</em>&#160;</td>
3197         </tr>
3198         <tr>
3199           <td></td>
3200           <td>)</td>
3201           <td></td><td></td>
3202         </tr>
3203       </table>
3204   </td>
3205   <td class="mlabels-right">
3206 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3207   </tr>
3208 </table>
3209 </div><div class="memdoc">
3210
3211 <p>Drive high every GPIO appearing in mask. </p>
3212 <dl class="params"><dt>Parameters</dt><dd>
3213   <table class="params">
3214     <tr><td class="paramname">n</td><td>the base GPIO index of the mask to update. n == 0 means 0-&gt;31, n == 1 mean 32-&gt;63 etc. </td></tr>
3215     <tr><td class="paramname">mask</td><td>Bitmask of 32 GPIO values to set </td></tr>
3216   </table>
3217   </dd>
3218 </dl>
3219
3220 </div>
3221 </div>
3222 <a id="ga250e767769daabb71b5ea8cab49b4463" name="ga250e767769daabb71b5ea8cab49b4463"></a>
3223 <h2 class="memtitle"><span class="permalink"><a href="#ga250e767769daabb71b5ea8cab49b4463">&#9670;&nbsp;</a></span>gpio_set_oeover()</h2>
3224
3225 <div class="memitem">
3226 <div class="memproto">
3227       <table class="memname">
3228         <tr>
3229           <td class="memname">void gpio_set_oeover </td>
3230           <td>(</td>
3231           <td class="paramtype">uint&#160;</td>
3232           <td class="paramname"><em>gpio</em>, </td>
3233         </tr>
3234         <tr>
3235           <td class="paramkey"></td>
3236           <td></td>
3237           <td class="paramtype">uint&#160;</td>
3238           <td class="paramname"><em>value</em>&#160;</td>
3239         </tr>
3240         <tr>
3241           <td></td>
3242           <td>)</td>
3243           <td></td><td></td>
3244         </tr>
3245       </table>
3246 </div><div class="memdoc">
3247
3248 <p>Select GPIO output enable override. </p>
3249 <dl class="params"><dt>Parameters</dt><dd>
3250   <table class="params">
3251     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
3252     <tr><td class="paramname">value</td><td>See <a class="el" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a> </td></tr>
3253   </table>
3254   </dd>
3255 </dl>
3256
3257 </div>
3258 </div>
3259 <a id="ga829129eed5d42f3455e9da339219d814" name="ga829129eed5d42f3455e9da339219d814"></a>
3260 <h2 class="memtitle"><span class="permalink"><a href="#ga829129eed5d42f3455e9da339219d814">&#9670;&nbsp;</a></span>gpio_set_outover()</h2>
3261
3262 <div class="memitem">
3263 <div class="memproto">
3264       <table class="memname">
3265         <tr>
3266           <td class="memname">void gpio_set_outover </td>
3267           <td>(</td>
3268           <td class="paramtype">uint&#160;</td>
3269           <td class="paramname"><em>gpio</em>, </td>
3270         </tr>
3271         <tr>
3272           <td class="paramkey"></td>
3273           <td></td>
3274           <td class="paramtype">uint&#160;</td>
3275           <td class="paramname"><em>value</em>&#160;</td>
3276         </tr>
3277         <tr>
3278           <td></td>
3279           <td>)</td>
3280           <td></td><td></td>
3281         </tr>
3282       </table>
3283 </div><div class="memdoc">
3284
3285 <p>Set GPIO output override. </p>
3286 <dl class="params"><dt>Parameters</dt><dd>
3287   <table class="params">
3288     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
3289     <tr><td class="paramname">value</td><td>See <a class="el" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a> </td></tr>
3290   </table>
3291   </dd>
3292 </dl>
3293
3294 </div>
3295 </div>
3296 <a id="gab6bf9552da32b3dd0a5d0db45d8374fc" name="gab6bf9552da32b3dd0a5d0db45d8374fc"></a>
3297 <h2 class="memtitle"><span class="permalink"><a href="#gab6bf9552da32b3dd0a5d0db45d8374fc">&#9670;&nbsp;</a></span>gpio_set_pulls()</h2>
3298
3299 <div class="memitem">
3300 <div class="memproto">
3301       <table class="memname">
3302         <tr>
3303           <td class="memname">void gpio_set_pulls </td>
3304           <td>(</td>
3305           <td class="paramtype">uint&#160;</td>
3306           <td class="paramname"><em>gpio</em>, </td>
3307         </tr>
3308         <tr>
3309           <td class="paramkey"></td>
3310           <td></td>
3311           <td class="paramtype">bool&#160;</td>
3312           <td class="paramname"><em>up</em>, </td>
3313         </tr>
3314         <tr>
3315           <td class="paramkey"></td>
3316           <td></td>
3317           <td class="paramtype">bool&#160;</td>
3318           <td class="paramname"><em>down</em>&#160;</td>
3319         </tr>
3320         <tr>
3321           <td></td>
3322           <td>)</td>
3323           <td></td><td></td>
3324         </tr>
3325       </table>
3326 </div><div class="memdoc">
3327
3328 <p>Select up and down pulls on specific GPIO. </p>
3329 <dl class="params"><dt>Parameters</dt><dd>
3330   <table class="params">
3331     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
3332     <tr><td class="paramname">up</td><td>If true set a pull up on the GPIO </td></tr>
3333     <tr><td class="paramname">down</td><td>If true set a pull down on the GPIO</td></tr>
3334   </table>
3335   </dd>
3336 </dl>
3337 <dl class="section note"><dt>Note</dt><dd>On the RP2040, setting both pulls enables a "bus keep" function, i.e. a weak pull to whatever is current high/low state of GPIO. </dd></dl>
3338
3339 </div>
3340 </div>
3341 <a id="gaf1d12efbed0809650d98fe9a424876c8" name="gaf1d12efbed0809650d98fe9a424876c8"></a>
3342 <h2 class="memtitle"><span class="permalink"><a href="#gaf1d12efbed0809650d98fe9a424876c8">&#9670;&nbsp;</a></span>gpio_set_slew_rate()</h2>
3343
3344 <div class="memitem">
3345 <div class="memproto">
3346       <table class="memname">
3347         <tr>
3348           <td class="memname">void gpio_set_slew_rate </td>
3349           <td>(</td>
3350           <td class="paramtype">uint&#160;</td>
3351           <td class="paramname"><em>gpio</em>, </td>
3352         </tr>
3353         <tr>
3354           <td class="paramkey"></td>
3355           <td></td>
3356           <td class="paramtype">enum <a class="el" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a>&#160;</td>
3357           <td class="paramname"><em>slew</em>&#160;</td>
3358         </tr>
3359         <tr>
3360           <td></td>
3361           <td>)</td>
3362           <td></td><td></td>
3363         </tr>
3364       </table>
3365 </div><div class="memdoc">
3366
3367 <p>Set slew rate for a specified GPIO. </p>
3368 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49" title="Determine current slew rate for a specified GPIO.">gpio_get_slew_rate</a> </dd></dl>
3369 <dl class="params"><dt>Parameters</dt><dd>
3370   <table class="params">
3371     <tr><td class="paramname">gpio</td><td>GPIO number </td></tr>
3372     <tr><td class="paramname">slew</td><td>GPIO output slew rate </td></tr>
3373   </table>
3374   </dd>
3375 </dl>
3376
3377 </div>
3378 </div>
3379 <a id="ga64de3fa94def1d5e8c87f419f25ea7fd" name="ga64de3fa94def1d5e8c87f419f25ea7fd"></a>
3380 <h2 class="memtitle"><span class="permalink"><a href="#ga64de3fa94def1d5e8c87f419f25ea7fd">&#9670;&nbsp;</a></span>gpio_xor_mask()</h2>
3381
3382 <div class="memitem">
3383 <div class="memproto">
3384 <table class="mlabels">
3385   <tr>
3386   <td class="mlabels-left">
3387       <table class="memname">
3388         <tr>
3389           <td class="memname">static void gpio_xor_mask </td>
3390           <td>(</td>
3391           <td class="paramtype">uint32_t&#160;</td>
3392           <td class="paramname"><em>mask</em></td><td>)</td>
3393           <td></td>
3394         </tr>
3395       </table>
3396   </td>
3397   <td class="mlabels-right">
3398 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3399   </tr>
3400 </table>
3401 </div><div class="memdoc">
3402
3403 <p>Toggle every GPIO appearing in mask. </p>
3404 <dl class="params"><dt>Parameters</dt><dd>
3405   <table class="params">
3406     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to toggle </td></tr>
3407   </table>
3408   </dd>
3409 </dl>
3410
3411 </div>
3412 </div>
3413 <a id="gab777c66bd5b766a8552ed5625197b119" name="gab777c66bd5b766a8552ed5625197b119"></a>
3414 <h2 class="memtitle"><span class="permalink"><a href="#gab777c66bd5b766a8552ed5625197b119">&#9670;&nbsp;</a></span>gpio_xor_mask64()</h2>
3415
3416 <div class="memitem">
3417 <div class="memproto">
3418 <table class="mlabels">
3419   <tr>
3420   <td class="mlabels-left">
3421       <table class="memname">
3422         <tr>
3423           <td class="memname">static void gpio_xor_mask64 </td>
3424           <td>(</td>
3425           <td class="paramtype">uint64_t&#160;</td>
3426           <td class="paramname"><em>mask</em></td><td>)</td>
3427           <td></td>
3428         </tr>
3429       </table>
3430   </td>
3431   <td class="mlabels-right">
3432 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3433   </tr>
3434 </table>
3435 </div><div class="memdoc">
3436
3437 <p>Toggle every GPIO appearing in mask. </p>
3438 <dl class="params"><dt>Parameters</dt><dd>
3439   <table class="params">
3440     <tr><td class="paramname">mask</td><td>Bitmask of GPIO values to toggle </td></tr>
3441   </table>
3442   </dd>
3443 </dl>
3444
3445 </div>
3446 </div>
3447 <a id="ga72a5e5a6ac1a108887229af522e65a06" name="ga72a5e5a6ac1a108887229af522e65a06"></a>
3448 <h2 class="memtitle"><span class="permalink"><a href="#ga72a5e5a6ac1a108887229af522e65a06">&#9670;&nbsp;</a></span>gpio_xor_mask_n()</h2>
3449
3450 <div class="memitem">
3451 <div class="memproto">
3452 <table class="mlabels">
3453   <tr>
3454   <td class="mlabels-left">
3455       <table class="memname">
3456         <tr>
3457           <td class="memname">static void gpio_xor_mask_n </td>
3458           <td>(</td>
3459           <td class="paramtype">uint&#160;</td>
3460           <td class="paramname"><em>n</em>, </td>
3461         </tr>
3462         <tr>
3463           <td class="paramkey"></td>
3464           <td></td>
3465           <td class="paramtype">uint32_t&#160;</td>
3466           <td class="paramname"><em>mask</em>&#160;</td>
3467         </tr>
3468         <tr>
3469           <td></td>
3470           <td>)</td>
3471           <td></td><td></td>
3472         </tr>
3473       </table>
3474   </td>
3475   <td class="mlabels-right">
3476 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
3477   </tr>
3478 </table>
3479 </div><div class="memdoc">
3480
3481 <p>Toggle every GPIO appearing in mask. </p>
3482 <dl class="params"><dt>Parameters</dt><dd>
3483   <table class="params">
3484     <tr><td class="paramname">n</td><td>the base GPIO index of the mask to update. n == 0 means 0-&gt;31, n == 1 mean 32-&gt;63 etc. </td></tr>
3485     <tr><td class="paramname">mask</td><td>Bitmask of 32 GPIO values to toggle </td></tr>
3486   </table>
3487   </dd>
3488 </dl>
3489
3490 </div>
3491 </div>
3492 </div><!-- contents -->
3493 </div><!-- doc-content -->
3494
3495         <script src="main.js"></script>
3496 </body>
3497 </html>
This page took 0.256002 seconds and 4 git commands to generate.