<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>Raspberry Pi Pico SDK: hardware_gpio/include/hardware/gpio.h Source File</title>
+ <title>Raspberry Pi Pico SDK: include/hardware/gpio.h Source File</title>
<!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<div class="logo">
<a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
<span style="display: inline-block; margin-top: 10px;">
- v1.5.1
+ v2.0.0
</span>
</div>
<div class="navigation-footer">
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include "<a class="code" href="pico_8h.html">pico.h</a>"</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include "hardware/structs/sio.h"</span></div>
-<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include "hardware/structs/padsbank0.h"</span></div>
-<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include "hardware/structs/iobank0.h"</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include "hardware/structs/pads_bank0.h"</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include "hardware/structs/io_bank0.h"</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include "<a class="code" href="irq_8h.html">hardware/irq.h</a>"</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
-<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
-<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
-<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">// PICO_CONFIG: PARAM_ASSERTIONS_ENABLED_GPIO, Enable/disable assertions in the GPIO module, type=bool, default=0, group=hardware_gpio</span></div>
-<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#ifndef PARAM_ASSERTIONS_ENABLED_GPIO</span></div>
-<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#define PARAM_ASSERTIONS_ENABLED_GPIO 0</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">// PICO_CONFIG: PICO_USE_GPIO_COPROCESSOR, Enable/disable use of the GPIO coprocessor for GPIO access, type=bool, default=1, group=hardware_gpio</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#if !defined(PICO_USE_GPIO_COPROCESSOR) && HAS_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#define PICO_USE_GPIO_COPROCESSOR 1</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include "hardware/gpio_coproc.h"</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
-<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2af81373f9f5764ac1a5bd6097477530"> 90</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga2af81373f9f5764ac1a5bd6097477530">gpio_function</a> {</div>
-<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> GPIO_FUNC_XIP = 0,</div>
-<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> GPIO_FUNC_SPI = 1,</div>
-<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> GPIO_FUNC_UART = 2,</div>
-<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> GPIO_FUNC_I2C = 3,</div>
-<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> GPIO_FUNC_PWM = 4,</div>
-<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> GPIO_FUNC_SIO = 5,</div>
-<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> GPIO_FUNC_PIO0 = 6,</div>
-<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> GPIO_FUNC_PIO1 = 7,</div>
-<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> GPIO_FUNC_GPCK = 8,</div>
-<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> GPIO_FUNC_USB = 9,</div>
-<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> GPIO_FUNC_NULL = 0x1f,</div>
-<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span>};</div>
-<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
-<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor">#define GPIO_OUT 1</span></div>
-<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor">#define GPIO_IN 0</span></div>
-<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
-<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f"> 122</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> {</div>
-<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> GPIO_IRQ_LEVEL_LOW = 0x1u,</div>
-<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> GPIO_IRQ_LEVEL_HIGH = 0x2u,</div>
-<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> GPIO_IRQ_EDGE_FALL = 0x4u,</div>
-<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> GPIO_IRQ_EDGE_RISE = 0x8u,</div>
-<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>};</div>
-<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
-<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3"> 137</a></span><span class="keyword">typedef</span> void (*<a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a>)(uint gpio, uint32_t event_mask);</div>
-<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
-<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990"> 139</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a> {</div>
-<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130"> 140</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130">GPIO_OVERRIDE_NORMAL</a> = 0, </div>
-<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5"> 141</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5">GPIO_OVERRIDE_INVERT</a> = 1, </div>
-<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab"> 142</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab">GPIO_OVERRIDE_LOW</a> = 2, </div>
-<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4"> 143</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4">GPIO_OVERRIDE_HIGH</a> = 3, </div>
-<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span>};</div>
-<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
-<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229"> 153</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> {</div>
-<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634"> 154</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">GPIO_SLEW_RATE_SLOW</a> = 0, </div>
-<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">GPIO_SLEW_RATE_FAST</a> = 1 </div>
-<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade"> 156</a></span>};</div>
-<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
-<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a"> 164</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> {</div>
-<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295"> 165</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">GPIO_DRIVE_STRENGTH_2MA</a> = 0, </div>
-<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6"> 166</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">GPIO_DRIVE_STRENGTH_4MA</a> = 1, </div>
-<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d"> 167</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">GPIO_DRIVE_STRENGTH_8MA</a> = 2, </div>
-<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">GPIO_DRIVE_STRENGTH_12MA</a> = 3 </div>
-<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716"> 169</a></span>};</div>
-<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
-<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> check_gpio_param(__unused uint gpio) {</div>
-<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> invalid_params_if(GPIO, gpio >= NUM_BANK0_GPIOS);</div>
-<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span>}</div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">// PICO_CONFIG: PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO, Enable/disable assertions in the hardware_gpio module, type=bool, default=0, group=hardware_gpio</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#ifndef PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#ifdef PARAM_ASSERTIONS_ENABLED_GPIO </span><span class="comment">// backwards compatibility with SDK < 2.0.0</span></div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#define PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO PARAM_ASSERTIONS_ENABLED_GPIO</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="preprocessor">#define PARAM_ASSERTIONS_ENABLED_HARDWARE_GPIO 0</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="gpio_8h.html#a27085b238a536b1a919497a563caf666"> 170</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="gpio_8h.html#a27085b238a536b1a919497a563caf666">gpio_dir</a> {</div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531"> 171</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531">GPIO_OUT</a> = 1u, </div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155"> 172</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155">GPIO_IN</a> = 0u, </div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span>};</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
-<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment">// Pad Controls + IO Muxing</span></div>
-<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment">// Declarations for gpio.c</span></div>
-<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
-<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaacde9174277ca40aa7b6fdd341bb2b8c">gpio_set_function</a>(uint gpio, <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga2af81373f9f5764ac1a5bd6097477530">gpio_function</a> fn);</div>
-<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
-<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga2af81373f9f5764ac1a5bd6097477530">gpio_function</a> <a class="code hl_function" href="group__hardware__gpio.html#gac41d97649605d14d3e176e72d432c01a">gpio_get_function</a>(uint gpio);</div>
-<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> </div>
-<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(uint gpio, <span class="keywordtype">bool</span> up, <span class="keywordtype">bool</span> down);</div>
-<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
-<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da"> 213</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">gpio_pull_up</a>(uint gpio) {</div>
-<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">true</span>, <span class="keyword">false</span>);</div>
-<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span>}</div>
-<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
-<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6"> 223</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">gpio_is_pulled_up</a>(uint gpio) {</div>
-<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">return</span> (padsbank0_hw->io[gpio] & PADS_BANK0_GPIO0_PUE_BITS) != 0;</div>
-<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span>}</div>
-<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
-<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f"> 232</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">gpio_pull_down</a>(uint gpio) {</div>
-<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
-<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span>}</div>
-<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div>
-<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b"> 242</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">gpio_is_pulled_down</a>(uint gpio) {</div>
-<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">return</span> (padsbank0_hw->io[gpio] & PADS_BANK0_GPIO0_PDE_BITS) != 0;</div>
-<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span>}</div>
-<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
-<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792"> 251</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">gpio_disable_pulls</a>(uint gpio) {</div>
-<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">false</span>, <span class="keyword">false</span>);</div>
-<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span>}</div>
-<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
-<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">gpio_set_irqover</a>(uint gpio, uint value);</div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f"> 190</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a> {</div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136"> 191</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136">GPIO_IRQ_LEVEL_LOW</a> = 0x1u, </div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de"> 192</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de">GPIO_IRQ_LEVEL_HIGH</a> = 0x2u, </div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59"> 193</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59">GPIO_IRQ_EDGE_FALL</a> = 0x4u, </div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e"> 194</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e">GPIO_IRQ_EDGE_RISE</a> = 0x8u, </div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span>};</div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3"> 205</a></span><span class="keyword">typedef</span> void (*<a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a>)(uint gpio, uint32_t event_mask);</div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990"> 207</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a> {</div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130"> 208</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130">GPIO_OVERRIDE_NORMAL</a> = 0, </div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5"> 209</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5">GPIO_OVERRIDE_INVERT</a> = 1, </div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab"> 210</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab">GPIO_OVERRIDE_LOW</a> = 2, </div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"><a class="line" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4"> 211</a></span> <a class="code hl_enumvalue" href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4">GPIO_OVERRIDE_HIGH</a> = 3, </div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span>};</div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229"> 221</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> {</div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634"> 222</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">GPIO_SLEW_RATE_SLOW</a> = 0, </div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">GPIO_SLEW_RATE_FAST</a> = 1 </div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade"> 224</a></span>};</div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a"> 232</a></span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> {</div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295"> 233</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">GPIO_DRIVE_STRENGTH_2MA</a> = 0, </div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6"> 234</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">GPIO_DRIVE_STRENGTH_4MA</a> = 1, </div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d"> 235</a></span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">GPIO_DRIVE_STRENGTH_8MA</a> = 2, </div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <a class="code hl_enumvalue" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">GPIO_DRIVE_STRENGTH_12MA</a> = 3 </div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716"> 237</a></span>};</div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> check_gpio_param(__unused uint gpio) {</div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> invalid_params_if(HARDWARE_GPIO, gpio >= NUM_BANK0_GPIOS);</div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>}</div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span><span class="comment">// Pad Controls + IO Muxing</span></div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="comment">// Declarations for gpio.c</span></div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn);</div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga32c1aae77b4b3bf42e9ae554d16284ab">gpio_set_function_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
-<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">gpio_set_outover</a>(uint gpio, uint value);</div>
-<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
-<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">gpio_set_inover</a>(uint gpio, uint value);</div>
-<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
-<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">gpio_set_oeover</a>(uint gpio, uint value);</div>
-<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> </div>
-<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">gpio_set_input_enabled</a>(uint gpio, <span class="keywordtype">bool</span> enabled);</div>
-<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div>
-<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">gpio_set_input_hysteresis_enabled</a>(uint gpio, <span class="keywordtype">bool</span> enabled);</div>
-<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> </div>
-<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">gpio_is_input_hysteresis_enabled</a>(uint gpio);</div>
-<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> </div>
-<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
-<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">gpio_set_slew_rate</a>(uint gpio, <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> slew);</div>
-<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> </div>
-<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> <a class="code hl_function" href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">gpio_get_slew_rate</a>(uint gpio);</div>
-<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
-<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">gpio_set_drive_strength</a>(uint gpio, <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> drive);</div>
-<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> </div>
-<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> <a class="code hl_function" href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">gpio_get_drive_strength</a>(uint gpio);</div>
-<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> </div>
-<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga83093178ba0ad7d711bff47fc90d361b">gpio_set_function_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> fn);</div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span><a class="code hl_typedef" href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a> <a class="code hl_function" href="group__hardware__gpio.html#ga24dabfcb46dde4daa8938b36df130c31">gpio_get_function</a>(uint gpio);</div>
+<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> </div>
+<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(uint gpio, <span class="keywordtype">bool</span> up, <span class="keywordtype">bool</span> down);</div>
+<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da"> 299</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">gpio_pull_up</a>(uint gpio) {</div>
+<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">true</span>, <span class="keyword">false</span>);</div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span>}</div>
+<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
+<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6"> 309</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">gpio_is_pulled_up</a>(uint gpio) {</div>
+<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">return</span> (pads_bank0_hw->io[gpio] & PADS_BANK0_GPIO0_PUE_BITS) != 0;</div>
+<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span>}</div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> </div>
+<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f"> 318</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">gpio_pull_down</a>(uint gpio) {</div>
+<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">false</span>, <span class="keyword">true</span>);</div>
+<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span>}</div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
+<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b"> 328</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">gpio_is_pulled_down</a>(uint gpio) {</div>
+<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">return</span> (pads_bank0_hw->io[gpio] & PADS_BANK0_GPIO0_PDE_BITS) != 0;</div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span>}</div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> </div>
+<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792"> 337</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">gpio_disable_pulls</a>(uint gpio) {</div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a>(gpio, <span class="keyword">false</span>, <span class="keyword">false</span>);</div>
+<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span>}</div>
+<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> </div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">gpio_set_irqover</a>(uint gpio, uint value);</div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">gpio_set_outover</a>(uint gpio, uint value);</div>
+<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> </div>
+<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">gpio_set_inover</a>(uint gpio, uint value);</div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> </div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">gpio_set_oeover</a>(uint gpio, uint value);</div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">gpio_set_input_enabled</a>(uint gpio, <span class="keywordtype">bool</span> enabled);</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
-<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="comment">// PICO_CONFIG: GPIO_IRQ_CALLBACK_ORDER_PRIORITY, the irq priority order of the default IRQ callback, min=0, max=255, default=PICO_SHARED_IRQ_HANDLER_LOWEST_ORDER_PRIORITY, group=hardware_gpio</span></div>
-<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span><span class="preprocessor">#ifndef GPIO_IRQ_CALLBACK_ORDER_PRIORITY</span></div>
-<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="preprocessor">#define GPIO_IRQ_CALLBACK_ORDER_PRIORITY PICO_SHARED_IRQ_HANDLER_LOWEST_ORDER_PRIORITY</span></div>
-<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> </div>
-<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span><span class="comment">// PICO_CONFIG: GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY, the irq priority order of raw IRQ handlers if the priortiy is not specified, min=0, max=255, default=PICO_SHARED_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY, group=hardware_gpio</span></div>
-<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span><span class="preprocessor">#ifndef GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY</span></div>
-<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span><span class="preprocessor">#define GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY PICO_SHARED_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY</span></div>
-<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
-<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>(<a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback);</div>
-<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
-<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled, <a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback);</div>
-<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
-<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">gpio_set_dormant_irq_enabled</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled);</div>
-<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> </div>
-<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583"> 461</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(uint gpio) {</div>
-<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> check_gpio_param(gpio);</div>
-<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> <a class="code hl_struct" href="structio__irq__ctrl__hw__t.html">io_irq_ctrl_hw_t</a> *irq_ctrl_base = <a class="code hl_function" href="group__pico__platform.html#ga974b4945ae0ac8892717cb5f05e83c53">get_core_num</a>() ?</div>
-<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> &iobank0_hw->proc1_irq_ctrl : &iobank0_hw->proc0_irq_ctrl;</div>
-<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> io_ro_32 *status_reg = &irq_ctrl_base->ints[gpio >> 3u];</div>
-<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <span class="keywordflow">return</span> (*status_reg >> (4 * (gpio & 7u))) & 0xfu;</div>
-<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span>}</div>
-<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> </div>
-<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(uint gpio, uint32_t event_mask);</div>
-<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> </div>
-<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga213978aec060f04ce3a674849c999b45">gpio_add_raw_irq_handler_with_order_priority_masked</a>(uint gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority);</div>
-<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
-<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446"> 545</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">gpio_add_raw_irq_handler_with_order_priority</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority) {</div>
-<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> check_gpio_param(gpio);</div>
-<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <a class="code hl_function" href="group__hardware__gpio.html#ga213978aec060f04ce3a674849c999b45">gpio_add_raw_irq_handler_with_order_priority_masked</a>(1u << gpio, handler, order_priority);</div>
-<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span>}</div>
-<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> </div>
-<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga37ab6047475687869bd84d90e183e09f">gpio_add_raw_irq_handler_masked</a>(uint gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
-<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
-<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419"> 604</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler) {</div>
-<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> check_gpio_param(gpio);</div>
-<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <a class="code hl_function" href="group__hardware__gpio.html#ga37ab6047475687869bd84d90e183e09f">gpio_add_raw_irq_handler_masked</a>(1u << gpio, handler);</div>
-<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span>}</div>
-<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> </div>
-<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gafb77622d0cd387bea253f10d8165c45e">gpio_remove_raw_irq_handler_masked</a>(uint gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
-<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> </div>
-<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243"> 633</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">gpio_remove_raw_irq_handler</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler) {</div>
-<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> check_gpio_param(gpio);</div>
-<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <a class="code hl_function" href="group__hardware__gpio.html#gafb77622d0cd387bea253f10d8165c45e">gpio_remove_raw_irq_handler_masked</a>(1u << gpio, handler);</div>
-<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span>}</div>
-<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> </div>
-<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">gpio_init</a>(uint gpio);</div>
-<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> </div>
-<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">gpio_deinit</a>(uint gpio);</div>
-<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> </div>
-<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">gpio_init_mask</a>(uint gpio_mask);</div>
-<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span><span class="comment">// Input</span></div>
-<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> </div>
-<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73"> 674</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">gpio_get</a>(uint gpio) {</div>
-<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> <span class="keywordflow">return</span> !!((1ul << gpio) & sio_hw->gpio_in);</div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">gpio_set_input_hysteresis_enabled</a>(uint gpio, <span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> </div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span><span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">gpio_is_input_hysteresis_enabled</a>(uint gpio);</div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> </div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">gpio_set_slew_rate</a>(uint gpio, <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> slew);</div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> </div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a> <a class="code hl_function" href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">gpio_get_slew_rate</a>(uint gpio);</div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">gpio_set_drive_strength</a>(uint gpio, <span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> drive);</div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> </div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span><span class="keyword">enum</span> <a class="code hl_enumeration" href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a> <a class="code hl_function" href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">gpio_get_drive_strength</a>(uint gpio);</div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> </div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga08b1f920beba446c4d4385de999cf945">gpio_set_irq_enabled</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> </div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span><span class="comment">// PICO_CONFIG: GPIO_IRQ_CALLBACK_ORDER_PRIORITY, IRQ priority order of the default IRQ callback, min=0, max=255, default=PICO_SHARED_IRQ_HANDLER_LOWEST_ORDER_PRIORITY, group=hardware_gpio</span></div>
+<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span><span class="preprocessor">#ifndef GPIO_IRQ_CALLBACK_ORDER_PRIORITY</span></div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span><span class="preprocessor">#define GPIO_IRQ_CALLBACK_ORDER_PRIORITY PICO_SHARED_IRQ_HANDLER_LOWEST_ORDER_PRIORITY</span></div>
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> </div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span><span class="comment">// PICO_CONFIG: GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY, IRQ priority order of raw IRQ handlers if the priority is not specified, min=0, max=255, default=PICO_SHARED_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY, group=hardware_gpio</span></div>
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span><span class="preprocessor">#ifndef GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY</span></div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span><span class="preprocessor">#define GPIO_RAW_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY PICO_SHARED_IRQ_HANDLER_DEFAULT_ORDER_PRIORITY</span></div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> </div>
+<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga37b23dea291af5926735b5e8c87b7dbb">gpio_set_irq_callback</a>(<a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback);</div>
+<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> </div>
+<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled, <a class="code hl_typedef" href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a> callback);</div>
+<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> </div>
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">gpio_set_dormant_irq_enabled</a>(uint gpio, uint32_t event_mask, <span class="keywordtype">bool</span> enabled);</div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583"> 546</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group__hardware__gpio.html#gaf2d1208ba7e3b02b23e7385350182583">gpio_get_irq_event_mask</a>(uint gpio) {</div>
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> check_gpio_param(gpio);</div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> <a class="code hl_struct" href="structio__bank0__irq__ctrl__hw__t.html">io_bank0_irq_ctrl_hw_t</a> *irq_ctrl_base = <a class="code hl_function" href="group__pico__platform.html#ga58434ad816f519308ee02c639b7965bc">get_core_num</a>() ?</div>
+<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> &io_bank0_hw->proc1_irq_ctrl : &io_bank0_hw->proc0_irq_ctrl;</div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> io_ro_32 *status_reg = &irq_ctrl_base->ints[gpio >> 3u];</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">return</span> (*status_reg >> (4 * (gpio & 7u))) & 0xfu;</div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span>}</div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> </div>
+<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga091c148a5cfaf2b55e716b6effef6360">gpio_acknowledge_irq</a>(uint gpio, uint32_t event_mask);</div>
+<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> </div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">gpio_add_raw_irq_handler_with_order_priority_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority);</div>
+<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> </div>
+<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">gpio_add_raw_irq_handler_with_order_priority_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority);</div>
+<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> </div>
+<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446"> 669</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">gpio_add_raw_irq_handler_with_order_priority</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler, uint8_t order_priority) {</div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> check_gpio_param(gpio);</div>
+<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span><span class="preprocessor">#if NUM_BANK0_GPIOS > 32</span></div>
+<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <a class="code hl_function" href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">gpio_add_raw_irq_handler_with_order_priority_masked64</a>(1ull << gpio, handler, order_priority);</div>
+<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">gpio_add_raw_irq_handler_with_order_priority_masked</a>(1u << gpio, handler, order_priority);</div>
+<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span>}</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> </div>
-<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4"> 683</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">gpio_get_all</a>(<span class="keywordtype">void</span>) {</div>
-<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="keywordflow">return</span> sio_hw->gpio_in;</div>
-<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span>}</div>
-<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> </div>
-<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span><span class="comment">// Output</span></div>
-<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> </div>
-<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904"> 696</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(uint32_t mask) {</div>
-<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> sio_hw->gpio_set = mask;</div>
-<div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span>}</div>
-<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span> </div>
-<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe"> 705</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(uint32_t mask) {</div>
-<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> sio_hw->gpio_clr = mask;</div>
-<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span>}</div>
-<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> </div>
-<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd"> 714</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a>(uint32_t mask) {</div>
-<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> sio_hw->gpio_togl = mask;</div>
-<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span>}</div>
-<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> </div>
-<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302"> 729</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a>(uint32_t mask, uint32_t value) {</div>
-<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> sio_hw->gpio_togl = (sio_hw->gpio_out ^ value) & mask;</div>
-<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span>}</div>
-<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> </div>
-<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8"> 738</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">gpio_put_all</a>(uint32_t value) {</div>
-<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> sio_hw->gpio_out = value;</div>
-<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span>}</div>
+<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">gpio_add_raw_irq_handler_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
+<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> </div>
+<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">gpio_add_raw_irq_handler_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> </div>
-<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab"> 748</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">gpio_put</a>(uint gpio, <span class="keywordtype">bool</span> value) {</div>
-<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> uint32_t mask = 1ul << gpio;</div>
-<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> <span class="keywordflow">if</span> (value)</div>
-<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(mask);</div>
-<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <span class="keywordflow">else</span></div>
-<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(mask);</div>
-<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span>}</div>
-<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> </div>
-<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef"> 772</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">gpio_get_out_level</a>(uint gpio) {</div>
-<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <span class="keywordflow">return</span> !!(sio_hw->gpio_out & (1u << gpio));</div>
-<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span>}</div>
-<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> </div>
-<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span><span class="comment">// Direction</span></div>
-<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
-<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> </div>
-<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969"> 787</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a>(uint32_t mask) {</div>
-<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> sio_hw->gpio_oe_set = mask;</div>
-<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span>}</div>
-<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> </div>
-<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53"> 796</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a>(uint32_t mask) {</div>
-<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> sio_hw->gpio_oe_clr = mask;</div>
-<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span>}</div>
-<div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span> </div>
-<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2"> 811</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">gpio_set_dir_masked</a>(uint32_t mask, uint32_t value) {</div>
-<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> sio_hw->gpio_oe_togl = (sio_hw->gpio_oe ^ value) & mask;</div>
-<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span>}</div>
-<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> </div>
-<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578"> 820</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">gpio_set_dir_all_bits</a>(uint32_t values) {</div>
-<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> sio_hw->gpio_oe = values;</div>
-<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span>}</div>
-<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> </div>
-<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681"> 830</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">gpio_set_dir</a>(uint gpio, <span class="keywordtype">bool</span> out) {</div>
-<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> uint32_t mask = 1ul << gpio;</div>
-<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <span class="keywordflow">if</span> (out)</div>
-<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a>(mask);</div>
-<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> <span class="keywordflow">else</span></div>
-<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> <a class="code hl_function" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a>(mask);</div>
-<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span>}</div>
-<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> </div>
-<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc"> 844</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a>(uint gpio) {</div>
-<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="keywordflow">return</span> !!(sio_hw->gpio_oe & (1u << (gpio)));</div>
-<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span>}</div>
-<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> </div>
-<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed"> 854</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint <a class="code hl_function" href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">gpio_get_dir</a>(uint gpio) {</div>
-<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a>(gpio); <span class="comment">// note GPIO_OUT is 1/true and GPIO_IN is 0/false anyway</span></div>
-<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span>}</div>
-<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> </div>
-<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span><span class="keyword">extern</span> <span class="keywordtype">void</span> gpio_debug_pins_init(<span class="keywordtype">void</span>);</div>
-<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> </div>
-<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span><span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span>}</div>
-<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> </div>
-<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> </div>
-<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span><span class="comment">// PICO_CONFIG: PICO_DEBUG_PIN_BASE, First pin to use for debug output (if enabled), min=0, max=28, default=19, group=hardware_gpio</span></div>
-<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span><span class="preprocessor">#ifndef PICO_DEBUG_PIN_BASE</span></div>
-<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span><span class="preprocessor">#define PICO_DEBUG_PIN_BASE 19u</span></div>
+<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419"> 768</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler) {</div>
+<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> check_gpio_param(gpio);</div>
+<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span><span class="preprocessor">#if NUM_BANK0_GPIOS > 32</span></div>
+<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> <a class="code hl_function" href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">gpio_add_raw_irq_handler_masked64</a>(1ull << gpio, handler);</div>
+<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">gpio_add_raw_irq_handler_masked</a>(1u << gpio, handler);</div>
+<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span>}</div>
+<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> </div>
+<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">gpio_remove_raw_irq_handler_masked</a>(uint32_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
+<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> </div>
+<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">gpio_remove_raw_irq_handler_masked64</a>(uint64_t gpio_mask, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler);</div>
+<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> </div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243"> 814</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">gpio_remove_raw_irq_handler</a>(uint gpio, <a class="code hl_typedef" href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a> handler) {</div>
+<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> check_gpio_param(gpio);</div>
+<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span><span class="preprocessor">#if NUM_BANK0_GPIOS > 32</span></div>
+<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">gpio_remove_raw_irq_handler_masked64</a>(1ull << gpio, handler);</div>
+<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> <a class="code hl_function" href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">gpio_remove_raw_irq_handler_masked</a>(1u << gpio, handler);</div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span>}</div>
+<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> </div>
+<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">gpio_init</a>(uint gpio);</div>
+<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> </div>
+<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">gpio_deinit</a>(uint gpio);</div>
+<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> </div>
+<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span><span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">gpio_init_mask</a>(uint gpio_mask);</div>
+<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span><span class="comment">// Input</span></div>
+<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> </div>
+<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73"> 859</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">gpio_get</a>(uint gpio) {</div>
+<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span><span class="preprocessor">#if NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> <span class="keywordflow">return</span> sio_hw->gpio_in & (1u << gpio);</div>
+<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> <span class="keywordflow">if</span> (gpio < 32) {</div>
+<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> <span class="keywordflow">return</span> sio_hw->gpio_in & (1u << gpio);</div>
+<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> <span class="keywordflow">return</span> sio_hw->gpio_hi_in & (1u << (gpio - 32));</div>
+<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> }</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> </div>
-<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span><span class="comment">// PICO_CONFIG: PICO_DEBUG_PIN_COUNT, Number of pins to use for debug output (if enabled), min=1, max=28, default=3, group=hardware_gpio</span></div>
-<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span><span class="preprocessor">#ifndef PICO_DEBUG_PIN_COUNT</span></div>
-<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span><span class="preprocessor">#define PICO_DEBUG_PIN_COUNT 3u</span></div>
-<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> </div>
-<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span><span class="preprocessor">#ifndef __cplusplus</span></div>
-<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span><span class="comment">// note these two macros may only be used once per and only apply per compilation unit (hence the CU_)</span></div>
-<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span><span class="preprocessor">#define CU_REGISTER_DEBUG_PINS(...) enum __unused DEBUG_PIN_TYPE { _none = 0, __VA_ARGS__ }; static enum DEBUG_PIN_TYPE __selected_debug_pins;</span></div>
-<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span><span class="preprocessor">#define CU_SELECT_DEBUG_PINS(x) static enum DEBUG_PIN_TYPE __selected_debug_pins = (x);</span></div>
-<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span><span class="preprocessor">#define DEBUG_PINS_ENABLED(p) (__selected_debug_pins == (p))</span></div>
-<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span><span class="preprocessor">#else</span></div>
-<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span><span class="preprocessor">#define CU_REGISTER_DEBUG_PINS(p...) \</span></div>
-<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span><span class="preprocessor"> enum DEBUG_PIN_TYPE { _none = 0, p }; \</span></div>
-<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span><span class="preprocessor"> template <enum DEBUG_PIN_TYPE> class __debug_pin_settings { \</span></div>
-<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span><span class="preprocessor"> public: \</span></div>
-<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span><span class="preprocessor"> static inline bool enabled() { return false; } \</span></div>
-<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span><span class="preprocessor"> };</span></div>
-<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span><span class="preprocessor">#define CU_SELECT_DEBUG_PINS(x) template<> inline bool __debug_pin_settings<x>::enabled() { return true; };</span></div>
-<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span><span class="preprocessor">#define DEBUG_PINS_ENABLED(p) (__debug_pin_settings<p>::enabled())</span></div>
-<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span><span class="preprocessor">#endif</span></div>
-<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span><span class="preprocessor">#define DEBUG_PINS_SET(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_set_mask((unsigned)(v)<<PICO_DEBUG_PIN_BASE)</span></div>
-<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span><span class="preprocessor">#define DEBUG_PINS_CLR(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_clr_mask((unsigned)(v)<<PICO_DEBUG_PIN_BASE)</span></div>
-<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span><span class="preprocessor">#define DEBUG_PINS_XOR(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_xor_mask((unsigned)(v)<<PICO_DEBUG_PIN_BASE)</span></div>
-<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> </div>
-<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span><span class="preprocessor">#endif </span><span class="comment">// _GPIO_H_</span></div>
-<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a></div><div class="ttdeci">gpio_override</div><div class="ttdef"><b>Definition:</b> gpio.h:139</div></div>
-<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5">GPIO_OVERRIDE_INVERT</a></div><div class="ttdeci">@ GPIO_OVERRIDE_INVERT</div><div class="ttdoc">invert peripheral signal selected via gpio_set_function</div><div class="ttdef"><b>Definition:</b> gpio.h:141</div></div>
-<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4">GPIO_OVERRIDE_HIGH</a></div><div class="ttdeci">@ GPIO_OVERRIDE_HIGH</div><div class="ttdoc">drive high/enable output</div><div class="ttdef"><b>Definition:</b> gpio.h:143</div></div>
-<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab">GPIO_OVERRIDE_LOW</a></div><div class="ttdeci">@ GPIO_OVERRIDE_LOW</div><div class="ttdoc">drive low/disable output</div><div class="ttdef"><b>Definition:</b> gpio.h:142</div></div>
-<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130">GPIO_OVERRIDE_NORMAL</a></div><div class="ttdeci">@ GPIO_OVERRIDE_NORMAL</div><div class="ttdoc">peripheral signal selected via gpio_set_function</div><div class="ttdef"><b>Definition:</b> gpio.h:140</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga07c4de2660686b9158a5b0526ccbb446"><div class="ttname"><a href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">gpio_add_raw_irq_handler_with_order_priority</a></div><div class="ttdeci">static void gpio_add_raw_irq_handler_with_order_priority(uint gpio, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:545</div></div>
-<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 event_mask, bool enabled)</div><div class="ttdoc">Enable or disable specific interrupt events for specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:176</div></div>
-<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 event_mask)</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:225</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga0a818ceaa50e3e2317fbb0856d47eaef"><div class="ttname"><a href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">gpio_get_out_level</a></div><div class="ttdeci">static bool gpio_get_out_level(uint gpio)</div><div class="ttdoc">Determine whether a GPIO is currently driven high or low.</div><div class="ttdef"><b>Definition:</b> gpio.h:772</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga0b10ec79e10d7df958373b178debcd2e"><div class="ttname"><a href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">gpio_set_dormant_irq_enabled</a></div><div class="ttdeci">void gpio_set_dormant_irq_enabled(uint gpio, uint32_t event_mask, bool enabled)</div><div class="ttdoc">Enable dormant wake up interrupt for specified GPIO and events.</div><div class="ttdef"><b>Definition:</b> gpio.c:219</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga0ffe0ddabcd081b513731275df97e7ca"><div class="ttname"><a href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">gpio_set_drive_strength</a></div><div class="ttdeci">void gpio_set_drive_strength(uint gpio, enum gpio_drive_strength drive)</div><div class="ttdoc">Set drive strength for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:128</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga1378540c24ec318ac7674dac4ec30140"><div class="ttname"><a href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">gpio_get_drive_strength</a></div><div class="ttdeci">enum gpio_drive_strength gpio_get_drive_strength(uint gpio)</div><div class="ttdoc">Determine current slew rate for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:136</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga14eba84c1c8f80b08a770775d3bf060a"><div class="ttname"><a href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a></div><div class="ttdeci">gpio_drive_strength</div><div class="ttdoc">Drive strength levels for GPIO outputs.</div><div class="ttdef"><b>Definition:</b> gpio.h:164</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga1f52eecc12d4348ef8bd1e17bdb4b107"><div class="ttname"><a href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">gpio_set_input_hysteresis_enabled</a></div><div class="ttdeci">void gpio_set_input_hysteresis_enabled(uint gpio, bool enabled)</div><div class="ttdoc">Enable/disable GPIO input hysteresis (Schmitt trigger)</div><div class="ttdef"><b>Definition:</b> gpio.c:96</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga213978aec060f04ce3a674849c999b45"><div class="ttname"><a href="group__hardware__gpio.html#ga213978aec060f04ce3a674849c999b45">gpio_add_raw_irq_handler_with_order_priority_masked</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_with_order_priority_masked(uint gpio_mask, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:203</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga250e767769daabb71b5ea8cab49b4463"><div class="ttname"><a href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">gpio_set_oeover</a></div><div class="ttdeci">void gpio_set_oeover(uint gpio, uint value)</div><div class="ttdoc">Select GPIO output enable override.</div><div class="ttdef"><b>Definition:</b> gpio.c:88</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga2a78dd5d9b2a181794c632aa4881c5ed"><div class="ttname"><a href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">gpio_get_dir</a></div><div class="ttdeci">static uint gpio_get_dir(uint gpio)</div><div class="ttdoc">Get a specific GPIO direction.</div><div class="ttdef"><b>Definition:</b> gpio.h:854</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga2af81373f9f5764ac1a5bd6097477530"><div class="ttname"><a href="group__hardware__gpio.html#ga2af81373f9f5764ac1a5bd6097477530">gpio_function</a></div><div class="ttdeci">gpio_function</div><div class="ttdoc">GPIO function definitions for use with function select.</div><div class="ttdef"><b>Definition:</b> gpio.h:90</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga2e78fcd487a3a2e173322c6502fe9419"><div class="ttname"><a href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a></div><div class="ttdeci">static void gpio_add_raw_irq_handler(uint gpio, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:604</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga2f3ccb15297fecd3792359d9cbbf6ed6"><div class="ttname"><a href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">gpio_init_mask</a></div><div class="ttdeci">void gpio_init_mask(uint gpio_mask)</div><div class="ttdoc">Initialise multiple GPIOs (enabled I/O and set func to GPIO_FUNC_SIO)</div><div class="ttdef"><b>Definition:</b> gpio.c:256</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga30a6733240f3d2e25e6b579b6c3902da"><div class="ttname"><a href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">gpio_pull_up</a></div><div class="ttdeci">static void gpio_pull_up(uint gpio)</div><div class="ttdoc">Set specified GPIO to be pulled up.</div><div class="ttdef"><b>Definition:</b> gpio.h:213</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga37ab6047475687869bd84d90e183e09f"><div class="ttname"><a href="group__hardware__gpio.html#ga37ab6047475687869bd84d90e183e09f">gpio_add_raw_irq_handler_masked</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_masked(uint gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:209</div></div>
-<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:190</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga4422d9c09199d199e8fe736b3c29ae49"><div class="ttname"><a href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">gpio_get_slew_rate</a></div><div class="ttdeci">enum gpio_slew_rate gpio_get_slew_rate(uint gpio)</div><div class="ttdoc">Determine current slew rate for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:118</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga495c253b01a68b0f81721d2061741243"><div class="ttname"><a href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">gpio_remove_raw_irq_handler</a></div><div class="ttdeci">static void gpio_remove_raw_irq_handler(uint gpio, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:633</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga4df18d737955c17a65c5a94412826674"><div class="ttname"><a href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">gpio_deinit</a></div><div class="ttdeci">void gpio_deinit(uint gpio)</div><div class="ttdoc">Resets a GPIO back to the NULL function, i.e. disables it.</div><div class="ttdef"><b>Definition:</b> gpio.c:252</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga50b526aa81f036a20c60f04106910578"><div class="ttname"><a href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">gpio_set_dir_all_bits</a></div><div class="ttdeci">static void gpio_set_dir_all_bits(uint32_t values)</div><div class="ttdoc">Set direction of all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:820</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga54c35d7beb7025aa001ae5b93d38935b"><div class="ttname"><a href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">gpio_is_pulled_down</a></div><div class="ttdeci">static bool gpio_is_pulled_down(uint gpio)</div><div class="ttdoc">Determine if the specified GPIO is pulled down.</div><div class="ttdef"><b>Definition:</b> gpio.h:242</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga6037bdaf406a84336043c9a6c40e5073"><div class="ttname"><a href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">gpio_set_inover</a></div><div class="ttdeci">void gpio_set_inover(uint gpio, uint value)</div><div class="ttdoc">Select GPIO input override.</div><div class="ttdef"><b>Definition:</b> gpio.c:72</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga6165f07f4b619dd08ea6dc97d069e78a"><div class="ttname"><a href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a></div><div class="ttdeci">void gpio_set_irq_enabled_with_callback(uint gpio, uint32_t event_mask, bool enabled, gpio_irq_callback_t callback)</div><div class="ttdoc">Convenience function which performs multiple GPIO IRQ related initializations.</div><div class="ttdef"><b>Definition:</b> gpio.c:184</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga6347e27da3ab34f1ea65b5ae16ab724f"><div class="ttname"><a href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a></div><div class="ttdeci">gpio_irq_level</div><div class="ttdoc">GPIO Interrupt level definitions (GPIO events)</div><div class="ttdef"><b>Definition:</b> gpio.h:122</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga64de3fa94def1d5e8c87f419f25ea7fd"><div class="ttname"><a href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a></div><div class="ttdeci">static void gpio_xor_mask(uint32_t mask)</div><div class="ttdoc">Toggle every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:714</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga6a40edf0d86f6b3f0dcb51a768cf4681"><div class="ttname"><a href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">gpio_set_dir</a></div><div class="ttdeci">static void gpio_set_dir(uint gpio, bool out)</div><div class="ttdoc">Set a single GPIO direction.</div><div class="ttdef"><b>Definition:</b> gpio.h:830</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga6aca495d644a6ae66050a99ef44defbe"><div class="ttname"><a href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a></div><div class="ttdeci">static void gpio_clr_mask(uint32_t mask)</div><div class="ttdoc">Drive low every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:705</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga71d35b29e897b9bb4fc881b587b08cab"><div class="ttname"><a href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">gpio_put</a></div><div class="ttdeci">static void gpio_put(uint gpio, bool value)</div><div class="ttdoc">Drive a single GPIO high/low.</div><div class="ttdef"><b>Definition:</b> gpio.h:748</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga72c250c9393043ea5beb56092d26e229"><div class="ttname"><a href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a></div><div class="ttdeci">gpio_slew_rate</div><div class="ttdoc">Slew rate limiting levels for GPIO outputs.</div><div class="ttdef"><b>Definition:</b> gpio.h:153</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga74a8c3e55185581bc3df335aea1d0fb8"><div class="ttname"><a href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">gpio_set_input_enabled</a></div><div class="ttdeci">void gpio_set_input_enabled(uint gpio, bool enabled)</div><div class="ttdoc">Enable GPIO input.</div><div class="ttdef"><b>Definition:</b> gpio.c:239</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga79819a97822983d7422d37c3e532cc53"><div class="ttname"><a href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a></div><div class="ttdeci">static void gpio_set_dir_in_masked(uint32_t mask)</div><div class="ttdoc">Set a number of GPIOs to input.</div><div class="ttdef"><b>Definition:</b> gpio.h:796</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga7aa41e10d04a8d99d9a8c4d7ba5007b8"><div class="ttname"><a href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">gpio_put_all</a></div><div class="ttdeci">static void gpio_put_all(uint32_t value)</div><div class="ttdoc">Drive all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:738</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga7b2cc867ac41996100e881a768c7f969"><div class="ttname"><a href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a></div><div class="ttdeci">static void gpio_set_dir_out_masked(uint32_t mask)</div><div class="ttdoc">Set a number of GPIOs to output.</div><div class="ttdef"><b>Definition:</b> gpio.h:787</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga829129eed5d42f3455e9da339219d814"><div class="ttname"><a href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">gpio_set_outover</a></div><div class="ttdeci">void gpio_set_outover(uint gpio, uint value)</div><div class="ttdoc">Set GPIO output override.</div><div class="ttdef"><b>Definition:</b> gpio.c:80</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga8aa4741d93dc40bc728dbd3e41813ad1"><div class="ttname"><a href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">gpio_init</a></div><div class="ttdeci">void gpio_init(uint gpio)</div><div class="ttdoc">Initialise a GPIO for (enabled I/O and set func to GPIO_FUNC_SIO)</div><div class="ttdef"><b>Definition:</b> gpio.c:246</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga8fcdfeff45cc2030530bf00c6ae1e0a3"><div class="ttname"><a href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a></div><div class="ttdeci">void(* gpio_irq_callback_t)(uint gpio, uint32_t event_mask)</div><div class="ttdef"><b>Definition:</b> gpio.h:137</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_ga9788ec1b8306c6bacfb578f0074eb3ad"><div class="ttname"><a href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">gpio_set_irqover</a></div><div class="ttdeci">void gpio_set_irqover(uint gpio, uint value)</div><div class="ttdoc">Set GPIO IRQ override.</div><div class="ttdef"><b>Definition:</b> gpio.c:63</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gaa0dbc5c65103d483217a190b72ed26dc"><div class="ttname"><a href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a></div><div class="ttdeci">static bool gpio_is_dir_out(uint gpio)</div><div class="ttdoc">Check if a specific GPIO direction is OUT.</div><div class="ttdef"><b>Definition:</b> gpio.h:844</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gaa64fdceff54dda03f4427f04c2f9ced2"><div class="ttname"><a href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">gpio_set_dir_masked</a></div><div class="ttdeci">static void gpio_set_dir_masked(uint32_t mask, uint32_t value)</div><div class="ttdoc">Set multiple GPIO directions.</div><div class="ttdef"><b>Definition:</b> gpio.h:811</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gaacde9174277ca40aa7b6fdd341bb2b8c"><div class="ttname"><a href="group__hardware__gpio.html#gaacde9174277ca40aa7b6fdd341bb2b8c">gpio_set_function</a></div><div class="ttdeci">void gpio_set_function(uint gpio, enum gpio_function fn)</div><div class="ttdoc">Select GPIO function.</div><div class="ttdef"><b>Definition:</b> gpio.c:32</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gab6bf9552da32b3dd0a5d0db45d8374fc"><div class="ttname"><a href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a></div><div class="ttdeci">void gpio_set_pulls(uint gpio, bool up, bool down)</div><div class="ttdoc">Select up and down pulls on specific GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:53</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gac41d97649605d14d3e176e72d432c01a"><div class="ttname"><a href="group__hardware__gpio.html#gac41d97649605d14d3e176e72d432c01a">gpio_get_function</a></div><div class="ttdeci">enum gpio_function gpio_get_function(uint gpio)</div><div class="ttdoc">Determine current GPIO function.</div><div class="ttdef"><b>Definition:</b> gpio.c:46</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gac451f3251c0d0bea97aa535f65974ec8"><div class="ttname"><a href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">gpio_is_input_hysteresis_enabled</a></div><div class="ttdeci">bool gpio_is_input_hysteresis_enabled(uint gpio)</div><div class="ttdoc">Determine whether input hysteresis is enabled on a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:105</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gac7038968884d02b67403a50f1be6ecd6"><div class="ttname"><a href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">gpio_is_pulled_up</a></div><div class="ttdeci">static bool gpio_is_pulled_up(uint gpio)</div><div class="ttdoc">Determine if the specified GPIO is pulled up.</div><div class="ttdef"><b>Definition:</b> gpio.h:223</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gac86436d117c7a87f982c9b3311543302"><div class="ttname"><a href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a></div><div class="ttdeci">static void gpio_put_masked(uint32_t mask, uint32_t value)</div><div class="ttdoc">Drive GPIO high/low depending on parameters.</div><div class="ttdef"><b>Definition:</b> gpio.h:729</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gae57a625b7e0bcac6d596f35864ffc792"><div class="ttname"><a href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">gpio_disable_pulls</a></div><div class="ttdeci">static void gpio_disable_pulls(uint gpio)</div><div class="ttdoc">Disable pulls on specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:251</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gae895be2d3c5af5df460150eafe7858a4"><div class="ttname"><a href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">gpio_get_all</a></div><div class="ttdeci">static uint32_t gpio_get_all(void)</div><div class="ttdoc">Get raw value of all GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.h:683</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gaea499c33479cf8f87a91a74411ad241f"><div class="ttname"><a href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">gpio_pull_down</a></div><div class="ttdeci">static void gpio_pull_down(uint gpio)</div><div class="ttdoc">Set specified GPIO to be pulled down.</div><div class="ttdef"><b>Definition:</b> gpio.h:232</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gaf1d12efbed0809650d98fe9a424876c8"><div class="ttname"><a href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">gpio_set_slew_rate</a></div><div class="ttdeci">void gpio_set_slew_rate(uint gpio, enum gpio_slew_rate slew)</div><div class="ttdoc">Set slew rate for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:110</div></div>
-<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:461</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gaf38c0b39fba06d1a49d1be56ef548d73"><div class="ttname"><a href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">gpio_get</a></div><div class="ttdeci">static bool gpio_get(uint gpio)</div><div class="ttdoc">Get state of a single specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:674</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gaf3aa12aa4543965e24f52cfa9b529904"><div class="ttname"><a href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a></div><div class="ttdeci">static void gpio_set_mask(uint32_t mask)</div><div class="ttdoc">Drive high every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:696</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gafb77622d0cd387bea253f10d8165c45e"><div class="ttname"><a href="group__hardware__gpio.html#gafb77622d0cd387bea253f10d8165c45e">gpio_remove_raw_irq_handler_masked</a></div><div class="ttdeci">void gpio_remove_raw_irq_handler_masked(uint gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:213</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">GPIO_DRIVE_STRENGTH_2MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_2MA</div><div class="ttdoc">2 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:165</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">GPIO_DRIVE_STRENGTH_8MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_8MA</div><div class="ttdoc">8 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:167</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">GPIO_DRIVE_STRENGTH_12MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_12MA</div><div class="ttdoc">12 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:168</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">GPIO_DRIVE_STRENGTH_4MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_4MA</div><div class="ttdoc">4 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:166</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade"><div class="ttname"><a href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">GPIO_SLEW_RATE_FAST</a></div><div class="ttdeci">@ GPIO_SLEW_RATE_FAST</div><div class="ttdoc">Slew rate limiting disabled.</div><div class="ttdef"><b>Definition:</b> gpio.h:155</div></div>
-<div class="ttc" id="agroup__hardware__gpio_html_gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634"><div class="ttname"><a href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">GPIO_SLEW_RATE_SLOW</a></div><div class="ttdeci">@ GPIO_SLEW_RATE_SLOW</div><div class="ttdoc">Slew rate limiting enabled.</div><div class="ttdef"><b>Definition:</b> gpio.h:154</div></div>
-<div class="ttc" id="agroup__hardware__irq_html_ga8478ee26cc144e947ccd75b0169059a6"><div class="ttname"><a href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a></div><div class="ttdeci">void(* irq_handler_t)(void)</div><div class="ttdoc">Interrupt handler function type.</div><div class="ttdef"><b>Definition:</b> irq.h:128</div></div>
-<div class="ttc" id="agroup__pico__platform_html_ga974b4945ae0ac8892717cb5f05e83c53"><div class="ttname"><a href="group__pico__platform.html#ga974b4945ae0ac8892717cb5f05e83c53">get_core_num</a></div><div class="ttdeci">static __always_inline uint get_core_num(void)</div><div class="ttdoc">Get the current core number.</div><div class="ttdef"><b>Definition:</b> platform.h:517</div></div>
+<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span>}</div>
+<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> </div>
+<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4"> 876</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint32_t <a class="code hl_function" href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">gpio_get_all</a>(<span class="keywordtype">void</span>) {</div>
+<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <span class="keywordflow">return</span> gpioc_lo_in_get();</div>
+<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> <span class="keywordflow">return</span> sio_hw->gpio_in;</div>
+<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span>}</div>
+<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> </div>
+<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9"> 889</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint64_t <a class="code hl_function" href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9">gpio_get_all64</a>(<span class="keywordtype">void</span>) {</div>
+<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <span class="keywordflow">return</span> gpioc_hilo_in_get();</div>
+<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <span class="keywordflow">return</span> sio_hw->gpio_in;</div>
+<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="keywordflow">return</span> sio_hw->gpio_in | (((uint64_t)sio_hw->gpio_hi_in) << 32u);</div>
+<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span>}</div>
+<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> </div>
+<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span><span class="comment">// Output</span></div>
+<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> </div>
+<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904"> 908</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(uint32_t mask) {</div>
+<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> gpioc_lo_out_set(mask);</div>
+<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> sio_hw->gpio_set = mask;</div>
+<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span>}</div>
+<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> </div>
+<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e"> 921</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e">gpio_set_mask64</a>(uint64_t mask) {</div>
+<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> gpioc_hilo_out_set(mask);</div>
+<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> sio_hw->gpio_set = (uint32_t)mask;</div>
+<div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"> 927</span> sio_hw->gpio_set = (uint32_t)mask;</div>
+<div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span> sio_hw->gpio_hi_set = (uint32_t)(mask >> 32u);</div>
+<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span>}</div>
+<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> </div>
+<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814"> 938</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814">gpio_set_mask_n</a>(uint n, uint32_t mask) {</div>
+<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> <span class="keywordflow">if</span> (!n) {</div>
+<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(mask);</div>
+<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
+<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> gpioc_hi_out_set(mask);</div>
+<div class="line"><a id="l00944" name="l00944"></a><span class="lineno"> 944</span><span class="preprocessor">#elif NUM_BANK0_GPIOS >= 32</span></div>
+<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span> sio_hw->gpio_hi_set = mask;</div>
+<div class="line"><a id="l00946" name="l00946"></a><span class="lineno"> 946</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"> 947</span> }</div>
+<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span>}</div>
+<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> </div>
+<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe"> 955</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(uint32_t mask) {</div>
+<div class="line"><a id="l00956" name="l00956"></a><span class="lineno"> 956</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00957" name="l00957"></a><span class="lineno"> 957</span> gpioc_lo_out_clr(mask);</div>
+<div class="line"><a id="l00958" name="l00958"></a><span class="lineno"> 958</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00959" name="l00959"></a><span class="lineno"> 959</span> sio_hw->gpio_clr = mask;</div>
+<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"> 960</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span>}</div>
+<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> </div>
+<div class="line"><a id="l00968" name="l00968"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16"> 968</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16">gpio_clr_mask64</a>(uint64_t mask) {</div>
+<div class="line"><a id="l00969" name="l00969"></a><span class="lineno"> 969</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00970" name="l00970"></a><span class="lineno"> 970</span> gpioc_hilo_out_clr(mask);</div>
+<div class="line"><a id="l00971" name="l00971"></a><span class="lineno"> 971</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l00972" name="l00972"></a><span class="lineno"> 972</span> sio_hw->gpio_clr = (uint32_t)mask;</div>
+<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"> 973</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"> 974</span> sio_hw->gpio_clr = (uint32_t)mask;</div>
+<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> sio_hw->gpio_hi_clr = (uint32_t)(mask >> 32u);</div>
+<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span>}</div>
+<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> </div>
+<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> </div>
+<div class="line"><a id="l00986" name="l00986"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8"> 986</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8">gpio_clr_mask_n</a>(uint n, uint32_t mask) {</div>
+<div class="line"><a id="l00987" name="l00987"></a><span class="lineno"> 987</span> <span class="keywordflow">if</span> (!n) {</div>
+<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"> 988</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(mask);</div>
+<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
+<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> gpioc_hi_out_clr(mask);</div>
+<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span><span class="preprocessor">#elif NUM_BANK0_GPIOS >= 32</span></div>
+<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span> sio_hw->gpio_hi_clr = mask;</div>
+<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00995" name="l00995"></a><span class="lineno"> 995</span> }</div>
+<div class="line"><a id="l00996" name="l00996"></a><span class="lineno"> 996</span>}</div>
+<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"> 997</span> </div>
+<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd"> 1003</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a>(uint32_t mask) {</div>
+<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> gpioc_lo_out_xor(mask);</div>
+<div class="line"><a id="l01006" name="l01006"></a><span class="lineno"> 1006</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01007" name="l01007"></a><span class="lineno"> 1007</span> sio_hw->gpio_togl = mask;</div>
+<div class="line"><a id="l01008" name="l01008"></a><span class="lineno"> 1008</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"> 1009</span>}</div>
+<div class="line"><a id="l01010" name="l01010"></a><span class="lineno"> 1010</span> </div>
+<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119"> 1016</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119">gpio_xor_mask64</a>(uint64_t mask) {</div>
+<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"> 1017</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> gpioc_hilo_out_xor(mask);</div>
+<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> sio_hw->gpio_togl = (uint32_t)mask;</div>
+<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> sio_hw->gpio_togl = (uint32_t)mask;</div>
+<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> sio_hw->gpio_hi_togl = (uint32_t)(mask >> 32u);</div>
+<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span>}</div>
+<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> </div>
+<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06"> 1033</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06">gpio_xor_mask_n</a>(uint n, uint32_t mask) {</div>
+<div class="line"><a id="l01034" name="l01034"></a><span class="lineno"> 1034</span> <span class="keywordflow">if</span> (!n) {</div>
+<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"> 1035</span> <a class="code hl_function" href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a>(mask);</div>
+<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
+<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> gpioc_hi_out_xor(mask);</div>
+<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span><span class="preprocessor">#elif NUM_BANK0_GPIOS >= 32</span></div>
+<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> sio_hw->gpio_hi_togl = mask;</div>
+<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"> 1042</span> }</div>
+<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span>}</div>
+<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"> 1044</span> </div>
+<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302"> 1056</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a>(uint32_t mask, uint32_t value) {</div>
+<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> gpioc_lo_out_xor((gpioc_lo_out_get() ^ value) & mask);</div>
+<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> sio_hw->gpio_togl = (sio_hw->gpio_out ^ value) & mask;</div>
+<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"> 1062</span>}</div>
+<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"> 1063</span> </div>
+<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003"> 1075</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003">gpio_put_masked64</a>(uint64_t mask, uint64_t value) {</div>
+<div class="line"><a id="l01076" name="l01076"></a><span class="lineno"> 1076</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"> 1077</span> gpioc_hilo_out_xor((gpioc_hilo_out_get() ^ value) & mask);</div>
+<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> sio_hw->gpio_togl = (sio_hw->gpio_out ^ (uint32_t)value) & (uint32_t)mask;</div>
+<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> sio_hw->gpio_togl = (sio_hw->gpio_out ^ (uint32_t)value) & (uint32_t)mask;</div>
+<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> sio_hw->gpio_hi_togl = (sio_hw->gpio_hi_out ^ (uint32_t)(value>>32u)) & (uint32_t)(mask>>32u);</div>
+<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"> 1083</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span>}</div>
+<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> </div>
+<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5"> 1098</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5">gpio_put_masked_n</a>(uint n, uint32_t mask, uint32_t value) {</div>
+<div class="line"><a id="l01099" name="l01099"></a><span class="lineno"> 1099</span> <span class="keywordflow">if</span> (!n) {</div>
+<div class="line"><a id="l01100" name="l01100"></a><span class="lineno"> 1100</span> <a class="code hl_function" href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a>(mask, value);</div>
+<div class="line"><a id="l01101" name="l01101"></a><span class="lineno"> 1101</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n == 1) {</div>
+<div class="line"><a id="l01102" name="l01102"></a><span class="lineno"> 1102</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"> 1103</span> gpioc_hi_out_xor((gpioc_hi_out_get() ^ value) & mask);</div>
+<div class="line"><a id="l01104" name="l01104"></a><span class="lineno"> 1104</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01105" name="l01105"></a><span class="lineno"> 1105</span> sio_hw->gpio_hi_togl = (sio_hw->gpio_hi_out ^ value) & mask;</div>
+<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"> 1106</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"> 1107</span> }</div>
+<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span>}</div>
+<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> </div>
+<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8"> 1115</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">gpio_put_all</a>(uint32_t value) {</div>
+<div class="line"><a id="l01116" name="l01116"></a><span class="lineno"> 1116</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01117" name="l01117"></a><span class="lineno"> 1117</span> gpioc_lo_out_put(value);</div>
+<div class="line"><a id="l01118" name="l01118"></a><span class="lineno"> 1118</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01119" name="l01119"></a><span class="lineno"> 1119</span> sio_hw->gpio_out = value;</div>
+<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"> 1120</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01121" name="l01121"></a><span class="lineno"> 1121</span>}</div>
+<div class="line"><a id="l01122" name="l01122"></a><span class="lineno"> 1122</span> </div>
+<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c"> 1128</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c">gpio_put_all64</a>(uint64_t value) {</div>
+<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> gpioc_hilo_out_put(value);</div>
+<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span> sio_hw->gpio_out = (uint32_t)value;</div>
+<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> sio_hw->gpio_out = (uint32_t)value;</div>
+<div class="line"><a id="l01135" name="l01135"></a><span class="lineno"> 1135</span> sio_hw->gpio_hi_out = (uint32_t)(value >> 32u);</div>
+<div class="line"><a id="l01136" name="l01136"></a><span class="lineno"> 1136</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01137" name="l01137"></a><span class="lineno"> 1137</span>}</div>
+<div class="line"><a id="l01138" name="l01138"></a><span class="lineno"> 1138</span> </div>
+<div class="line"><a id="l01145" name="l01145"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab"> 1145</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">gpio_put</a>(uint gpio, <span class="keywordtype">bool</span> value) {</div>
+<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span> gpioc_bit_out_put(gpio, value);</div>
+<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> uint32_t mask = 1ul << gpio;</div>
+<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> <span class="keywordflow">if</span> (value)</div>
+<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span> <a class="code hl_function" href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a>(mask);</div>
+<div class="line"><a id="l01152" name="l01152"></a><span class="lineno"> 1152</span> <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01153" name="l01153"></a><span class="lineno"> 1153</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a>(mask);</div>
+<div class="line"><a id="l01154" name="l01154"></a><span class="lineno"> 1154</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01155" name="l01155"></a><span class="lineno"> 1155</span> uint32_t mask = 1ul << (gpio & 0x1fu);</div>
+<div class="line"><a id="l01156" name="l01156"></a><span class="lineno"> 1156</span> <span class="keywordflow">if</span> (gpio < 32) {</div>
+<div class="line"><a id="l01157" name="l01157"></a><span class="lineno"> 1157</span> <span class="keywordflow">if</span> (value) {</div>
+<div class="line"><a id="l01158" name="l01158"></a><span class="lineno"> 1158</span> sio_hw->gpio_set = mask;</div>
+<div class="line"><a id="l01159" name="l01159"></a><span class="lineno"> 1159</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l01160" name="l01160"></a><span class="lineno"> 1160</span> sio_hw->gpio_clr = mask;</div>
+<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"> 1161</span> }</div>
+<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l01163" name="l01163"></a><span class="lineno"> 1163</span> <span class="keywordflow">if</span> (value) {</div>
+<div class="line"><a id="l01164" name="l01164"></a><span class="lineno"> 1164</span> sio_hw->gpio_hi_set = mask;</div>
+<div class="line"><a id="l01165" name="l01165"></a><span class="lineno"> 1165</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l01166" name="l01166"></a><span class="lineno"> 1166</span> sio_hw->gpio_hi_clr = mask;</div>
+<div class="line"><a id="l01167" name="l01167"></a><span class="lineno"> 1167</span> }</div>
+<div class="line"><a id="l01168" name="l01168"></a><span class="lineno"> 1168</span> }</div>
+<div class="line"><a id="l01169" name="l01169"></a><span class="lineno"> 1169</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01170" name="l01170"></a><span class="lineno"> 1170</span>}</div>
+<div class="line"><a id="l01171" name="l01171"></a><span class="lineno"> 1171</span> </div>
+<div class="line"><a id="l01188" name="l01188"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef"> 1188</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">gpio_get_out_level</a>(uint gpio) {</div>
+<div class="line"><a id="l01189" name="l01189"></a><span class="lineno"> 1189</span><span class="preprocessor">#if NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01190" name="l01190"></a><span class="lineno"> 1190</span> <span class="keywordflow">return</span> sio_hw->gpio_out & (1u << gpio);</div>
+<div class="line"><a id="l01191" name="l01191"></a><span class="lineno"> 1191</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01192" name="l01192"></a><span class="lineno"> 1192</span> uint32_t bits = gpio < 32 ? sio_hw->gpio_out : sio_hw->gpio_hi_out;</div>
+<div class="line"><a id="l01193" name="l01193"></a><span class="lineno"> 1193</span> <span class="keywordflow">return</span> bits & (1u << (gpio & 0x1fu));</div>
+<div class="line"><a id="l01194" name="l01194"></a><span class="lineno"> 1194</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01195" name="l01195"></a><span class="lineno"> 1195</span>}</div>
+<div class="line"><a id="l01196" name="l01196"></a><span class="lineno"> 1196</span> </div>
+<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"> 1197</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span><span class="comment">// Direction</span></div>
+<div class="line"><a id="l01199" name="l01199"></a><span class="lineno"> 1199</span><span class="comment">// ----------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l01200" name="l01200"></a><span class="lineno"> 1200</span> </div>
+<div class="line"><a id="l01208" name="l01208"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969"> 1208</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a>(uint32_t mask) {</div>
+<div class="line"><a id="l01209" name="l01209"></a><span class="lineno"> 1209</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01210" name="l01210"></a><span class="lineno"> 1210</span> gpioc_lo_oe_set(mask);</div>
+<div class="line"><a id="l01211" name="l01211"></a><span class="lineno"> 1211</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01212" name="l01212"></a><span class="lineno"> 1212</span> sio_hw->gpio_oe_set = mask;</div>
+<div class="line"><a id="l01213" name="l01213"></a><span class="lineno"> 1213</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01214" name="l01214"></a><span class="lineno"> 1214</span>}</div>
+<div class="line"><a id="l01215" name="l01215"></a><span class="lineno"> 1215</span> </div>
+<div class="line"><a id="l01223" name="l01223"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e"> 1223</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e">gpio_set_dir_out_masked64</a>(uint64_t mask) {</div>
+<div class="line"><a id="l01224" name="l01224"></a><span class="lineno"> 1224</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01225" name="l01225"></a><span class="lineno"> 1225</span> gpioc_hilo_oe_set(mask);</div>
+<div class="line"><a id="l01226" name="l01226"></a><span class="lineno"> 1226</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01227" name="l01227"></a><span class="lineno"> 1227</span> sio_hw->gpio_oe_set = mask;</div>
+<div class="line"><a id="l01228" name="l01228"></a><span class="lineno"> 1228</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01229" name="l01229"></a><span class="lineno"> 1229</span> sio_hw->gpio_oe_set = (uint32_t)mask;</div>
+<div class="line"><a id="l01230" name="l01230"></a><span class="lineno"> 1230</span> sio_hw->gpio_hi_oe_set = (uint32_t)(mask >> 32u);</div>
+<div class="line"><a id="l01231" name="l01231"></a><span class="lineno"> 1231</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01232" name="l01232"></a><span class="lineno"> 1232</span>}</div>
+<div class="line"><a id="l01233" name="l01233"></a><span class="lineno"> 1233</span> </div>
+<div class="line"><a id="l01239" name="l01239"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53"> 1239</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a>(uint32_t mask) {</div>
+<div class="line"><a id="l01240" name="l01240"></a><span class="lineno"> 1240</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01241" name="l01241"></a><span class="lineno"> 1241</span> gpioc_lo_oe_clr(mask);</div>
+<div class="line"><a id="l01242" name="l01242"></a><span class="lineno"> 1242</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01243" name="l01243"></a><span class="lineno"> 1243</span> sio_hw->gpio_oe_clr = mask;</div>
+<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"> 1244</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span>}</div>
+<div class="line"><a id="l01246" name="l01246"></a><span class="lineno"> 1246</span> </div>
+<div class="line"><a id="l01252" name="l01252"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371"> 1252</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371">gpio_set_dir_in_masked64</a>(uint64_t mask) {</div>
+<div class="line"><a id="l01253" name="l01253"></a><span class="lineno"> 1253</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01254" name="l01254"></a><span class="lineno"> 1254</span> gpioc_hilo_oe_clr(mask);</div>
+<div class="line"><a id="l01255" name="l01255"></a><span class="lineno"> 1255</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01256" name="l01256"></a><span class="lineno"> 1256</span> sio_hw->gpio_oe_clr = mask;</div>
+<div class="line"><a id="l01257" name="l01257"></a><span class="lineno"> 1257</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01258" name="l01258"></a><span class="lineno"> 1258</span> sio_hw->gpio_oe_clr = (uint32_t)mask;</div>
+<div class="line"><a id="l01259" name="l01259"></a><span class="lineno"> 1259</span> sio_hw->gpio_hi_oe_clr = (uint32_t)(mask >> 32u);</div>
+<div class="line"><a id="l01260" name="l01260"></a><span class="lineno"> 1260</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01261" name="l01261"></a><span class="lineno"> 1261</span>}</div>
+<div class="line"><a id="l01262" name="l01262"></a><span class="lineno"> 1262</span> </div>
+<div class="line"><a id="l01274" name="l01274"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2"> 1274</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">gpio_set_dir_masked</a>(uint32_t mask, uint32_t value) {</div>
+<div class="line"><a id="l01275" name="l01275"></a><span class="lineno"> 1275</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01276" name="l01276"></a><span class="lineno"> 1276</span> gpioc_lo_oe_xor((gpioc_lo_oe_get() ^ value) & mask);</div>
+<div class="line"><a id="l01277" name="l01277"></a><span class="lineno"> 1277</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01278" name="l01278"></a><span class="lineno"> 1278</span> sio_hw->gpio_oe_togl = (sio_hw->gpio_oe ^ value) & mask;</div>
+<div class="line"><a id="l01279" name="l01279"></a><span class="lineno"> 1279</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01280" name="l01280"></a><span class="lineno"> 1280</span>}</div>
+<div class="line"><a id="l01281" name="l01281"></a><span class="lineno"> 1281</span> </div>
+<div class="line"><a id="l01293" name="l01293"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148"> 1293</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148">gpio_set_dir_masked64</a>(uint64_t mask, uint64_t value) {</div>
+<div class="line"><a id="l01294" name="l01294"></a><span class="lineno"> 1294</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01295" name="l01295"></a><span class="lineno"> 1295</span> gpioc_hilo_oe_xor((gpioc_hilo_oe_get() ^ value) & mask);</div>
+<div class="line"><a id="l01296" name="l01296"></a><span class="lineno"> 1296</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01297" name="l01297"></a><span class="lineno"> 1297</span> sio_hw->gpio_oe_togl = (sio_hw->gpio_oe ^ (uint32_t)value) & (uint32_t)mask;</div>
+<div class="line"><a id="l01298" name="l01298"></a><span class="lineno"> 1298</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01299" name="l01299"></a><span class="lineno"> 1299</span> sio_hw->gpio_oe_togl = (sio_hw->gpio_oe ^ (uint32_t)value) & (uint32_t)mask;</div>
+<div class="line"><a id="l01300" name="l01300"></a><span class="lineno"> 1300</span> sio_hw->gpio_hi_oe_togl = (sio_hw->gpio_hi_oe ^ (uint32_t)(value >> 32u)) & (uint32_t)(mask >> 32u);</div>
+<div class="line"><a id="l01301" name="l01301"></a><span class="lineno"> 1301</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01302" name="l01302"></a><span class="lineno"> 1302</span>}</div>
+<div class="line"><a id="l01303" name="l01303"></a><span class="lineno"> 1303</span> </div>
+<div class="line"><a id="l01304" name="l01304"></a><span class="lineno"> 1304</span> </div>
+<div class="line"><a id="l01310" name="l01310"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578"> 1310</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">gpio_set_dir_all_bits</a>(uint32_t values) {</div>
+<div class="line"><a id="l01311" name="l01311"></a><span class="lineno"> 1311</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01312" name="l01312"></a><span class="lineno"> 1312</span> gpioc_lo_oe_put(values);</div>
+<div class="line"><a id="l01313" name="l01313"></a><span class="lineno"> 1313</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01314" name="l01314"></a><span class="lineno"> 1314</span> sio_hw->gpio_oe = values;</div>
+<div class="line"><a id="l01315" name="l01315"></a><span class="lineno"> 1315</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01316" name="l01316"></a><span class="lineno"> 1316</span>}</div>
+<div class="line"><a id="l01317" name="l01317"></a><span class="lineno"> 1317</span> </div>
+<div class="line"><a id="l01323" name="l01323"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4"> 1323</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4">gpio_set_dir_all_bits64</a>(uint64_t values) {</div>
+<div class="line"><a id="l01324" name="l01324"></a><span class="lineno"> 1324</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01325" name="l01325"></a><span class="lineno"> 1325</span> gpioc_hilo_oe_put(values);</div>
+<div class="line"><a id="l01326" name="l01326"></a><span class="lineno"> 1326</span><span class="preprocessor">#elif NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"> 1327</span> sio_hw->gpio_oe = (uint32_t)values;</div>
+<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01329" name="l01329"></a><span class="lineno"> 1329</span> sio_hw->gpio_oe = (uint32_t)values;</div>
+<div class="line"><a id="l01330" name="l01330"></a><span class="lineno"> 1330</span> sio_hw->gpio_hi_oe = (uint32_t)(values >> 32u);</div>
+<div class="line"><a id="l01331" name="l01331"></a><span class="lineno"> 1331</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01332" name="l01332"></a><span class="lineno"> 1332</span>}</div>
+<div class="line"><a id="l01333" name="l01333"></a><span class="lineno"> 1333</span> </div>
+<div class="line"><a id="l01340" name="l01340"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681"> 1340</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">gpio_set_dir</a>(uint gpio, <span class="keywordtype">bool</span> out) {</div>
+<div class="line"><a id="l01341" name="l01341"></a><span class="lineno"> 1341</span><span class="preprocessor">#if PICO_USE_GPIO_COPROCESSOR</span></div>
+<div class="line"><a id="l01342" name="l01342"></a><span class="lineno"> 1342</span> gpioc_bit_oe_put(gpio, out);</div>
+<div class="line"><a id="l01343" name="l01343"></a><span class="lineno"> 1343</span><span class="preprocessor">#elif PICO_RP2040 || NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01344" name="l01344"></a><span class="lineno"> 1344</span> uint32_t mask = 1ul << gpio;</div>
+<div class="line"><a id="l01345" name="l01345"></a><span class="lineno"> 1345</span> <span class="keywordflow">if</span> (out)</div>
+<div class="line"><a id="l01346" name="l01346"></a><span class="lineno"> 1346</span> <a class="code hl_function" href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a>(mask);</div>
+<div class="line"><a id="l01347" name="l01347"></a><span class="lineno"> 1347</span> <span class="keywordflow">else</span></div>
+<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"> 1348</span> <a class="code hl_function" href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a>(mask);</div>
+<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01350" name="l01350"></a><span class="lineno"> 1350</span> uint32_t mask = 1u << (gpio & 0x1fu);</div>
+<div class="line"><a id="l01351" name="l01351"></a><span class="lineno"> 1351</span> <span class="keywordflow">if</span> (gpio < 32) {</div>
+<div class="line"><a id="l01352" name="l01352"></a><span class="lineno"> 1352</span> <span class="keywordflow">if</span> (out) {</div>
+<div class="line"><a id="l01353" name="l01353"></a><span class="lineno"> 1353</span> sio_hw->gpio_oe_set = mask;</div>
+<div class="line"><a id="l01354" name="l01354"></a><span class="lineno"> 1354</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l01355" name="l01355"></a><span class="lineno"> 1355</span> sio_hw->gpio_oe_clr = mask;</div>
+<div class="line"><a id="l01356" name="l01356"></a><span class="lineno"> 1356</span> }</div>
+<div class="line"><a id="l01357" name="l01357"></a><span class="lineno"> 1357</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l01358" name="l01358"></a><span class="lineno"> 1358</span> <span class="keywordflow">if</span> (out) {</div>
+<div class="line"><a id="l01359" name="l01359"></a><span class="lineno"> 1359</span> sio_hw->gpio_hi_oe_set = mask;</div>
+<div class="line"><a id="l01360" name="l01360"></a><span class="lineno"> 1360</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l01361" name="l01361"></a><span class="lineno"> 1361</span> sio_hw->gpio_hi_oe_clr = mask;</div>
+<div class="line"><a id="l01362" name="l01362"></a><span class="lineno"> 1362</span> }</div>
+<div class="line"><a id="l01363" name="l01363"></a><span class="lineno"> 1363</span> }</div>
+<div class="line"><a id="l01364" name="l01364"></a><span class="lineno"> 1364</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01365" name="l01365"></a><span class="lineno"> 1365</span>}</div>
+<div class="line"><a id="l01366" name="l01366"></a><span class="lineno"> 1366</span> </div>
+<div class="line"><a id="l01373" name="l01373"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc"> 1373</a></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a>(uint gpio) {</div>
+<div class="line"><a id="l01374" name="l01374"></a><span class="lineno"> 1374</span><span class="preprocessor">#if NUM_BANK0_GPIOS <= 32</span></div>
+<div class="line"><a id="l01375" name="l01375"></a><span class="lineno"> 1375</span> <span class="keywordflow">return</span> sio_hw->gpio_oe & (1u << (gpio));</div>
+<div class="line"><a id="l01376" name="l01376"></a><span class="lineno"> 1376</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01377" name="l01377"></a><span class="lineno"> 1377</span> uint32_t bits = gpio < 32 ? sio_hw->gpio_oe : sio_hw->gpio_hi_oe;</div>
+<div class="line"><a id="l01378" name="l01378"></a><span class="lineno"> 1378</span> <span class="keywordflow">return</span> bits & (1u << (gpio & 0x1fu));</div>
+<div class="line"><a id="l01379" name="l01379"></a><span class="lineno"> 1379</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01380" name="l01380"></a><span class="lineno"> 1380</span>}</div>
+<div class="line"><a id="l01381" name="l01381"></a><span class="lineno"> 1381</span> </div>
+<div class="line"><a id="l01388" name="l01388"></a><span class="lineno"><a class="line" href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed"> 1388</a></span><span class="keyword">static</span> <span class="keyword">inline</span> uint <a class="code hl_function" href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">gpio_get_dir</a>(uint gpio) {</div>
+<div class="line"><a id="l01389" name="l01389"></a><span class="lineno"> 1389</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a>(gpio); <span class="comment">// note GPIO_OUT is 1/true and GPIO_IN is 0/false anyway</span></div>
+<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"> 1390</span>}</div>
+<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> </div>
+<div class="line"><a id="l01392" name="l01392"></a><span class="lineno"> 1392</span><span class="preprocessor">#if PICO_SECURE</span></div>
+<div class="line"><a id="l01393" name="l01393"></a><span class="lineno"> 1393</span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> gpio_assign_to_ns(uint gpio, <span class="keywordtype">bool</span> ns) {</div>
+<div class="line"><a id="l01394" name="l01394"></a><span class="lineno"> 1394</span> check_gpio_param(gpio);</div>
+<div class="line"><a id="l01395" name="l01395"></a><span class="lineno"> 1395</span> <span class="keywordflow">if</span> (ns) <a class="code hl_function" href="group__hardware__base.html#ga625e737a57f12211cf1f634ca5095ae4">hw_set_bits</a>(&accessctrl_hw->gpio_nsmask[gpio/32], 1u << (gpio & 0x1fu));</div>
+<div class="line"><a id="l01396" name="l01396"></a><span class="lineno"> 1396</span> <span class="keywordflow">else</span> <a class="code hl_function" href="group__hardware__base.html#gafd1c089df868d987daf95870b501c2ed">hw_clear_bits</a>(&accessctrl_hw->gpio_nsmask[gpio/32], 1u << (gpio & 0x1fu));</div>
+<div class="line"><a id="l01397" name="l01397"></a><span class="lineno"> 1397</span>}</div>
+<div class="line"><a id="l01398" name="l01398"></a><span class="lineno"> 1398</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01399" name="l01399"></a><span class="lineno"> 1399</span><span class="keyword">extern</span> <span class="keywordtype">void</span> gpio_debug_pins_init(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l01400" name="l01400"></a><span class="lineno"> 1400</span> </div>
+<div class="line"><a id="l01401" name="l01401"></a><span class="lineno"> 1401</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l01402" name="l01402"></a><span class="lineno"> 1402</span>}</div>
+<div class="line"><a id="l01403" name="l01403"></a><span class="lineno"> 1403</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01404" name="l01404"></a><span class="lineno"> 1404</span> </div>
+<div class="line"><a id="l01405" name="l01405"></a><span class="lineno"> 1405</span> </div>
+<div class="line"><a id="l01406" name="l01406"></a><span class="lineno"> 1406</span><span class="comment">// PICO_CONFIG: PICO_DEBUG_PIN_BASE, First pin to use for debug output (if enabled), min=0, max=28, default=19, group=hardware_gpio</span></div>
+<div class="line"><a id="l01407" name="l01407"></a><span class="lineno"> 1407</span><span class="preprocessor">#ifndef PICO_DEBUG_PIN_BASE</span></div>
+<div class="line"><a id="l01408" name="l01408"></a><span class="lineno"> 1408</span><span class="preprocessor">#define PICO_DEBUG_PIN_BASE 19u</span></div>
+<div class="line"><a id="l01409" name="l01409"></a><span class="lineno"> 1409</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01410" name="l01410"></a><span class="lineno"> 1410</span> </div>
+<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"> 1411</span><span class="comment">// PICO_CONFIG: PICO_DEBUG_PIN_COUNT, Number of pins to use for debug output (if enabled), min=1, max=28, default=3, group=hardware_gpio</span></div>
+<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span><span class="preprocessor">#ifndef PICO_DEBUG_PIN_COUNT</span></div>
+<div class="line"><a id="l01413" name="l01413"></a><span class="lineno"> 1413</span><span class="preprocessor">#define PICO_DEBUG_PIN_COUNT 3u</span></div>
+<div class="line"><a id="l01414" name="l01414"></a><span class="lineno"> 1414</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01415" name="l01415"></a><span class="lineno"> 1415</span> </div>
+<div class="line"><a id="l01416" name="l01416"></a><span class="lineno"> 1416</span><span class="preprocessor">#ifndef __cplusplus</span></div>
+<div class="line"><a id="l01417" name="l01417"></a><span class="lineno"> 1417</span><span class="comment">// note these two macros may only be used once per and only apply per compilation unit (hence the CU_)</span></div>
+<div class="line"><a id="l01418" name="l01418"></a><span class="lineno"> 1418</span><span class="preprocessor">#define CU_REGISTER_DEBUG_PINS(...) enum __unused DEBUG_PIN_TYPE { _none = 0, __VA_ARGS__ }; static enum DEBUG_PIN_TYPE __selected_debug_pins;</span></div>
+<div class="line"><a id="l01419" name="l01419"></a><span class="lineno"> 1419</span><span class="preprocessor">#define CU_SELECT_DEBUG_PINS(x) static enum DEBUG_PIN_TYPE __selected_debug_pins = (x);</span></div>
+<div class="line"><a id="l01420" name="l01420"></a><span class="lineno"> 1420</span><span class="preprocessor">#define DEBUG_PINS_ENABLED(p) (__selected_debug_pins == (p))</span></div>
+<div class="line"><a id="l01421" name="l01421"></a><span class="lineno"> 1421</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l01422" name="l01422"></a><span class="lineno"> 1422</span><span class="preprocessor">#define CU_REGISTER_DEBUG_PINS(p...) \</span></div>
+<div class="line"><a id="l01423" name="l01423"></a><span class="lineno"> 1423</span><span class="preprocessor"> enum DEBUG_PIN_TYPE { _none = 0, p }; \</span></div>
+<div class="line"><a id="l01424" name="l01424"></a><span class="lineno"> 1424</span><span class="preprocessor"> template <enum DEBUG_PIN_TYPE> class __debug_pin_settings { \</span></div>
+<div class="line"><a id="l01425" name="l01425"></a><span class="lineno"> 1425</span><span class="preprocessor"> public: \</span></div>
+<div class="line"><a id="l01426" name="l01426"></a><span class="lineno"> 1426</span><span class="preprocessor"> static inline bool enabled() { return false; } \</span></div>
+<div class="line"><a id="l01427" name="l01427"></a><span class="lineno"> 1427</span><span class="preprocessor"> };</span></div>
+<div class="line"><a id="l01428" name="l01428"></a><span class="lineno"> 1428</span><span class="preprocessor">#define CU_SELECT_DEBUG_PINS(x) template<> inline bool __debug_pin_settings<x>::enabled() { return true; };</span></div>
+<div class="line"><a id="l01429" name="l01429"></a><span class="lineno"> 1429</span><span class="preprocessor">#define DEBUG_PINS_ENABLED(p) (__debug_pin_settings<p>::enabled())</span></div>
+<div class="line"><a id="l01430" name="l01430"></a><span class="lineno"> 1430</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l01431" name="l01431"></a><span class="lineno"> 1431</span><span class="preprocessor">#define DEBUG_PINS_SET(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_set_mask((unsigned)(v)<<PICO_DEBUG_PIN_BASE)</span></div>
+<div class="line"><a id="l01432" name="l01432"></a><span class="lineno"> 1432</span><span class="preprocessor">#define DEBUG_PINS_CLR(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_clr_mask((unsigned)(v)<<PICO_DEBUG_PIN_BASE)</span></div>
+<div class="line"><a id="l01433" name="l01433"></a><span class="lineno"> 1433</span><span class="preprocessor">#define DEBUG_PINS_XOR(p, v) if (DEBUG_PINS_ENABLED(p)) gpio_xor_mask((unsigned)(v)<<PICO_DEBUG_PIN_BASE)</span></div>
+<div class="line"><a id="l01434" name="l01434"></a><span class="lineno"> 1434</span> </div>
+<div class="line"><a id="l01435" name="l01435"></a><span class="lineno"> 1435</span><span class="preprocessor">#endif </span><span class="comment">// _GPIO_H_</span></div>
+<div class="ttc" id="agpio_8h_html_a27085b238a536b1a919497a563caf666"><div class="ttname"><a href="gpio_8h.html#a27085b238a536b1a919497a563caf666">gpio_dir</a></div><div class="ttdeci">gpio_dir</div><div class="ttdef"><b>Definition:</b> gpio.h:170</div></div>
+<div class="ttc" id="agpio_8h_html_a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531"><div class="ttname"><a href="gpio_8h.html#a27085b238a536b1a919497a563caf666a1b59f059dea546f0248fb26232ee3531">GPIO_OUT</a></div><div class="ttdeci">@ GPIO_OUT</div><div class="ttdoc">set GPIO to output</div><div class="ttdef"><b>Definition:</b> gpio.h:171</div></div>
+<div class="ttc" id="agpio_8h_html_a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155"><div class="ttname"><a href="gpio_8h.html#a27085b238a536b1a919497a563caf666a3343e227f62c4c536efff81438a8e155">GPIO_IN</a></div><div class="ttdeci">@ GPIO_IN</div><div class="ttdoc">set GPIO to input</div><div class="ttdef"><b>Definition:</b> gpio.h:172</div></div>
+<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990">gpio_override</a></div><div class="ttdeci">gpio_override</div><div class="ttdef"><b>Definition:</b> gpio.h:207</div></div>
+<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a1d047c6f785ba82c18c3f120841d17b5">GPIO_OVERRIDE_INVERT</a></div><div class="ttdeci">@ GPIO_OVERRIDE_INVERT</div><div class="ttdoc">invert peripheral signal selected via gpio_set_function</div><div class="ttdef"><b>Definition:</b> gpio.h:209</div></div>
+<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990a716e4dd9554b27d65c2c88bcfd6e7dd4">GPIO_OVERRIDE_HIGH</a></div><div class="ttdeci">@ GPIO_OVERRIDE_HIGH</div><div class="ttdoc">drive high/enable output</div><div class="ttdef"><b>Definition:</b> gpio.h:211</div></div>
+<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990aab4dee7abb67c5d1cc213c810b9447ab">GPIO_OVERRIDE_LOW</a></div><div class="ttdeci">@ GPIO_OVERRIDE_LOW</div><div class="ttdoc">drive low/disable output</div><div class="ttdef"><b>Definition:</b> gpio.h:210</div></div>
+<div class="ttc" id="agpio_8h_html_a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130"><div class="ttname"><a href="gpio_8h.html#a760c408911eb8aaad767d39df9e4e990ab06a7f6c3884d4d4870f5aee7438e130">GPIO_OVERRIDE_NORMAL</a></div><div class="ttdeci">@ GPIO_OVERRIDE_NORMAL</div><div class="ttdoc">peripheral signal selected via gpio_set_function</div><div class="ttdef"><b>Definition:</b> gpio.h:208</div></div>
+<div class="ttc" id="agroup__hardware__base_html_ga625e737a57f12211cf1f634ca5095ae4"><div class="ttname"><a href="group__hardware__base.html#ga625e737a57f12211cf1f634ca5095ae4">hw_set_bits</a></div><div class="ttdeci">static __force_inline void hw_set_bits(io_rw_32 *addr, uint32_t mask)</div><div class="ttdoc">Atomically set the specified bits to 1 in a HW register.</div><div class="ttdef"><b>Definition:</b> address_mapped.h:135</div></div>
+<div class="ttc" id="agroup__hardware__base_html_gafd1c089df868d987daf95870b501c2ed"><div class="ttname"><a href="group__hardware__base.html#gafd1c089df868d987daf95870b501c2ed">hw_clear_bits</a></div><div class="ttdeci">static __force_inline void hw_clear_bits(io_rw_32 *addr, uint32_t mask)</div><div class="ttdoc">Atomically clear the specified bits to 0 in a HW register.</div><div class="ttdef"><b>Definition:</b> address_mapped.h:145</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga07c4de2660686b9158a5b0526ccbb446"><div class="ttname"><a href="group__hardware__gpio.html#ga07c4de2660686b9158a5b0526ccbb446">gpio_add_raw_irq_handler_with_order_priority</a></div><div class="ttdeci">static void gpio_add_raw_irq_handler_with_order_priority(uint gpio, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:669</div></div>
+<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 event_mask, 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>
+<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 event_mask)</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>
+<div class="ttc" id="agroup__hardware__gpio_html_ga0a818ceaa50e3e2317fbb0856d47eaef"><div class="ttname"><a href="group__hardware__gpio.html#ga0a818ceaa50e3e2317fbb0856d47eaef">gpio_get_out_level</a></div><div class="ttdeci">static bool gpio_get_out_level(uint gpio)</div><div class="ttdoc">Determine whether a GPIO is currently driven high or low.</div><div class="ttdef"><b>Definition:</b> gpio.h:1188</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga0ac6439a42e8080449a192bb79e6166c"><div class="ttname"><a href="group__hardware__gpio.html#ga0ac6439a42e8080449a192bb79e6166c">gpio_put_all64</a></div><div class="ttdeci">static void gpio_put_all64(uint64_t value)</div><div class="ttdoc">Drive all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1128</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga0b10ec79e10d7df958373b178debcd2e"><div class="ttname"><a href="group__hardware__gpio.html#ga0b10ec79e10d7df958373b178debcd2e">gpio_set_dormant_irq_enabled</a></div><div class="ttdeci">void gpio_set_dormant_irq_enabled(uint gpio, uint32_t event_mask, bool enabled)</div><div class="ttdoc">Enable dormant wake up interrupt for specified GPIO and events.</div><div class="ttdef"><b>Definition:</b> gpio.c:253</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga0ffe0ddabcd081b513731275df97e7ca"><div class="ttname"><a href="group__hardware__gpio.html#ga0ffe0ddabcd081b513731275df97e7ca">gpio_set_drive_strength</a></div><div class="ttdeci">void gpio_set_drive_strength(uint gpio, enum gpio_drive_strength drive)</div><div class="ttdoc">Set drive strength for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:138</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga1339fecb25e263eee2a6b9d362c3a946"><div class="ttname"><a href="group__hardware__gpio.html#ga1339fecb25e263eee2a6b9d362c3a946">gpio_function_t</a></div><div class="ttdeci">enum gpio_function_rp2040 gpio_function_t</div><div class="ttdoc">GPIO pin function selectors on RP2040 (used as typedef gpio_function_t)</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga1378540c24ec318ac7674dac4ec30140"><div class="ttname"><a href="group__hardware__gpio.html#ga1378540c24ec318ac7674dac4ec30140">gpio_get_drive_strength</a></div><div class="ttdeci">enum gpio_drive_strength gpio_get_drive_strength(uint gpio)</div><div class="ttdoc">Determine current drive strength for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:146</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga14eba84c1c8f80b08a770775d3bf060a"><div class="ttname"><a href="group__hardware__gpio.html#ga14eba84c1c8f80b08a770775d3bf060a">gpio_drive_strength</a></div><div class="ttdeci">gpio_drive_strength</div><div class="ttdoc">Drive strength levels for GPIO outputs.</div><div class="ttdef"><b>Definition:</b> gpio.h:232</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga1f52eecc12d4348ef8bd1e17bdb4b107"><div class="ttname"><a href="group__hardware__gpio.html#ga1f52eecc12d4348ef8bd1e17bdb4b107">gpio_set_input_hysteresis_enabled</a></div><div class="ttdeci">void gpio_set_input_hysteresis_enabled(uint gpio, bool enabled)</div><div class="ttdoc">Enable/disable GPIO input hysteresis (Schmitt trigger)</div><div class="ttdef"><b>Definition:</b> gpio.c:106</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga22f6b90c4c7e0013b4b5341de0a44fc4"><div class="ttname"><a href="group__hardware__gpio.html#ga22f6b90c4c7e0013b4b5341de0a44fc4">gpio_set_function</a></div><div class="ttdeci">void gpio_set_function(uint gpio, gpio_function_t fn)</div><div class="ttdoc">Select GPIO function.</div><div class="ttdef"><b>Definition:</b> gpio.c:38</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga24dabfcb46dde4daa8938b36df130c31"><div class="ttname"><a href="group__hardware__gpio.html#ga24dabfcb46dde4daa8938b36df130c31">gpio_get_function</a></div><div class="ttdeci">gpio_function_t gpio_get_function(uint gpio)</div><div class="ttdoc">Determine current GPIO function.</div><div class="ttdef"><b>Definition:</b> gpio.c:56</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga24e5e9eed83f48ffe77f732b800f1405"><div class="ttname"><a href="group__hardware__gpio.html#ga24e5e9eed83f48ffe77f732b800f1405">gpio_add_raw_irq_handler_masked64</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_masked64(uint64_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:237</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga250e767769daabb71b5ea8cab49b4463"><div class="ttname"><a href="group__hardware__gpio.html#ga250e767769daabb71b5ea8cab49b4463">gpio_set_oeover</a></div><div class="ttdeci">void gpio_set_oeover(uint gpio, uint value)</div><div class="ttdoc">Select GPIO output enable override.</div><div class="ttdef"><b>Definition:</b> gpio.c:98</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga25b1f0b4dc42144da4ed3acbed513095"><div class="ttname"><a href="group__hardware__gpio.html#ga25b1f0b4dc42144da4ed3acbed513095">gpio_remove_raw_irq_handler_masked</a></div><div class="ttdeci">void gpio_remove_raw_irq_handler_masked(uint32_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:241</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga2a78dd5d9b2a181794c632aa4881c5ed"><div class="ttname"><a href="group__hardware__gpio.html#ga2a78dd5d9b2a181794c632aa4881c5ed">gpio_get_dir</a></div><div class="ttdeci">static uint gpio_get_dir(uint gpio)</div><div class="ttdoc">Get a specific GPIO direction.</div><div class="ttdef"><b>Definition:</b> gpio.h:1388</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga2db74931aa7a9b7396765d86a6c53148"><div class="ttname"><a href="group__hardware__gpio.html#ga2db74931aa7a9b7396765d86a6c53148">gpio_set_dir_masked64</a></div><div class="ttdeci">static void gpio_set_dir_masked64(uint64_t mask, uint64_t value)</div><div class="ttdoc">Set multiple GPIO directions.</div><div class="ttdef"><b>Definition:</b> gpio.h:1293</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga2e78fcd487a3a2e173322c6502fe9419"><div class="ttname"><a href="group__hardware__gpio.html#ga2e78fcd487a3a2e173322c6502fe9419">gpio_add_raw_irq_handler</a></div><div class="ttdeci">static void gpio_add_raw_irq_handler(uint gpio, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for a specific GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:768</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga2f3ccb15297fecd3792359d9cbbf6ed6"><div class="ttname"><a href="group__hardware__gpio.html#ga2f3ccb15297fecd3792359d9cbbf6ed6">gpio_init_mask</a></div><div class="ttdeci">void gpio_init_mask(uint gpio_mask)</div><div class="ttdoc">Initialise multiple GPIOs (enabled I/O and set func to GPIO_FUNC_SIO)</div><div class="ttdef"><b>Definition:</b> gpio.c:291</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga30a6733240f3d2e25e6b579b6c3902da"><div class="ttname"><a href="group__hardware__gpio.html#ga30a6733240f3d2e25e6b579b6c3902da">gpio_pull_up</a></div><div class="ttdeci">static void gpio_pull_up(uint gpio)</div><div class="ttdoc">Set specified GPIO to be pulled up.</div><div class="ttdef"><b>Definition:</b> gpio.h:299</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga32c1aae77b4b3bf42e9ae554d16284ab"><div class="ttname"><a href="group__hardware__gpio.html#ga32c1aae77b4b3bf42e9ae554d16284ab">gpio_set_function_masked</a></div><div class="ttdeci">void gpio_set_function_masked(uint32_t gpio_mask, gpio_function_t fn)</div><div class="ttdoc">Select the function for multiple GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.c:300</div></div>
+<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>
+<div class="ttc" id="agroup__hardware__gpio_html_ga4422d9c09199d199e8fe736b3c29ae49"><div class="ttname"><a href="group__hardware__gpio.html#ga4422d9c09199d199e8fe736b3c29ae49">gpio_get_slew_rate</a></div><div class="ttdeci">enum gpio_slew_rate gpio_get_slew_rate(uint gpio)</div><div class="ttdoc">Determine current slew rate for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:128</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga495c253b01a68b0f81721d2061741243"><div class="ttname"><a href="group__hardware__gpio.html#ga495c253b01a68b0f81721d2061741243">gpio_remove_raw_irq_handler</a></div><div class="ttdeci">static void gpio_remove_raw_irq_handler(uint gpio, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIO on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.h:814</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga4df18d737955c17a65c5a94412826674"><div class="ttname"><a href="group__hardware__gpio.html#ga4df18d737955c17a65c5a94412826674">gpio_deinit</a></div><div class="ttdeci">void gpio_deinit(uint gpio)</div><div class="ttdoc">Resets a GPIO back to the NULL function, i.e. disables it.</div><div class="ttdef"><b>Definition:</b> gpio.c:287</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga50b526aa81f036a20c60f04106910578"><div class="ttname"><a href="group__hardware__gpio.html#ga50b526aa81f036a20c60f04106910578">gpio_set_dir_all_bits</a></div><div class="ttdeci">static void gpio_set_dir_all_bits(uint32_t values)</div><div class="ttdoc">Set direction of all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1310</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga54c35d7beb7025aa001ae5b93d38935b"><div class="ttname"><a href="group__hardware__gpio.html#ga54c35d7beb7025aa001ae5b93d38935b">gpio_is_pulled_down</a></div><div class="ttdeci">static bool gpio_is_pulled_down(uint gpio)</div><div class="ttdoc">Determine if the specified GPIO is pulled down.</div><div class="ttdef"><b>Definition:</b> gpio.h:328</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga6037bdaf406a84336043c9a6c40e5073"><div class="ttname"><a href="group__hardware__gpio.html#ga6037bdaf406a84336043c9a6c40e5073">gpio_set_inover</a></div><div class="ttdeci">void gpio_set_inover(uint gpio, uint value)</div><div class="ttdoc">Select GPIO input override.</div><div class="ttdef"><b>Definition:</b> gpio.c:82</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga6165f07f4b619dd08ea6dc97d069e78a"><div class="ttname"><a href="group__hardware__gpio.html#ga6165f07f4b619dd08ea6dc97d069e78a">gpio_set_irq_enabled_with_callback</a></div><div class="ttdeci">void gpio_set_irq_enabled_with_callback(uint gpio, uint32_t event_mask, bool enabled, gpio_irq_callback_t callback)</div><div class="ttdoc">Convenience function which performs multiple GPIO IRQ related initializations.</div><div class="ttdef"><b>Definition:</b> gpio.c:201</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga6347e27da3ab34f1ea65b5ae16ab724f"><div class="ttname"><a href="group__hardware__gpio.html#ga6347e27da3ab34f1ea65b5ae16ab724f">gpio_irq_level</a></div><div class="ttdeci">gpio_irq_level</div><div class="ttdoc">GPIO Interrupt level definitions (GPIO events)</div><div class="ttdef"><b>Definition:</b> gpio.h:190</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga64de3fa94def1d5e8c87f419f25ea7fd"><div class="ttname"><a href="group__hardware__gpio.html#ga64de3fa94def1d5e8c87f419f25ea7fd">gpio_xor_mask</a></div><div class="ttdeci">static void gpio_xor_mask(uint32_t mask)</div><div class="ttdoc">Toggle every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:1003</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga6a40edf0d86f6b3f0dcb51a768cf4681"><div class="ttname"><a href="group__hardware__gpio.html#ga6a40edf0d86f6b3f0dcb51a768cf4681">gpio_set_dir</a></div><div class="ttdeci">static void gpio_set_dir(uint gpio, bool out)</div><div class="ttdoc">Set a single GPIO direction.</div><div class="ttdef"><b>Definition:</b> gpio.h:1340</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga6aca495d644a6ae66050a99ef44defbe"><div class="ttname"><a href="group__hardware__gpio.html#ga6aca495d644a6ae66050a99ef44defbe">gpio_clr_mask</a></div><div class="ttdeci">static void gpio_clr_mask(uint32_t mask)</div><div class="ttdoc">Drive low every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:955</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga6ff6c7a437acc5750c0a290c086347b5"><div class="ttname"><a href="group__hardware__gpio.html#ga6ff6c7a437acc5750c0a290c086347b5">gpio_put_masked_n</a></div><div class="ttdeci">static void gpio_put_masked_n(uint n, uint32_t mask, uint32_t value)</div><div class="ttdoc">Drive GPIOs high/low depending on parameters.</div><div class="ttdef"><b>Definition:</b> gpio.h:1098</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga71c466b22b8ce63c8863933c82c4810e"><div class="ttname"><a href="group__hardware__gpio.html#ga71c466b22b8ce63c8863933c82c4810e">gpio_set_dir_out_masked64</a></div><div class="ttdeci">static void gpio_set_dir_out_masked64(uint64_t mask)</div><div class="ttdoc">Set a number of GPIOs to output.</div><div class="ttdef"><b>Definition:</b> gpio.h:1223</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga71d35b29e897b9bb4fc881b587b08cab"><div class="ttname"><a href="group__hardware__gpio.html#ga71d35b29e897b9bb4fc881b587b08cab">gpio_put</a></div><div class="ttdeci">static void gpio_put(uint gpio, bool value)</div><div class="ttdoc">Drive a single GPIO high/low.</div><div class="ttdef"><b>Definition:</b> gpio.h:1145</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga72a5e5a6ac1a108887229af522e65a06"><div class="ttname"><a href="group__hardware__gpio.html#ga72a5e5a6ac1a108887229af522e65a06">gpio_xor_mask_n</a></div><div class="ttdeci">static void gpio_xor_mask_n(uint n, uint32_t mask)</div><div class="ttdoc">Toggle every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:1033</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga72c250c9393043ea5beb56092d26e229"><div class="ttname"><a href="group__hardware__gpio.html#ga72c250c9393043ea5beb56092d26e229">gpio_slew_rate</a></div><div class="ttdeci">gpio_slew_rate</div><div class="ttdoc">Slew rate limiting levels for GPIO outputs.</div><div class="ttdef"><b>Definition:</b> gpio.h:221</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga74a8c3e55185581bc3df335aea1d0fb8"><div class="ttname"><a href="group__hardware__gpio.html#ga74a8c3e55185581bc3df335aea1d0fb8">gpio_set_input_enabled</a></div><div class="ttdeci">void gpio_set_input_enabled(uint gpio, bool enabled)</div><div class="ttdoc">Enable GPIO input.</div><div class="ttdef"><b>Definition:</b> gpio.c:273</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga78f8d7c7c8fb66794f7c269311f145ae"><div class="ttname"><a href="group__hardware__gpio.html#ga78f8d7c7c8fb66794f7c269311f145ae">gpio_add_raw_irq_handler_with_order_priority_masked64</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_with_order_priority_masked64(uint64_t gpio_mask, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:227</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga79819a97822983d7422d37c3e532cc53"><div class="ttname"><a href="group__hardware__gpio.html#ga79819a97822983d7422d37c3e532cc53">gpio_set_dir_in_masked</a></div><div class="ttdeci">static void gpio_set_dir_in_masked(uint32_t mask)</div><div class="ttdoc">Set a number of GPIOs to input.</div><div class="ttdef"><b>Definition:</b> gpio.h:1239</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga7aa41e10d04a8d99d9a8c4d7ba5007b8"><div class="ttname"><a href="group__hardware__gpio.html#ga7aa41e10d04a8d99d9a8c4d7ba5007b8">gpio_put_all</a></div><div class="ttdeci">static void gpio_put_all(uint32_t value)</div><div class="ttdoc">Drive all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1115</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga7b2cc867ac41996100e881a768c7f969"><div class="ttname"><a href="group__hardware__gpio.html#ga7b2cc867ac41996100e881a768c7f969">gpio_set_dir_out_masked</a></div><div class="ttdeci">static void gpio_set_dir_out_masked(uint32_t mask)</div><div class="ttdoc">Set a number of GPIOs to output.</div><div class="ttdef"><b>Definition:</b> gpio.h:1208</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga829129eed5d42f3455e9da339219d814"><div class="ttname"><a href="group__hardware__gpio.html#ga829129eed5d42f3455e9da339219d814">gpio_set_outover</a></div><div class="ttdeci">void gpio_set_outover(uint gpio, uint value)</div><div class="ttdoc">Set GPIO output override.</div><div class="ttdef"><b>Definition:</b> gpio.c:90</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga83093178ba0ad7d711bff47fc90d361b"><div class="ttname"><a href="group__hardware__gpio.html#ga83093178ba0ad7d711bff47fc90d361b">gpio_set_function_masked64</a></div><div class="ttdeci">void gpio_set_function_masked64(uint64_t gpio_mask, gpio_function_t fn)</div><div class="ttdoc">Select the function for multiple GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.c:309</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga8aa4741d93dc40bc728dbd3e41813ad1"><div class="ttname"><a href="group__hardware__gpio.html#ga8aa4741d93dc40bc728dbd3e41813ad1">gpio_init</a></div><div class="ttdeci">void gpio_init(uint gpio)</div><div class="ttdoc">Initialise a GPIO for (enabled I/O and set func to GPIO_FUNC_SIO)</div><div class="ttdef"><b>Definition:</b> gpio.c:281</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga8fcdfeff45cc2030530bf00c6ae1e0a3"><div class="ttname"><a href="group__hardware__gpio.html#ga8fcdfeff45cc2030530bf00c6ae1e0a3">gpio_irq_callback_t</a></div><div class="ttdeci">void(* gpio_irq_callback_t)(uint gpio, uint32_t event_mask)</div><div class="ttdef"><b>Definition:</b> gpio.h:205</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga9310346a1f7b58ba6b6be82097980af6"><div class="ttname"><a href="group__hardware__gpio.html#ga9310346a1f7b58ba6b6be82097980af6">gpio_remove_raw_irq_handler_masked64</a></div><div class="ttdeci">void gpio_remove_raw_irq_handler_masked64(uint64_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Removes a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:247</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga94edb03754cad21d38ef58bf85c13814"><div class="ttname"><a href="group__hardware__gpio.html#ga94edb03754cad21d38ef58bf85c13814">gpio_set_mask_n</a></div><div class="ttdeci">static void gpio_set_mask_n(uint n, uint32_t mask)</div><div class="ttdoc">Drive high every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:938</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga964463f96737c6d1127188b8c0bc44b8"><div class="ttname"><a href="group__hardware__gpio.html#ga964463f96737c6d1127188b8c0bc44b8">gpio_clr_mask_n</a></div><div class="ttdeci">static void gpio_clr_mask_n(uint n, uint32_t mask)</div><div class="ttdoc">Drive low every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:986</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga9788ec1b8306c6bacfb578f0074eb3ad"><div class="ttname"><a href="group__hardware__gpio.html#ga9788ec1b8306c6bacfb578f0074eb3ad">gpio_set_irqover</a></div><div class="ttdeci">void gpio_set_irqover(uint gpio, uint value)</div><div class="ttdoc">Set GPIO IRQ override.</div><div class="ttdef"><b>Definition:</b> gpio.c:73</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_ga9eea2536fc6321a238fe6937652c4e9e"><div class="ttname"><a href="group__hardware__gpio.html#ga9eea2536fc6321a238fe6937652c4e9e">gpio_set_mask64</a></div><div class="ttdeci">static void gpio_set_mask64(uint64_t mask)</div><div class="ttdoc">Drive high every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:921</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaa0dbc5c65103d483217a190b72ed26dc"><div class="ttname"><a href="group__hardware__gpio.html#gaa0dbc5c65103d483217a190b72ed26dc">gpio_is_dir_out</a></div><div class="ttdeci">static bool gpio_is_dir_out(uint gpio)</div><div class="ttdoc">Check if a specific GPIO direction is OUT.</div><div class="ttdef"><b>Definition:</b> gpio.h:1373</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaa4c504fbf6c76632e1d11e507a3861e9"><div class="ttname"><a href="group__hardware__gpio.html#gaa4c504fbf6c76632e1d11e507a3861e9">gpio_get_all64</a></div><div class="ttdeci">static uint64_t gpio_get_all64(void)</div><div class="ttdoc">Get raw value of all GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.h:889</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaa613a661abe840e614116c67b84c2003"><div class="ttname"><a href="group__hardware__gpio.html#gaa613a661abe840e614116c67b84c2003">gpio_put_masked64</a></div><div class="ttdeci">static void gpio_put_masked64(uint64_t mask, uint64_t value)</div><div class="ttdoc">Drive GPIOs high/low depending on parameters.</div><div class="ttdef"><b>Definition:</b> gpio.h:1075</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaa64fdceff54dda03f4427f04c2f9ced2"><div class="ttname"><a href="group__hardware__gpio.html#gaa64fdceff54dda03f4427f04c2f9ced2">gpio_set_dir_masked</a></div><div class="ttdeci">static void gpio_set_dir_masked(uint32_t mask, uint32_t value)</div><div class="ttdoc">Set multiple GPIO directions.</div><div class="ttdef"><b>Definition:</b> gpio.h:1274</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gab37bb6b15065720e3efc9c39b3207a16"><div class="ttname"><a href="group__hardware__gpio.html#gab37bb6b15065720e3efc9c39b3207a16">gpio_clr_mask64</a></div><div class="ttdeci">static void gpio_clr_mask64(uint64_t mask)</div><div class="ttdoc">Drive low every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:968</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gab6a80e41c677f7643a114351ea48ced4"><div class="ttname"><a href="group__hardware__gpio.html#gab6a80e41c677f7643a114351ea48ced4">gpio_set_dir_all_bits64</a></div><div class="ttdeci">static void gpio_set_dir_all_bits64(uint64_t values)</div><div class="ttdoc">Set direction of all pins simultaneously.</div><div class="ttdef"><b>Definition:</b> gpio.h:1323</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gab6bf9552da32b3dd0a5d0db45d8374fc"><div class="ttname"><a href="group__hardware__gpio.html#gab6bf9552da32b3dd0a5d0db45d8374fc">gpio_set_pulls</a></div><div class="ttdeci">void gpio_set_pulls(uint gpio, bool up, bool down)</div><div class="ttdoc">Select up and down pulls on specific GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:63</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gab777c66bd5b766a8552ed5625197b119"><div class="ttname"><a href="group__hardware__gpio.html#gab777c66bd5b766a8552ed5625197b119">gpio_xor_mask64</a></div><div class="ttdeci">static void gpio_xor_mask64(uint64_t mask)</div><div class="ttdoc">Toggle every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:1016</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gac451f3251c0d0bea97aa535f65974ec8"><div class="ttname"><a href="group__hardware__gpio.html#gac451f3251c0d0bea97aa535f65974ec8">gpio_is_input_hysteresis_enabled</a></div><div class="ttdeci">bool gpio_is_input_hysteresis_enabled(uint gpio)</div><div class="ttdoc">Determine whether input hysteresis is enabled on a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:115</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gac6dbb6aa0cd534decaee71bfb7883371"><div class="ttname"><a href="group__hardware__gpio.html#gac6dbb6aa0cd534decaee71bfb7883371">gpio_set_dir_in_masked64</a></div><div class="ttdeci">static void gpio_set_dir_in_masked64(uint64_t mask)</div><div class="ttdoc">Set a number of GPIOs to input.</div><div class="ttdef"><b>Definition:</b> gpio.h:1252</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gac7038968884d02b67403a50f1be6ecd6"><div class="ttname"><a href="group__hardware__gpio.html#gac7038968884d02b67403a50f1be6ecd6">gpio_is_pulled_up</a></div><div class="ttdeci">static bool gpio_is_pulled_up(uint gpio)</div><div class="ttdoc">Determine if the specified GPIO is pulled up.</div><div class="ttdef"><b>Definition:</b> gpio.h:309</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gac86436d117c7a87f982c9b3311543302"><div class="ttname"><a href="group__hardware__gpio.html#gac86436d117c7a87f982c9b3311543302">gpio_put_masked</a></div><div class="ttdeci">static void gpio_put_masked(uint32_t mask, uint32_t value)</div><div class="ttdoc">Drive GPIOs high/low depending on parameters.</div><div class="ttdef"><b>Definition:</b> gpio.h:1056</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gae57a625b7e0bcac6d596f35864ffc792"><div class="ttname"><a href="group__hardware__gpio.html#gae57a625b7e0bcac6d596f35864ffc792">gpio_disable_pulls</a></div><div class="ttdeci">static void gpio_disable_pulls(uint gpio)</div><div class="ttdoc">Disable pulls on specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:337</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gae895be2d3c5af5df460150eafe7858a4"><div class="ttname"><a href="group__hardware__gpio.html#gae895be2d3c5af5df460150eafe7858a4">gpio_get_all</a></div><div class="ttdeci">static uint32_t gpio_get_all(void)</div><div class="ttdoc">Get raw value of all GPIOs.</div><div class="ttdef"><b>Definition:</b> gpio.h:876</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaea499c33479cf8f87a91a74411ad241f"><div class="ttname"><a href="group__hardware__gpio.html#gaea499c33479cf8f87a91a74411ad241f">gpio_pull_down</a></div><div class="ttdeci">static void gpio_pull_down(uint gpio)</div><div class="ttdoc">Set specified GPIO to be pulled down.</div><div class="ttdef"><b>Definition:</b> gpio.h:318</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaf1d12efbed0809650d98fe9a424876c8"><div class="ttname"><a href="group__hardware__gpio.html#gaf1d12efbed0809650d98fe9a424876c8">gpio_set_slew_rate</a></div><div class="ttdeci">void gpio_set_slew_rate(uint gpio, enum gpio_slew_rate slew)</div><div class="ttdoc">Set slew rate for a specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.c:120</div></div>
+<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>
+<div class="ttc" id="agroup__hardware__gpio_html_gaf38c0b39fba06d1a49d1be56ef548d73"><div class="ttname"><a href="group__hardware__gpio.html#gaf38c0b39fba06d1a49d1be56ef548d73">gpio_get</a></div><div class="ttdeci">static bool gpio_get(uint gpio)</div><div class="ttdoc">Get state of a single specified GPIO.</div><div class="ttdef"><b>Definition:</b> gpio.h:859</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaf3aa12aa4543965e24f52cfa9b529904"><div class="ttname"><a href="group__hardware__gpio.html#gaf3aa12aa4543965e24f52cfa9b529904">gpio_set_mask</a></div><div class="ttdeci">static void gpio_set_mask(uint32_t mask)</div><div class="ttdoc">Drive high every GPIO appearing in mask.</div><div class="ttdef"><b>Definition:</b> gpio.h:908</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaf43d2f09003804f535dc118688a9702c"><div class="ttname"><a href="group__hardware__gpio.html#gaf43d2f09003804f535dc118688a9702c">gpio_add_raw_irq_handler_with_order_priority_masked</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_with_order_priority_masked(uint32_t gpio_mask, irq_handler_t handler, uint8_t order_priority)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:221</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gaf745f0bcdaf049d2e060aa8971352a55"><div class="ttname"><a href="group__hardware__gpio.html#gaf745f0bcdaf049d2e060aa8971352a55">gpio_add_raw_irq_handler_masked</a></div><div class="ttdeci">void gpio_add_raw_irq_handler_masked(uint32_t gpio_mask, irq_handler_t handler)</div><div class="ttdoc">Adds a raw GPIO IRQ handler for the specified GPIOs on the current core.</div><div class="ttdef"><b>Definition:</b> gpio.c:233</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa04d31285e4f4921102485e775e55e295">GPIO_DRIVE_STRENGTH_2MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_2MA</div><div class="ttdoc">2 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:233</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa3cc28353572b5f8e8bb2eb80f884a98d">GPIO_DRIVE_STRENGTH_8MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_8MA</div><div class="ttdoc">8 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:235</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa418f6be7649c316bab248b91c2eb1716">GPIO_DRIVE_STRENGTH_12MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_12MA</div><div class="ttdoc">12 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:236</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6"><div class="ttname"><a href="group__hardware__gpio.html#gga14eba84c1c8f80b08a770775d3bf060aa5c9d0b430fd44ee7688d58cf94f47de6">GPIO_DRIVE_STRENGTH_4MA</a></div><div class="ttdeci">@ GPIO_DRIVE_STRENGTH_4MA</div><div class="ttdoc">4 mA nominal drive strength</div><div class="ttdef"><b>Definition:</b> gpio.h:234</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1341b53a6f9d3f6fb65f57f3d16d289e">GPIO_IRQ_EDGE_RISE</a></div><div class="ttdeci">@ GPIO_IRQ_EDGE_RISE</div><div class="ttdoc">IRQ when the GPIO has transitioned from a logical 1 to a logical 0.</div><div class="ttdef"><b>Definition:</b> gpio.h:194</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1967e44a20619945c86b6fd73e3b0a59">GPIO_IRQ_EDGE_FALL</a></div><div class="ttdeci">@ GPIO_IRQ_EDGE_FALL</div><div class="ttdoc">IRQ when the GPIO has transitioned from a logical 0 to a logical 1.</div><div class="ttdef"><b>Definition:</b> gpio.h:193</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724fa1c66c5d8bd30302e7efb5aca467bb136">GPIO_IRQ_LEVEL_LOW</a></div><div class="ttdeci">@ GPIO_IRQ_LEVEL_LOW</div><div class="ttdoc">IRQ when the GPIO pin is a logical 1.</div><div class="ttdef"><b>Definition:</b> gpio.h:191</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de"><div class="ttname"><a href="group__hardware__gpio.html#gga6347e27da3ab34f1ea65b5ae16ab724faee23912609cd5f804358476dec7511de">GPIO_IRQ_LEVEL_HIGH</a></div><div class="ttdeci">@ GPIO_IRQ_LEVEL_HIGH</div><div class="ttdoc">IRQ when the GPIO pin is a logical 0.</div><div class="ttdef"><b>Definition:</b> gpio.h:192</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade"><div class="ttname"><a href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a44b116ac7ac70a405c952a6054a1eade">GPIO_SLEW_RATE_FAST</a></div><div class="ttdeci">@ GPIO_SLEW_RATE_FAST</div><div class="ttdoc">Slew rate limiting disabled.</div><div class="ttdef"><b>Definition:</b> gpio.h:223</div></div>
+<div class="ttc" id="agroup__hardware__gpio_html_gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634"><div class="ttname"><a href="group__hardware__gpio.html#gga72c250c9393043ea5beb56092d26e229a6173e20f5be765a136661c48f9766634">GPIO_SLEW_RATE_SLOW</a></div><div class="ttdeci">@ GPIO_SLEW_RATE_SLOW</div><div class="ttdoc">Slew rate limiting enabled.</div><div class="ttdef"><b>Definition:</b> gpio.h:222</div></div>
+<div class="ttc" id="agroup__hardware__irq_html_ga8478ee26cc144e947ccd75b0169059a6"><div class="ttname"><a href="group__hardware__irq.html#ga8478ee26cc144e947ccd75b0169059a6">irq_handler_t</a></div><div class="ttdeci">void(* irq_handler_t)(void)</div><div class="ttdoc">Interrupt handler function type.</div><div class="ttdef"><b>Definition:</b> irq.h:195</div></div>
+<div class="ttc" id="agroup__pico__platform_html_ga58434ad816f519308ee02c639b7965bc"><div class="ttname"><a href="group__pico__platform.html#ga58434ad816f519308ee02c639b7965bc">get_core_num</a></div><div class="ttdeci">static __force_inline uint get_core_num(void)</div><div class="ttdoc">Get the current core number.</div><div class="ttdef"><b>Definition:</b> platform.h:141</div></div>
<div class="ttc" id="airq_8h_html"><div class="ttname"><a href="irq_8h.html">irq.h</a></div></div>
<div class="ttc" id="apico_8h_html"><div class="ttname"><a href="pico_8h.html">pico.h</a></div></div>
-<div class="ttc" id="astructio__irq__ctrl__hw__t_html"><div class="ttname"><a href="structio__irq__ctrl__hw__t.html">io_irq_ctrl_hw_t</a></div><div class="ttdef"><b>Definition:</b> iobank0.h:46</div></div>
+<div class="ttc" id="astructio__bank0__irq__ctrl__hw__t_html"><div class="ttname"><a href="structio__bank0__irq__ctrl__hw__t.html">io_bank0_irq_ctrl_hw_t</a></div><div class="ttdef"><b>Definition:</b> io_bank0.h:67</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->