aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp
diff options
context:
space:
mode:
authorMark Meserve <mark.meserve@ni.com>2018-10-02 14:26:49 -0500
committerBrent Stapleton <bstapleton@g.hmc.edu>2018-11-05 13:43:07 -0800
commit728d9abfe7fd9adf87ba4f87627829e09ddcc8cf (patch)
tree757accf69ea77d5f04ce147c0188be20b742a9f0 /host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp
parent44eb4b4b43a58324854ce50ef983331c98125eeb (diff)
downloaduhd-728d9abfe7fd9adf87ba4f87627829e09ddcc8cf.tar.gz
uhd-728d9abfe7fd9adf87ba4f87627829e09ddcc8cf.tar.bz2
uhd-728d9abfe7fd9adf87ba4f87627829e09ddcc8cf.zip
rh: add lo distribution support
- This is a combination of 5 commits. - rh: add lo distribution board gpio expander - rh: add lo distribution mpm functions - rh: add code to conditionally initialize lo distribution - rh: change empty i2c device from exception to assertion - rh: add lo distribution board control
Diffstat (limited to 'host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp')
-rw-r--r--host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp b/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp
index 4f4dd925c..c070dabea 100644
--- a/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp
+++ b/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp
@@ -114,6 +114,12 @@ public:
bool get_tx_lo_export_enabled(const std::string& name, const size_t chan);
bool get_rx_lo_export_enabled(const std::string& name, const size_t chan);
+ // LO Distribution Control
+ void set_tx_lo_output_enabled(const bool enabled, const std::string& port_name, const size_t chan);
+ void set_rx_lo_output_enabled(const bool enabled, const std::string& port_name, const size_t chan);
+ bool get_tx_lo_output_enabled(const std::string& port_name, const size_t chan);
+ bool get_rx_lo_output_enabled(const std::string& port_name, const size_t chan);
+
// LO Gain Control
//! Set the external gain for a TX LO
@@ -185,6 +191,25 @@ private:
const direction_t dir
);
+ //! Validate that port_name is valid, and that LO distribution functions
+ // can be called in this instance
+ void _validate_output_port(
+ const std::string& port_name,
+ const std::string& function_name
+ );
+
+ //! Configure LO Distribution board's termination switches
+ void _set_lo_output_enabled(
+ const bool enabled,
+ const std::string& port_name,
+ const direction_t dir
+ );
+
+ bool _get_lo_output_enabled(
+ const std::string& port_name,
+ const direction_t dir
+ );
+
//! Configure LO1's output power
// Out of range values will be coerced to [0-63]
double _set_lo1_power(
@@ -336,6 +361,13 @@ private:
double _rx_lo_freq = 0.0;
double _tx_lo_freq = 0.0;
+ //! LO Distribution board
+ bool _lo_dist_present = false;
+
+ //! LO Distribution board output status
+ bool _lo_dist_rx_out_enabled[4] = { false, false, false, false };
+ bool _lo_dist_tx_out_enabled[4] = { false, false, false, false };
+
}; /* class radio_ctrl_impl */
}} /* namespace uhd::rfnoc */