aboutsummaryrefslogtreecommitdiffstats
path: root/host
diff options
context:
space:
mode:
Diffstat (limited to 'host')
-rw-r--r--host/include/uhd/usrp/gpio_defs.hpp109
-rw-r--r--host/lib/include/uhdlib/usrp/gpio_defs.hpp127
-rw-r--r--host/lib/usrp/cores/gpio_atr_3000.hpp3
-rw-r--r--host/lib/usrp/multi_usrp.cpp1
4 files changed, 130 insertions, 110 deletions
diff --git a/host/include/uhd/usrp/gpio_defs.hpp b/host/include/uhd/usrp/gpio_defs.hpp
index 18ccc0834..65d6a761e 100644
--- a/host/include/uhd/usrp/gpio_defs.hpp
+++ b/host/include/uhd/usrp/gpio_defs.hpp
@@ -8,29 +8,7 @@
#ifndef INCLUDED_LIBUHD_USRP_GPIO_DEFS_HPP
#define INCLUDED_LIBUHD_USRP_GPIO_DEFS_HPP
-#include <uhd/config.hpp>
-#include <boost/assign.hpp>
-#include <boost/utility.hpp>
-#include <map>
-
namespace uhd { namespace usrp { namespace gpio_atr {
- static const std::string GPIO_ATTR_SRC = "SRC";
- //! Attribute name for GPIO control.
- static const std::string GPIO_ATTR_CTRL = "CTRL";
- //! Attribute name for GPIO data direction register.
- static const std::string GPIO_ATTR_DDR = "DDR";
- //! Attribute name for GPIO ouput value.
- static const std::string GPIO_ATTR_OUT = "OUT";
- //! Attribute name for GPIO ATR idle state register.
- static const std::string GPIO_ATTR_ATR0X = "ATR_0X";
- //! Attribute name for GPIO ATR receive only register.
- static const std::string GPIO_ATTR_ATRRX = "ATR_RX";
- //! Attribute name for GPIO ATR transmit only register.
- static const std::string GPIO_ATTR_ATRTX = "ATR_TX";
- //! Attribute name for GPIO ATR full duplex state register.
- static const std::string GPIO_ATTR_ATRXX = "ATR_XX";
- //! Attribute name for GPIO READBACK register.
- static const std::string GPIO_ATTR_READBACK = "READBACK";
enum gpio_atr_reg_t {
ATR_REG_IDLE = int('i'),
@@ -39,93 +17,6 @@ namespace uhd { namespace usrp { namespace gpio_atr {
ATR_REG_FULL_DUPLEX = int('f')
};
- enum gpio_atr_mode_t {
- MODE_ATR = 0, //Output driven by the auto-transmit-receive engine
- MODE_GPIO = 1 //Output value is static
- };
-
- enum gpio_ddr_t {
- DDR_INPUT = 0,
- DDR_OUTPUT = 1
- };
-
- enum gpio_attr_t {
- GPIO_SRC,
- GPIO_CTRL,
- GPIO_DDR,
- GPIO_OUT,
- GPIO_ATR_0X,
- GPIO_ATR_RX,
- GPIO_ATR_TX,
- GPIO_ATR_XX,
- GPIO_READBACK
- };
-
-
- typedef std::map<gpio_attr_t, std::string> gpio_attr_map_t;
-
- static const gpio_attr_map_t gpio_attr_map = {
- {GPIO_SRC, GPIO_ATTR_SRC},
- {GPIO_CTRL, GPIO_ATTR_CTRL},
- {GPIO_DDR, GPIO_ATTR_DDR},
- {GPIO_OUT, GPIO_ATTR_OUT},
- {GPIO_ATR_0X, GPIO_ATTR_ATR0X},
- {GPIO_ATR_RX, GPIO_ATTR_ATRRX},
- {GPIO_ATR_TX, GPIO_ATTR_ATRTX},
- {GPIO_ATR_XX, GPIO_ATTR_ATRXX},
- {GPIO_READBACK, GPIO_ATTR_READBACK}
- };
-
- static const std::map<gpio_attr_t, std::map<uint32_t, std::string>> attr_value_map = {
- {GPIO_CTRL, {{0, "ATR"}, {1, "GPIO"}}},
- {GPIO_DDR, {{0, "INPUT"}, {1, "OUTPUT"}}}
- };
- static const std::map<std::string, gpio_attr_t> gpio_attr_rev_map ={
- {GPIO_ATTR_SRC, GPIO_SRC},
- {GPIO_ATTR_CTRL, GPIO_CTRL},
- {GPIO_ATTR_DDR, GPIO_DDR},
- {GPIO_ATTR_OUT, GPIO_OUT},
- {GPIO_ATTR_ATR0X, GPIO_ATR_0X},
- {GPIO_ATTR_ATRRX, GPIO_ATR_RX},
- {GPIO_ATTR_ATRTX, GPIO_ATR_TX},
- {GPIO_ATTR_ATRXX, GPIO_ATR_XX},
- { GPIO_ATTR_READBACK, GPIO_READBACK}
- };
-
- static const gpio_attr_map_t default_attr_value_map ={
- {GPIO_SRC, "RADIO_0/0"},
- {GPIO_CTRL, "GPIO"},
- {GPIO_DDR, "INPUT"}
- };
- static const std::map<std::string, uint32_t> gpio_level_map = {
- {"HIGH", 1},
- {"LOW", 0},
- {"ON", 1},
- {"OFF", 0},
- {"TRUE", 1},
- {"FALSE", 0}
- };
- static const std::map<std::string, uint32_t> gpio_direction = {
- {"OUT", 1},
- {"IN", 0},
- {"OUTPUT", 1},
- {"INPUT", 0}
- };
- static const std::map<std::string, uint32_t> gpio_ctrl_mode = {
- {"ATR", 0},
- {"GPIO", 1}
- };
- static const std::map<std::string,std::map<std::string, uint32_t>> gpio_attr_value_pair = {
- {GPIO_ATTR_CTRL, gpio_ctrl_mode},
- {GPIO_ATTR_DDR, gpio_direction},
- {GPIO_ATTR_OUT, gpio_level_map},
- {GPIO_ATTR_ATR0X, gpio_level_map},
- {GPIO_ATTR_ATRRX, gpio_level_map},
- {GPIO_ATTR_ATRTX, gpio_level_map},
- {GPIO_ATTR_ATRXX, gpio_level_map},
- {GPIO_ATTR_READBACK, gpio_level_map}
- };
-
}}} //namespaces
#endif /* INCLUDED_LIBUHD_USRP_GPIO_DEFS_HPP */
diff --git a/host/lib/include/uhdlib/usrp/gpio_defs.hpp b/host/lib/include/uhdlib/usrp/gpio_defs.hpp
new file mode 100644
index 000000000..b16ea7311
--- /dev/null
+++ b/host/lib/include/uhdlib/usrp/gpio_defs.hpp
@@ -0,0 +1,127 @@
+//
+// Copyright 2018 Ettus Research, a National Instruments Company
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+//
+
+#ifndef INCLUDED_LIBUHD_USRP_GPIO_DEFS_LIB_HPP
+#define INCLUDED_LIBUHD_USRP_GPIO_DEFS_LIB_HPP
+
+#include <uhd/usrp/gpio_defs.hpp>
+#include <map>
+#include <string>
+
+namespace uhd { namespace usrp { namespace gpio_atr {
+
+ enum gpio_atr_mode_t {
+ MODE_ATR = 0, //Output driven by the auto-transmit-receive engine
+ MODE_GPIO = 1 //Output value is static
+ };
+
+ enum gpio_ddr_t {
+ DDR_INPUT = 0,
+ DDR_OUTPUT = 1
+ };
+
+ enum gpio_attr_t {
+ GPIO_SRC,
+ GPIO_CTRL,
+ GPIO_DDR,
+ GPIO_OUT,
+ GPIO_ATR_0X,
+ GPIO_ATR_RX,
+ GPIO_ATR_TX,
+ GPIO_ATR_XX,
+ GPIO_READBACK
+ };
+
+ static const std::string GPIO_ATTR_SRC = "SRC";
+ //! Attribute name for GPIO control.
+ static const std::string GPIO_ATTR_CTRL = "CTRL";
+ //! Attribute name for GPIO data direction register.
+ static const std::string GPIO_ATTR_DDR = "DDR";
+ //! Attribute name for GPIO ouput value.
+ static const std::string GPIO_ATTR_OUT = "OUT";
+ //! Attribute name for GPIO ATR idle state register.
+ static const std::string GPIO_ATTR_ATR0X = "ATR_0X";
+ //! Attribute name for GPIO ATR receive only register.
+ static const std::string GPIO_ATTR_ATRRX = "ATR_RX";
+ //! Attribute name for GPIO ATR transmit only register.
+ static const std::string GPIO_ATTR_ATRTX = "ATR_TX";
+ //! Attribute name for GPIO ATR full duplex state register.
+ static const std::string GPIO_ATTR_ATRXX = "ATR_XX";
+ //! Attribute name for GPIO READBACK register.
+ static const std::string GPIO_ATTR_READBACK = "READBACK";
+
+ typedef std::map<gpio_attr_t, std::string> gpio_attr_map_t;
+
+ static const gpio_attr_map_t gpio_attr_map{
+ {GPIO_SRC, GPIO_ATTR_SRC},
+ {GPIO_CTRL, GPIO_ATTR_CTRL},
+ {GPIO_DDR, GPIO_ATTR_DDR},
+ {GPIO_OUT, GPIO_ATTR_OUT},
+ {GPIO_ATR_0X, GPIO_ATTR_ATR0X},
+ {GPIO_ATR_RX, GPIO_ATTR_ATRRX},
+ {GPIO_ATR_TX, GPIO_ATTR_ATRTX},
+ {GPIO_ATR_XX, GPIO_ATTR_ATRXX},
+ {GPIO_READBACK, GPIO_ATTR_READBACK}
+ };
+
+ static const std::map<gpio_attr_t, std::map<uint32_t, std::string>> attr_value_map{
+ {GPIO_CTRL, {{0, "ATR"}, {1, "GPIO"}}},
+ {GPIO_DDR, {{0, "INPUT"}, {1, "OUTPUT"}}}
+ };
+
+ static const std::map<std::string, gpio_attr_t> gpio_attr_rev_map{
+ {GPIO_ATTR_SRC, GPIO_SRC},
+ {GPIO_ATTR_CTRL, GPIO_CTRL},
+ {GPIO_ATTR_DDR, GPIO_DDR},
+ {GPIO_ATTR_OUT, GPIO_OUT},
+ {GPIO_ATTR_ATR0X, GPIO_ATR_0X},
+ {GPIO_ATTR_ATRRX, GPIO_ATR_RX},
+ {GPIO_ATTR_ATRTX, GPIO_ATR_TX},
+ {GPIO_ATTR_ATRXX, GPIO_ATR_XX},
+ {GPIO_ATTR_READBACK, GPIO_READBACK}
+ };
+
+ static const gpio_attr_map_t default_attr_value_map{
+ {GPIO_SRC, "RADIO_0/0"},
+ {GPIO_CTRL, "GPIO"},
+ {GPIO_DDR, "INPUT"}
+ };
+
+ static const std::map<std::string, uint32_t> gpio_level_map{
+ {"HIGH", 1},
+ {"LOW", 0},
+ {"ON", 1},
+ {"OFF", 0},
+ {"TRUE", 1},
+ {"FALSE", 0}
+ };
+
+ static const std::map<std::string, uint32_t> gpio_direction{
+ {"OUT", 1},
+ {"IN", 0},
+ {"OUTPUT", 1},
+ {"INPUT", 0}
+ };
+
+ static const std::map<std::string, uint32_t> gpio_ctrl_mode{
+ {"ATR", 0},
+ {"GPIO", 1}
+ };
+
+ static const std::map<std::string, std::map<std::string, uint32_t>> gpio_attr_value_pair{
+ {GPIO_ATTR_CTRL, uhd::usrp::gpio_atr::gpio_ctrl_mode},
+ {GPIO_ATTR_DDR, uhd::usrp::gpio_atr::gpio_direction},
+ {GPIO_ATTR_OUT, uhd::usrp::gpio_atr::gpio_level_map},
+ {GPIO_ATTR_ATR0X, uhd::usrp::gpio_atr::gpio_level_map},
+ {GPIO_ATTR_ATRRX, uhd::usrp::gpio_atr::gpio_level_map},
+ {GPIO_ATTR_ATRTX, uhd::usrp::gpio_atr::gpio_level_map},
+ {GPIO_ATTR_ATRXX, uhd::usrp::gpio_atr::gpio_level_map},
+ {GPIO_ATTR_READBACK, uhd::usrp::gpio_atr::gpio_level_map}
+ };
+
+}}} //namespaces
+
+#endif /* INCLUDED_LIBUHD_USRP_GPIO_DEFS_LIB_HPP */
diff --git a/host/lib/usrp/cores/gpio_atr_3000.hpp b/host/lib/usrp/cores/gpio_atr_3000.hpp
index d9ca24b19..30c7d6fb7 100644
--- a/host/lib/usrp/cores/gpio_atr_3000.hpp
+++ b/host/lib/usrp/cores/gpio_atr_3000.hpp
@@ -11,8 +11,9 @@
#include <uhd/config.hpp>
#include <uhd/usrp/dboard_iface.hpp>
#include <uhd/usrp/gpio_defs.hpp>
-#include <boost/shared_ptr.hpp>
+#include <uhdlib/usrp/gpio_defs.hpp>
#include <uhd/types/wb_iface.hpp>
+#include <boost/shared_ptr.hpp>
namespace uhd { namespace usrp { namespace gpio_atr {
diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp
index 593cff4dc..6ff619b55 100644
--- a/host/lib/usrp/multi_usrp.cpp
+++ b/host/lib/usrp/multi_usrp.cpp
@@ -17,6 +17,7 @@
#include <uhd/usrp/dboard_eeprom.hpp>
#include <uhd/convert.hpp>
#include <uhd/utils/soft_register.hpp>
+#include <uhdlib/usrp/gpio_defs.hpp>
#include "legacy_compat.hpp"
#include <boost/assign/list_of.hpp>
#include <boost/thread.hpp>