aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/e300/e3xx_radio_ctrl_impl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/usrp/e300/e3xx_radio_ctrl_impl.hpp')
-rw-r--r--host/lib/usrp/e300/e3xx_radio_ctrl_impl.hpp149
1 files changed, 0 insertions, 149 deletions
diff --git a/host/lib/usrp/e300/e3xx_radio_ctrl_impl.hpp b/host/lib/usrp/e300/e3xx_radio_ctrl_impl.hpp
deleted file mode 100644
index 390b0929c..000000000
--- a/host/lib/usrp/e300/e3xx_radio_ctrl_impl.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-//
-// Copyright 2015-2016 Ettus Research
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//
-
-#ifndef INCLUDED_LIBUHD_RFNOC_E3XX_RADIO_CTRL_IMPL_HPP
-#define INCLUDED_LIBUHD_RFNOC_E3XX_RADIO_CTRL_IMPL_HPP
-
-#include "e300_global_regs.hpp"
-#include <uhdlib/usrp/cores/spi_core_3000.hpp>
-#include <uhdlib/usrp/common/ad9361_ctrl.hpp>
-#include <uhdlib/usrp/common/ad936x_manager.hpp>
-#include <uhdlib/rfnoc/radio_ctrl_impl.hpp>
-#include <uhd/usrp/gpio_defs.hpp>
-
-namespace uhd {
- namespace rfnoc {
-
-/*! \brief Provide access to an E3XX radio.
- */
-class e3xx_radio_ctrl_impl : public radio_ctrl_impl
-{
-public:
- /************************************************************************
- * Structors
- ***********************************************************************/
- UHD_RFNOC_RADIO_BLOCK_CONSTRUCTOR_DECL(e3xx_radio_ctrl)
- virtual ~e3xx_radio_ctrl_impl();
-
- /************************************************************************
- * API calls
- ***********************************************************************/
- double set_rate(double rate);
- void set_tx_antenna(const std::string &ant, const size_t chan);
- void set_rx_antenna(const std::string &ant, const size_t chan);
-
- double set_tx_frequency(const double freq, const size_t chan);
- double set_rx_frequency(const double freq, const size_t chan);
-
- double set_tx_gain(const double gain, const size_t chan);
- double set_rx_gain(const double gain, const size_t chan);
- double set_rx_bandwidth(const double bandwidth, const size_t chan);
-
- double get_tx_gain(const size_t chan);
- double get_rx_gain(const size_t chan);
- double get_rx_bandwidth(const size_t chan);
-
- std::vector<std::string> get_gpio_banks() const;
- void set_gpio_attr(const std::string &bank, const std::string &attr, const uint32_t value, const uint32_t mask);
- uint32_t get_gpio_attr(const std::string &bank, const std::string &attr);
-
- size_t get_chan_from_dboard_fe(const std::string &fe, const direction_t);
- std::string get_dboard_fe_from_chan(const size_t chan, const direction_t);
-
- /************************************************************************
- * RFIC setup and control
- ***********************************************************************/
- /*! Set up the radio. No API calls may be made before this one.
- */
- void setup_radio(uhd::usrp::ad9361_ctrl::sptr safe_codec_ctrl);
-
-private:
- void _setup_radio_channel(const size_t chan);
- void _reset_radio(void);
-
-protected:
- /************************************************************************
- * Helpers
- ***********************************************************************/
- virtual bool check_radio_config();
- void _enforce_tick_rate_limits(const size_t chans, const double tick_rate);
-
-private:
- /************************************************************************
- * Peripheral controls
- ***********************************************************************/
- void _update_fe_lo_freq(const std::string &fe, const double freq);
- void _update_atrs(void);
- void _update_atr_leds(uhd::usrp::gpio_atr::gpio_atr_3000::sptr leds, const std::string &rx_ant);
-
- void _update_gpio_state(void);
- void _update_enables(void);
-
- void _update_time_source(const std::string &source);
-
- // get frontend lock sensor
- uhd::sensor_value_t _get_fe_pll_lock(const bool is_tx);
-
- /************************************************************************
- * Internal GPIO control
- ***********************************************************************/
- struct gpio_t
- {
- gpio_t() : pps_sel(uhd::usrp::e300::global_regs::PPS_INT),
- mimo(0), radio_rst(0), tx_bandsels(0),
- rx_bandsel_a(0), rx_bandsel_b(0), rx_bandsel_c(0)
- {}
-
- uint32_t pps_sel;
- uint32_t mimo;
- uint32_t radio_rst;
-
- uint32_t tx_bandsels;
- uint32_t rx_bandsel_a;
- uint32_t rx_bandsel_b;
- uint32_t rx_bandsel_c;
-
- static const size_t PPS_SEL = 0;
- static const size_t MIMO = 2;
- static const size_t RADIO_RST = 3;
- static const size_t TX_BANDSEL = 4;
- static const size_t RX_BANDSELA = 7;
- static const size_t RX_BANDSELB = 13;
- static const size_t RX_BANDSELC = 17;
- };
- uint8_t _get_internal_gpio(uhd::usrp::gpio_atr::gpio_atr_3000::sptr);
-
-private: // members
- struct e3xx_perifs_t
- {
- usrp::gpio_atr::gpio_atr_3000::sptr atr;
- uhd::usrp::gpio_atr::gpio_atr_3000::sptr leds;
- };
- //! SPI to talk to the AD936x
- spi_core_3000::sptr _spi;
- //! One ATR per channel
- std::map<size_t, e3xx_perifs_t> _e3xx_perifs;
- //! AD936x controls
- uhd::usrp::ad9361_ctrl::sptr _codec_ctrl;
- uhd::usrp::ad936x_manager::sptr _codec_mgr;
- gpio_t _misc;
-
-}; /* class radio_ctrl_impl */
-
-}} /* namespace uhd::rfnoc */
-
-#endif /* INCLUDED_LIBUHD_RFNOC_E3XX_RADIO_CTRL_IMPL_HPP */