diff options
Diffstat (limited to 'host/lib/usrp/e100/e100_impl.cpp')
| -rw-r--r-- | host/lib/usrp/e100/e100_impl.cpp | 20 | 
1 files changed, 12 insertions, 8 deletions
diff --git a/host/lib/usrp/e100/e100_impl.cpp b/host/lib/usrp/e100/e100_impl.cpp index d610c0b12..d55ea5ec5 100644 --- a/host/lib/usrp/e100/e100_impl.cpp +++ b/host/lib/usrp/e100/e100_impl.cpp @@ -64,7 +64,7 @@ static device_addrs_t e100_find(const device_addr_t &hint){          new_addr["node"] = fs::system_complete(fs::path(hint["node"])).string();          try{              i2c_iface::sptr i2c_iface = e100_ctrl::make_dev_i2c_iface(E100_I2C_DEV_NODE); -            const mboard_eeprom_t mb_eeprom(*i2c_iface, mboard_eeprom_t::MAP_E100); +            const mboard_eeprom_t mb_eeprom(*i2c_iface, E100_EEPROM_MAP_KEY);              new_addr["name"] = mb_eeprom["name"];              new_addr["serial"] = mb_eeprom["serial"];          } @@ -120,7 +120,7 @@ e100_impl::e100_impl(const uhd::device_addr_t &device_addr){      //read the eeprom so we can determine the hardware      _dev_i2c_iface = e100_ctrl::make_dev_i2c_iface(E100_I2C_DEV_NODE); -    const mboard_eeprom_t mb_eeprom(*_dev_i2c_iface, mboard_eeprom_t::MAP_E100); +    const mboard_eeprom_t mb_eeprom(*_dev_i2c_iface, E100_EEPROM_MAP_KEY);      //determine the model string for this device      const std::string model = device_addr.get("model", mb_eeprom.get("model", "")); @@ -189,7 +189,8 @@ e100_impl::e100_impl(const uhd::device_addr_t &device_addr){      ////////////////////////////////////////////////////////////////////      _tree->create<std::string>("/name").set("E-Series Device");      const fs_path mb_path = "/mboards/0"; -    _tree->create<std::string>(mb_path / "name").set(str(boost::format("%s (euewanee)") % model)); +    _tree->create<std::string>(mb_path / "name").set(model); +    _tree->create<std::string>(mb_path / "codename").set("Euwanee");      ////////////////////////////////////////////////////////////////////      // setup the mboard eeprom @@ -349,7 +350,8 @@ e100_impl::e100_impl(const uhd::device_addr_t &device_addr){      //setup reference source props      _tree->create<std::string>(mb_path / "clock_source/value")          .subscribe(boost::bind(&e100_impl::update_clock_source, this, _1)); -    static const std::vector<std::string> clock_sources = boost::assign::list_of("internal")("external")("auto"); +    std::vector<std::string> clock_sources = boost::assign::list_of("internal")("external")("auto"); +    if (_gps and _gps->gps_detected()) clock_sources.push_back("gpsdo");      _tree->create<std::vector<std::string> >(mb_path / "clock_source/options").set(clock_sources);      //////////////////////////////////////////////////////////////////// @@ -425,10 +427,11 @@ e100_impl::e100_impl(const uhd::device_addr_t &device_addr){      _tree->access<std::string>(mb_path / "time_source/value").set("none");      //GPS installed: use external ref, time, and init time spec -    if (_gps.get() != NULL and _gps->gps_detected()){ +    if (_gps and _gps->gps_detected()){ +        _time64->enable_gpsdo();          UHD_MSG(status) << "Setting references to the internal GPSDO" << std::endl; -        _tree->access<std::string>(mb_path / "time_source/value").set("external"); -        _tree->access<std::string>(mb_path / "clock_source/value").set("external"); +        _tree->access<std::string>(mb_path / "time_source/value").set("gpsdo"); +        _tree->access<std::string>(mb_path / "clock_source/value").set("gpsdo");          UHD_MSG(status) << "Initializing time to the internal GPSDO" << std::endl;          _time64->set_time_next_pps(time_spec_t(time_t(_gps->get_sensor("gps_time").to_int()+1)));      } @@ -448,7 +451,7 @@ double e100_impl::update_rx_codec_gain(const double gain){  }  void e100_impl::set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &mb_eeprom){ -    mb_eeprom.commit(*_dev_i2c_iface, mboard_eeprom_t::MAP_E100); +    mb_eeprom.commit(*_dev_i2c_iface, E100_EEPROM_MAP_KEY);  }  void e100_impl::set_db_eeprom(const std::string &type, const uhd::usrp::dboard_eeprom_t &db_eeprom){ @@ -461,6 +464,7 @@ void e100_impl::update_clock_source(const std::string &source){      if      (source == "auto")     _clock_ctrl->use_auto_ref();      else if (source == "internal") _clock_ctrl->use_internal_ref();      else if (source == "external") _clock_ctrl->use_external_ref(); +    else if (source == "gpsdo")    _clock_ctrl->use_external_ref();      else throw uhd::runtime_error("unhandled clock configuration reference source: " + source);  }  | 
