aboutsummaryrefslogtreecommitdiffstats
path: root/host
diff options
context:
space:
mode:
authorLane Kolbly <lane.kolbly@ni.com>2021-10-27 16:12:19 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2021-11-05 12:23:48 -0700
commitabea5bb240a64a721de7bc8108e72671726b3e98 (patch)
tree9433c75883109ffade54e03ead2bd65509973dbd /host
parent3063228cf68968b72d63c4aaad3fe2eb6e42305f (diff)
downloaduhd-abea5bb240a64a721de7bc8108e72671726b3e98.tar.gz
uhd-abea5bb240a64a721de7bc8108e72671726b3e98.tar.bz2
uhd-abea5bb240a64a721de7bc8108e72671726b3e98.zip
docs: x410: Document GPIO API and capabilities
Diffstat (limited to 'host')
-rw-r--r--host/docs/gpio_api.dox2
-rwxr-xr-xhost/docs/res/HDMI_Connector_Pinout.svg111
-rw-r--r--host/docs/usrp_x4xx.dox4
-rw-r--r--host/docs/x400_gpio_api.dox134
4 files changed, 251 insertions, 0 deletions
diff --git a/host/docs/gpio_api.dox b/host/docs/gpio_api.dox
index bcea7c5c8..8617000ad 100644
--- a/host/docs/gpio_api.dox
+++ b/host/docs/gpio_api.dox
@@ -11,6 +11,8 @@ by an ATR (Automatic Transmit / Receive). This allows them to be toggled
simultaneously with other radio-level changes (e.g., enabling or
disabling a TX or RX mixer).
+For information on the X410 GPIO, see \ref page_x400_gpio_api
+
\subsection xgpio_fpanel_gpio X3x0 Front Panel GPIO
The GPIO port is not meant to drive big loads. You should not try to source more than 5mA per pin.
diff --git a/host/docs/res/HDMI_Connector_Pinout.svg b/host/docs/res/HDMI_Connector_Pinout.svg
new file mode 100755
index 000000000..2a14a45da
--- /dev/null
+++ b/host/docs/res/HDMI_Connector_Pinout.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="224" height="92" version="1.1" viewBox="0 0 224 92" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <metadata>
+ <rdf:RDF>
+ <cc:Work rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+ <dc:title/>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g transform="translate(0 -272.658)">
+ <path d="m19.7333 283.046c-5.72218 0-9.96192 4.84959-9.96192 10.3099v30.0874c0 5.53625 3.45832 8.54223 6.35409 9.57468l6.02103 2.14672c2.76077 0.86829 3.69509 1.84179 5.38125 3.75741l10.166 11.5494c1.89207 2.14955 4.82374 3.80216 8.4133 3.80216h131.796c3.58953 0 6.52123-1.65261 8.4133-3.80216l10.166-11.5494c1.68616-1.91562 2.62048-2.88912 5.38126-3.75741l6.02103-2.14672c2.89577-1.03245 6.35408-4.03843 6.35408-9.57468v-30.0874c0-5.4603-4.23974-10.3099-9.96193-10.3099z" fill="#fff" stroke="#000" stroke-width="5.98821"/>
+ <g stroke="#000">
+ <path d="m46.7259 324.176c-0.804886 0-1.22781-0.0543-1.99268-0.30492l-7.83014-2.56561c-0.586631-0.19222-1.01858-0.86425-1.01858-1.48157v-5.60217c0-0.61732 0.77165-1.25008 1.38897-1.25008h149.453c0.61732 0 1.38897 0.63276 1.38897 1.25008v5.60217c0 0.61732-0.43195 1.28935-1.01857 1.48157l-7.83014 2.56561c-0.76489 0.25061-1.1878 0.30492-1.99269 0.30492h-130.548z" fill="#b3b3b3" stroke-width="1.00612"/>
+ <g fill="#fcee21" stroke-width="1.00612">
+ <rect x="44.7745" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="58.8965" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="73.0184" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="87.1403" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="101.262" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="115.384" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="129.506" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="143.628" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="157.75" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="171.872" y="311.632" width="7.3256" height="3.70371"/>
+ <rect x="51.7608" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="65.8827" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="80.0046" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="94.1266" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="108.248" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="122.37" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="136.492" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="150.614" y="321.797" width="7.3256" height="3.70371"/>
+ <rect x="164.736" y="321.797" width="7.3256" height="3.70371"/>
+ </g>
+ </g>
+ <g>
+ <g>
+ <path d="m46.8511 307.401h-0.644531v-4.1071q-0.232747 0.22201-0.612305 0.44401-0.375976 0.22201-0.676757 0.33301v-0.62305q0.54069-0.25423 0.945312-0.61588 0.404623-0.36166 0.572917-0.70183h0.415364z"/>
+ <path d="m48.6021 306.188 0.619466-0.0573q0.07878 0.43685 0.300781 0.63379 0.222006 0.19694 0.569336 0.19694 0.297201 0 0.519206-0.13607 0.225586-0.13607 0.368815-0.36165 0.143229-0.22917 0.239909-0.61589t0.09668-0.78776q0-0.043-0.0036-0.12891-0.193359 0.30795-0.529948 0.50131-0.333008 0.18977-0.723307 0.18977-0.651693 0-1.10286-0.47265-0.451172-0.47266-0.451172-1.2461 0-0.7985 0.469076-1.28548 0.472656-0.48698 1.18164-0.48698 0.512045 0 0.934571 0.27572 0.426107 0.27572 0.644531 0.78776 0.222005 0.50846 0.222005 1.47526 0 1.00619-0.218424 1.60417-0.218425 0.5944-0.651693 0.90592-0.429687 0.31153-1.00977 0.31153-0.615885 0-1.00618-0.34017-0.390299-0.34375-0.469075-0.96322zm2.639-2.31673q0-0.55501-0.2972-0.88086-0.29362-0.32585-0.708985-0.32585-0.429687 0-0.748372 0.35091-0.318685 0.35092-0.318685 0.90951 0 0.5013 0.300781 0.81641 0.304362 0.31152 0.748373 0.31152 0.447591 0 0.734049-0.31152 0.290039-0.31511 0.290039-0.87012z"/>
+ </g>
+ <g>
+ <path d="m60.9784 307.491h-0.644532v-4.1071q-0.232747 0.222-0.612304 0.44401-0.375977 0.222-0.676758 0.33301v-0.62305q0.54069-0.25423 0.945312-0.61588 0.404623-0.36166 0.572917-0.70183h0.415365z"/>
+ <path d="m62.6757 302.929v-0.61947h3.39811v0.5013q-0.501302 0.53353-0.995443 1.41797-0.490559 0.88444-0.759114 1.81901-0.19336 0.65886-0.24707 1.44304h-0.662435q0.01074-0.61947 0.243489-1.49675 0.232748-0.87728 0.666016-1.6901 0.436849-0.81641 0.927409-1.375z"/>
+ </g>
+ <g >
+ <path d="m75.0806 307.401h-0.644531v-4.1071q-0.232747 0.22201-0.612305 0.44401-0.375976 0.22201-0.676757 0.33301v-0.62305q0.54069-0.25423 0.945312-0.61588 0.404623-0.36166 0.572917-0.70183h0.415364z"/>
+ <path d="m76.7349 306.026 0.676758-0.0573q0.0752 0.49414 0.347331 0.74479 0.275716 0.24707 0.662435 0.24707 0.465495 0 0.78776-0.35091 0.322266-0.35092 0.322266-0.93099 0-0.55144-0.311524-0.87012-0.307942-0.31869-0.809244-0.31869-0.311524 0-0.562175 0.14323-0.250651 0.13965-0.39388 0.36524l-0.605143-0.0788 0.508463-2.69629h2.61035v0.61589h-2.09473l-0.282877 1.41081q0.472656-0.32943 0.991862-0.32943 0.6875 0 1.16016 0.47624 0.472656 0.47623 0.472656 1.2246 0 0.71257-0.415365 1.23178-0.504882 0.63737-1.37858 0.63737-0.716146 0-1.1709-0.40105-0.451172-0.40104-0.515625-1.06347z"/>
+ </g>
+ <g >
+ <path d="m89.2222 307.398h-0.644531v-4.1071q-0.232747 0.22201-0.612305 0.44401-0.375976 0.22201-0.676758 0.33301v-0.62305q0.540691-0.25423 0.945313-0.61588 0.404622-0.36166 0.572917-0.70183h0.415364z"/>
+ <path d="m90.8801 306.012 0.644531-0.0859q0.111003 0.54785 0.375977 0.79134 0.268554 0.23991 0.651692 0.23991 0.454753 0 0.766276-0.31511 0.315105-0.3151 0.315105-0.7806 0-0.44401-0.290039-0.73046-0.29004-0.29004-0.737631-0.29004-0.182617 0-0.454752 0.0716l0.07161-0.56575q0.06445 7e-3 0.103841 7e-3 0.411784 0 0.741211-0.21485 0.329427-0.21484 0.329427-0.66243 0-0.35449-0.239908-0.58724-0.239909-0.23275-0.619467-0.23275-0.375976 0-0.626627 0.23633t-0.322266 0.70898l-0.644531-0.11458q0.118164-0.64811 0.537109-1.0026 0.418946-0.35808 1.04199-0.35808 0.429687 0 0.791341 0.1862 0.361653 0.18262 0.551432 0.5013 0.193359 0.31869 0.193359 0.67676 0 0.34017-0.182617 0.61947-0.182617 0.27929-0.54069 0.44401 0.465495 0.10742 0.723307 0.44759 0.257813 0.33659 0.257813 0.84505 0 0.6875-0.501302 1.16732-0.501302 0.47624-1.26758 0.47624-0.691081 0-1.14941-0.41179-0.454753-0.41178-0.519206-1.06706z"/>
+ </g>
+ <g >
+ <path d="m103.611 307.491h-0.64454v-4.1071q-0.23274 0.222-0.6123 0.44401-0.37598 0.222-0.67676 0.33301v-0.62305q0.54069-0.25423 0.94531-0.61588 0.40463-0.36166 0.57292-0.70183h0.41537z"/>
+ <path d="m107.148 307.491h-0.64454v-4.1071q-0.23274 0.222-0.6123 0.44401-0.37598 0.222-0.67676 0.33301v-0.62305q0.54069-0.25423 0.94531-0.61588 0.40463-0.36166 0.57292-0.70183h0.41537z"/>
+ </g>
+ <g >
+ <path d="m117.418 306.188 0.61946-0.0573q0.0788 0.43685 0.30078 0.63379 0.22201 0.19694 0.56934 0.19694 0.2972 0 0.5192-0.13607 0.22559-0.13607 0.36882-0.36165 0.14323-0.22917 0.23991-0.61589 0.0967-0.38672 0.0967-0.78776 0-0.043-4e-3 -0.12891-0.19336 0.30795-0.52995 0.50131-0.33301 0.18977-0.72331 0.18977-0.65169 0-1.10286-0.47265-0.45117-0.47266-0.45117-1.2461 0-0.7985 0.46907-1.28548 0.47266-0.48698 1.18164-0.48698 0.51205 0 0.93457 0.27572 0.42611 0.27572 0.64453 0.78776 0.22201 0.50846 0.22201 1.47526 0 1.00619-0.21843 1.60417-0.21842 0.5944-0.65169 0.90592-0.42969 0.31153-1.00976 0.31153-0.61589 0-1.00619-0.34017-0.3903-0.34375-0.46907-0.96322zm2.63899-2.31673q0-0.55501-0.2972-0.88086-0.29362-0.32585-0.70898-0.32585-0.42969 0-0.74837 0.35091-0.31869 0.35092-0.31869 0.90951 0 0.5013 0.30078 0.81641 0.30436 0.31152 0.74837 0.31152 0.4476 0 0.73405-0.31152 0.29004-0.31511 0.29004-0.87012z"/>
+ </g>
+ <g >
+ <path d="m131.47 302.929v-0.61947h3.39811v0.5013q-0.5013 0.53353-0.99544 1.41797-0.49056 0.88444-0.75912 1.81901-0.19336 0.65886-0.24707 1.44304h-0.66243q0.0107-0.61947 0.24349-1.49675 0.23275-0.87728 0.66601-1.6901 0.43685-0.81641 0.92741-1.375z"/>
+ </g>
+ <g >
+ <path d="m145.551 306.026 0.67676-0.0573q0.0752 0.49414 0.34733 0.74479 0.27571 0.24707 0.66243 0.24707 0.4655 0 0.78776-0.35091 0.32227-0.35092 0.32227-0.93099 0-0.55144-0.31153-0.87012-0.30794-0.31869-0.80924-0.31869-0.31152 0-0.56218 0.14323-0.25065 0.13965-0.39388 0.36524l-0.60514-0.0788 0.50846-2.69629h2.61036v0.61589h-2.09473l-0.28288 1.41081q0.47266-0.32943 0.99186-0.32943 0.6875 0 1.16016 0.47624 0.47266 0.47623 0.47266 1.2246 0 0.71257-0.41537 1.23178-0.50488 0.63737-1.37858 0.63737-0.71614 0-1.1709-0.40105-0.45117-0.40104-0.51562-1.06347z"/>
+ </g>
+ <g >
+ <path d="m159.694 306.012 0.64453-0.0859q0.111 0.54785 0.37598 0.79134 0.26855 0.23991 0.65169 0.23991 0.45475 0 0.76628-0.31511 0.3151-0.3151 0.3151-0.7806 0-0.44401-0.29004-0.73046-0.29004-0.29004-0.73763-0.29004-0.18262 0-0.45475 0.0716l0.0716-0.56575q0.0645 7e-3 0.10385 7e-3 0.41178 0 0.74121-0.21485 0.32942-0.21484 0.32942-0.66243 0-0.35449-0.23991-0.58724-0.2399-0.23275-0.61946-0.23275-0.37598 0-0.62663 0.23633t-0.32227 0.70898l-0.64453-0.11458q0.11817-0.64811 0.53711-1.0026 0.41895-0.35808 1.042-0.35808 0.42968 0 0.79134 0.1862 0.36165 0.18262 0.55143 0.5013 0.19336 0.31869 0.19336 0.67676 0 0.34017-0.18262 0.61947-0.18262 0.27929-0.54069 0.44401 0.4655 0.10742 0.72331 0.44759 0.25781 0.33659 0.25781 0.84505 0 0.6875-0.5013 1.16732-0.5013 0.47624-1.26758 0.47624-0.69108 0-1.14941-0.41179-0.45476-0.41178-0.51921-1.06706z"/>
+ </g>
+ <g >
+ <path d="m175.989 307.491h-0.64454v-4.1071q-0.23274 0.222-0.6123 0.44401-0.37598 0.222-0.67676 0.33301v-0.62305q0.54069-0.25423 0.94531-0.61588 0.40463-0.36166 0.57292-0.70183h0.41537z"/>
+ </g>
+ </g>
+ <g>
+ <g >
+ <path d="m53.8373 334.912h-0.644531v-4.1071q-0.232747 0.22201-0.612305 0.44401-0.375976 0.22201-0.676758 0.33301v-0.62305q0.540691-0.25423 0.945313-0.61588 0.404622-0.36166 0.572917-0.70183h0.415364z"/>
+ <path d="m56.4835 332.065q-0.401042-0.14681-0.594401-0.41895-0.193359-0.27213-0.193359-0.65169 0-0.57292 0.411783-0.96322 0.411784-0.3903 1.0957-0.3903 0.6875 0 1.10644 0.40105 0.418945 0.39746 0.418945 0.97037 0 0.36524-0.193359 0.63737-0.189779 0.26856-0.580078 0.41537 0.483398 0.15755 0.734049 0.50846 0.254232 0.35091 0.254232 0.83789 0 0.67318-0.476237 1.13151-0.476237 0.45834-1.25326 0.45834t-1.25326-0.45834q-0.476237-0.46191-0.476237-1.14941 0-0.51205 0.257812-0.8558 0.261393-0.34733 0.741211-0.47265zm-0.128906-1.09213q0 0.3724 0.239909 0.60873 0.239908 0.23633 0.623047 0.23633 0.372395 0 0.608723-0.23275 0.239909-0.23633 0.239909-0.5765 0-0.35449-0.24707-0.5944-0.24349-0.24349-0.608724-0.24349-0.368815 0-0.612305 0.23633-0.243489 0.23633-0.243489 0.56575zm-0.207683 2.42416q0 0.27571 0.128907 0.53353 0.132487 0.25781 0.390299 0.40104 0.257813 0.13965 0.555013 0.13965 0.461914 0 0.762696-0.2972 0.300781-0.2972 0.300781-0.75554 0-0.46549-0.311524-0.76985-0.307942-0.30437-0.773437-0.30437-0.454753 0-0.755534 0.30079-0.297201 0.30078-0.297201 0.75195z"/>
+ </g>
+ <g >
+ <path d="m67.9664 334.912h-0.644531v-4.1071q-0.232747 0.22201-0.612305 0.44401-0.375976 0.22201-0.676757 0.33301v-0.62305q0.54069-0.25423 0.945312-0.61588 0.404623-0.36166 0.572917-0.70183h0.415364z"/>
+ <path d="m72.9651 330.948-0.64095 0.0501q-0.08594-0.37956-0.24349-0.55143-0.261393-0.27572-0.644531-0.27572-0.307943 0-0.54069 0.17188-0.304362 0.222-0.479818 0.64811t-0.182617 1.21387q0.232747-0.3545 0.569336-0.52637 0.336588-0.17188 0.705404-0.17188 0.644531 0 1.0957 0.47624 0.454752 0.47266 0.454752 1.22461 0 0.49414-0.214843 0.92025-0.211264 0.42252-0.583659 0.64811-0.372396 0.22559-0.845052 0.22559-0.805665 0-1.31413-0.59083-0.508464-0.5944-0.508464-1.95507 0-1.52181 0.562175-2.21289 0.49056-0.60157 1.32129-0.60157 0.619466 0 1.01335 0.34733 0.397461 0.34733 0.476237 0.95964zm-2.63184 2.26302q0 0.33301 0.139649 0.63737 0.143229 0.30436 0.397461 0.4655 0.254231 0.15755 0.533528 0.15755 0.408203 0 0.701823-0.32943t0.29362-0.89518q0-0.54427-0.290039-0.8558-0.290039-0.3151-0.730469-0.3151-0.436849 0-0.741211 0.3151-0.304362 0.31153-0.304362 0.81999z"/>
+ </g>
+ <g >
+ <path d="m82.0973 334.912h-0.644531v-4.1071q-0.232748 0.22201-0.612305 0.44401-0.375977 0.22201-0.676758 0.33301v-0.62305q0.54069-0.25423 0.945313-0.61588 0.404622-0.36166 0.572916-0.70183h0.415365z"/>
+ <path d="m85.8177 334.912v-1.25684h-2.27734v-0.59082l2.39551-3.40169h0.526367v3.40169h0.708984v0.59082h-0.708984v1.25684zm0-1.84766v-2.36686l-1.64356 2.36686z"/>
+ </g>
+ <g >
+ <path d="m96.2353 334.912h-0.644532v-4.1071q-0.232747 0.22201-0.612304 0.44401-0.375977 0.22201-0.676758 0.33301v-0.62305q0.54069-0.25423 0.945312-0.61588 0.404623-0.36166 0.572917-0.70183h0.415365z"/>
+ <path d="m101.277 334.292v0.61947h-3.46973q-0.0072-0.23275 0.07519-0.44759 0.132487-0.3545 0.422526-0.69825 0.29362-0.34375 0.845052-0.79492 0.855793-0.70182 1.15657-1.11002 0.30078-0.41179 0.30078-0.77702 0-0.38314-0.27571-0.64453-0.27214-0.26498-0.712567-0.26498-0.465495 0-0.744792 0.2793t-0.282878 0.77344l-0.662435-0.068q0.06803-0.74121 0.512045-1.12793 0.44401-0.3903 1.19238-0.3903 0.755534 0 1.19596 0.41895 0.44043 0.41894 0.44043 1.03841 0 0.3151-0.12891 0.61947-0.1289 0.30436-0.42968 0.64095-0.29721 0.33659-0.991867 0.92382-0.580078 0.48698-0.744792 0.66244-0.164713 0.17187-0.272135 0.34733z"/>
+ </g>
+ <g >
+ <path d="m110.339 334.912h-0.64453v-4.1071q-0.23275 0.22201-0.61231 0.44401-0.37597 0.22201-0.67676 0.33301v-0.62305q0.54069-0.25423 0.94532-0.61588 0.40462-0.36166 0.57291-0.70183h0.41537z"/>
+ <path d="m111.994 332.323q0-0.93099 0.18978-1.49675 0.19336-0.56933 0.56934-0.87727 0.37956-0.30795 0.95247-0.30795 0.42253 0 0.74121 0.17188 0.31869 0.16829 0.52637 0.49056 0.20768 0.31868 0.32585 0.7806 0.11816 0.45833 0.11816 1.23893 0 0.92383-0.18978 1.49316-0.18978 0.56576-0.56933 0.87728-0.37598 0.30795-0.95248 0.30795-0.75911 0-1.19238-0.54428-0.51921-0.65527-0.51921-2.13411zm0.66244 0q0 1.29264 0.30078 1.72233 0.30436 0.42611 0.74837 0.42611t0.7448-0.42969q0.30436-0.42969 0.30436-1.71875 0-1.29622-0.30436-1.72233-0.30079-0.42611-0.75196-0.42611-0.44401 0-0.70898 0.37598-0.33301 0.47982-0.33301 1.77246z"/>
+ </g>
+ <g >
+ <path d="m125.303 332.065q-0.40104-0.14681-0.5944-0.41895-0.19336-0.27213-0.19336-0.65169 0-0.57292 0.41178-0.96322t1.0957-0.3903q0.6875 0 1.10645 0.40105 0.41894 0.39746 0.41894 0.97037 0 0.36524-0.19336 0.63737-0.18977 0.26856-0.58007 0.41537 0.4834 0.15755 0.73405 0.50846 0.25423 0.35091 0.25423 0.83789 0 0.67318-0.47624 1.13151-0.47624 0.45834-1.25325 0.45834-0.77702 0-1.25326-0.45834-0.47624-0.46191-0.47624-1.14941 0-0.51205 0.25782-0.8558 0.26139-0.34733 0.74121-0.47265zm-0.12891-1.09213q0 0.3724 0.23991 0.60873t0.62305 0.23633q0.37239 0 0.60872-0.23275 0.23991-0.23633 0.23991-0.5765 0-0.35449-0.24707-0.5944-0.24349-0.24349-0.60872-0.24349-0.36882 0-0.61231 0.23633t-0.24349 0.56575zm-0.20768 2.42416q0 0.27571 0.1289 0.53353 0.13249 0.25781 0.3903 0.40104 0.25782 0.13965 0.55502 0.13965 0.46191 0 0.76269-0.2972t0.30078-0.75554q0-0.46549-0.31152-0.76985-0.30794-0.30437-0.77344-0.30437-0.45475 0-0.75553 0.30079-0.2972 0.30078-0.2972 0.75195z"/>
+ </g>
+ <g >
+ <path d="m141.795 330.948-0.64095 0.0501q-0.0859-0.37956-0.24349-0.55143-0.26139-0.27572-0.64453-0.27572-0.30794 0-0.54069 0.17188-0.30436 0.222-0.47982 0.64811-0.17545 0.42611-0.18262 1.21387 0.23275-0.3545 0.56934-0.52637 0.33659-0.17188 0.7054-0.17188 0.64453 0 1.09571 0.47624 0.45475 0.47266 0.45475 1.22461 0 0.49414-0.21484 0.92025-0.21127 0.42252-0.58366 0.64811-0.3724 0.22559-0.84506 0.22559-0.80566 0-1.31412-0.59083-0.50847-0.5944-0.50847-1.95507 0-1.52181 0.56218-2.21289 0.49056-0.60157 1.32129-0.60157 0.61946 0 1.01334 0.34733 0.39746 0.34733 0.47624 0.95964zm-2.63184 2.26302q0 0.33301 0.13965 0.63737 0.14323 0.30436 0.39746 0.4655 0.25424 0.15755 0.53353 0.15755 0.40821 0 0.70183-0.32943 0.29361-0.32943 0.29361-0.89518 0-0.54427-0.29003-0.8558-0.29004-0.3151-0.73047-0.3151-0.43685 0-0.74121 0.3151-0.30437 0.31153-0.30437 0.81999z"/>
+ </g>
+ <g >
+ <path d="m154.739 334.89v-1.25683h-2.27735v-0.59082l2.39551-3.4017h0.52637v3.4017h0.70898v0.59082h-0.70898v1.25683zm0-1.84765v-2.36687l-1.64356 2.36687z"/>
+ </g>
+ <g >
+ <path d="m170.134 334.292v0.61947h-3.46973q-7e-3 -0.23275 0.0752-0.44759 0.13249-0.3545 0.42253-0.69825 0.29361-0.34375 0.84505-0.79492 0.85579-0.70182 1.15657-1.11002 0.30078-0.41179 0.30078-0.77702 0-0.38314-0.27571-0.64453-0.27214-0.26498-0.71257-0.26498-0.46549 0-0.74479 0.2793t-0.28288 0.77344l-0.66243-0.068q0.068-0.74121 0.51204-1.12793 0.44401-0.3903 1.19239-0.3903 0.75553 0 1.19596 0.41895 0.44043 0.41894 0.44043 1.03841 0 0.3151-0.12891 0.61947-0.1289 0.30436-0.42968 0.64095-0.29721 0.33659-0.99187 0.92382-0.58007 0.48698-0.74479 0.66244-0.16471 0.17187-0.27213 0.34733z"/>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/host/docs/usrp_x4xx.dox b/host/docs/usrp_x4xx.dox
index 772062b6c..db11f1b54 100644
--- a/host/docs/usrp_x4xx.dox
+++ b/host/docs/usrp_x4xx.dox
@@ -1119,5 +1119,9 @@ Note that this section does not cover every single clock signal present on the
X410, but mainly those clock signals relevant for the operation of the RF
components. Refer to the schematic for more details.
+\section x4xx_gpio GPIO
+
+See \subpage page_x400_gpio_api
+
*/
// vim:ft=doxygen:
diff --git a/host/docs/x400_gpio_api.dox b/host/docs/x400_gpio_api.dox
new file mode 100644
index 000000000..e1b7af279
--- /dev/null
+++ b/host/docs/x400_gpio_api.dox
@@ -0,0 +1,134 @@
+/*! \page page_x400_gpio_api X4x0 GPIO API
+
+\tableofcontents
+
+\section x4x0gpio_fpanel The X4x0 Front Panel GPIO
+
+Like other USRP devices (e.g., E310, X310), the X4x0 devices expose auxiliary
+GPIO connections through the motherboard. These GPIO pins can be controlled from
+either the user application in the FPGA or from the radio blocks.
+
+There are 24 GPIO pins in total, split between two HDMI connectors (labelled
+GPIO0 and GPIO1) which each expose 12 pins.
+
+Additionally, the X4x0 GPIO lines include a 3.3V power supply which is disabled
+by default, which can provide up to 450mA with overcurrent protection. See
+\ref x4x0_gpio_power
+
+\subsection x4x0gpio_fpanel_gpio X4x0 Front Panel GPIO
+
+The GPIO port is not meant to drive big loads.
+
+\subsubsection x4x0gpio_fpanel_conn Connector
+
+\image html HDMI_Connector_Pinout.svg HDMI pinout
+
+\subsubsection x4x0gpio_fpanel_pins Pin Mapping
+
+- Pin 1: Data[0]
+- Pin 2: 0V
+- Pin 3: Data[1]
+- Pin 4: Data[2]
+- Pin 5: 0V
+- Pin 6: Data[3]
+- Pin 7: Data[4]
+- Pin 8: 0V
+- Pin 9: Data[5]
+- Pin 10: Data[6]
+- Pin 11: 0V
+- Pin 12: Data[7]
+- Pin 13: Data[8]
+- Pin 14: N/C
+- Pin 15: Data[9]
+- Pin 16: Data[10]
+- Pin 17: 0V
+- Pin 18: +3.3V (see \ref x4x0_gpio_power)
+- Pin 19: Data[11]
+
+\subsection x4x0_gpio_output Setting GPIO Output
+
+The GPIO lines can be configured according to the
+uhd::usrp::multi_usrp::set_gpio_attr() API, like can be seen at \ref
+xgpio_fpanel_atr.
+
+The major difference is that in order to use that API, the GPIO source must be
+correctly configured. The source can be configured using
+uhd::usrp::multi_usrp::set_gpio_src(), which takes two arguments: A "bank" and a
+"src". The `bank` argument specifies the GPIO port to configure, and the `src`
+argument is a vector of twelve elements, each specifying the source for the
+given GPIO pin.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.py}
+# Set every pin on GPIO0 to be controlled by DB1_RF0
+usrp.set_gpio_src("GPIO0", ["DB1_RF0"]*12)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The bank can be either "GPIO0" or "GPIO1", and the sources can be any
+combination of:
+- <b>DBx_RFy</b>: Controlled by the slot-x radio block via the set_gpio_attr
+ API, with ATR states derived from channel y on that slot if CTRL is set to 1. If
+ CTRL is set to 0, y is ignored and can be either 0 or 1.
+- <b>DBx_SPI</b>: Controlled via the digital interface block in the slot-x
+ radio block.
+- <b>PS</b>: Controlled directly via the Linux GPIO API on the embedded
+ processor.
+- <b>USER_APP</b>: Controlled via user logic in the FPGA. Note that this only
+ works with custom modifications to the FPGA codebase, and not with standard UHD
+ FPGA images.
+
+Once the source is set, using the GPIO proceeds identically to the usage on
+other devices. Note that the values and masks for the
+uhd::usrp::multi_usrp::set_gpio_attr() API combines all 24 pins, with bits
+[23:12] representing the GPIO1 port and bits [11:0] representing the GPIO0 port.
+For example, to configure the 4th bit on GPIO1 (HDMI pin number 7) as a high
+output, one would run:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.py}
+pin_mask = 1 << (12 + 4) # 12 for GPIO1, 4 for the bit on that port
+usrp.set_gpio_attr("GPIOA", "CTRL", 0, pin_mask) # Non-ATR mode
+usrp.set_gpio_attr("GPIOA", "DDR", pin_mask, pin_mask) # Output
+
+usrp.set_gpio_attr("GPIOA", "OUT", pin_mask, pin_mask) # Set value high
+usrp.set_gpio_attr("GPIOA", "OUT", 0, pin_mask) # Set value low
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+\subsection x4x0_gpio_power Configuring External Power Supply
+
+The X410's GPIO ports each have 3.3V power supply pins, which is disabled by
+default. The GPIO lines will function correctly without the external power
+supply enabled, and the voltage of the power supply is independent of the
+selected GPIO line voltage. To enable the power supply, call the
+uhd::features::gpio_power_iface::set_external_power() method on the gpio_power
+discoverable feature attached to the mb_controller:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+auto usrp = uhd::usrp::multi_usrp::make("type=x4xx");
+
+auto gpio = usrp->get_mb_controller().get_feature<uhd::rfnoc::discoverable_feature::GPIO_POWER>();
+gpio->set_external_power("GPIO1", true); // Enable external power on GPIO1
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The status of the external power supply can be queried using
+uhd::features::gpio_power_iface::get_external_power_status(), which will return
+one of the following values:
+- <b>OFF</b>: Power supply is disabled (the default).
+- <b>ON</b>: Power supply is operating normally.
+- <b>FAULT</b>: Power supply has encountered a fault and disabled itself. This
+ condition can be cleared by calling
+ uhd::features::gpio_power_iface::set_external_power().
+
+\subsection x4x0_gpio_voltage Configuring GPIO Voltage
+
+The voltage level of the I/O lines can be selected as any of 1.8V, 2.5V, or 3.3V
+voltage levels on a per-bank basis. To do this use the
+uhd::features::gpio_power_iface::set_port_voltage() API:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}
+auto usrp = uhd::usrp::multi_usrp::make("type=x4xx");
+
+auto gpio = usrp->get_mb_controller().get_feature<uhd::rfnoc::discoverable_feature::GPIO_POWER>();
+gpio->set_port_voltage("GPIO0", "2V5"); // Set GPIO0 voltage to 2.5V
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Valid values can be enumerated with the
+uhd::features::gpio_power_iface::supported_voltages() call, and are "1V8",
+"2V5", and "3V3".
+
+*/
+// vim:ft=doxygen: