aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorNick Foster <nick@nerdnetworks.org>2011-03-01 18:06:13 -0800
committerNick Foster <nick@nerdnetworks.org>2011-03-01 18:11:08 -0800
commit77319389b09c663170284ed64961ab27cf77488e (patch)
treedab53e367b2a0d2dadb40d5ba329ff8bd370d61b /host/lib
parent90c907074c65bf9112c0a85341ebf18e811df3f8 (diff)
downloaduhd-77319389b09c663170284ed64961ab27cf77488e.tar.gz
uhd-77319389b09c663170284ed64961ab27cf77488e.tar.bz2
uhd-77319389b09c663170284ed64961ab27cf77488e.zip
Generalized the mboard_iface into mboard_iface.hpp and made each of the USRP devices inherit from it.
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/usrp/usrp1/usrp1_iface.cpp17
-rw-r--r--host/lib/usrp/usrp1/usrp1_iface.hpp36
-rw-r--r--host/lib/usrp/usrp2/usrp2_iface.hpp58
-rw-r--r--host/lib/usrp/usrp_e100/usrp_e100_iface.cpp8
-rw-r--r--host/lib/usrp/usrp_e100/usrp_e100_iface.hpp51
5 files changed, 31 insertions, 139 deletions
diff --git a/host/lib/usrp/usrp1/usrp1_iface.cpp b/host/lib/usrp/usrp1/usrp1_iface.cpp
index 947847044..591bbda87 100644
--- a/host/lib/usrp/usrp1/usrp1_iface.cpp
+++ b/host/lib/usrp/usrp1/usrp1_iface.cpp
@@ -93,6 +93,23 @@ public:
return uhd::ntohx(value_out);
}
+
+ void poke16(boost::uint32_t addr, boost::uint16_t value) {
+ throw std::runtime_error("Unhandled command poke16()");
+ }
+
+ boost::uint16_t peek16(boost::uint32_t addr) {
+ throw std::runtime_error("Unhandled command peek16()");
+ return 0;
+ }
+
+ void write_uart(boost::uint8_t dev, const std::string &buf) {
+ throw std::runtime_error("Unhandled command write_uart()");
+ }
+
+ std::string read_uart(boost::uint8_t dev) {
+ throw std::runtime_error("Unhandled command read_uart()");
+ }
/*******************************************************************
* I2C
diff --git a/host/lib/usrp/usrp1/usrp1_iface.hpp b/host/lib/usrp/usrp1/usrp1_iface.hpp
index 34a2330b5..e808e2959 100644
--- a/host/lib/usrp/usrp1/usrp1_iface.hpp
+++ b/host/lib/usrp/usrp1/usrp1_iface.hpp
@@ -18,8 +18,7 @@
#ifndef INCLUDED_USRP1_IFACE_HPP
#define INCLUDED_USRP1_IFACE_HPP
-#include <uhd/usrp/mboard_eeprom.hpp>
-#include <uhd/types/serial.hpp>
+#include <uhd/usrp/mboard_iface.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/utility.hpp>
#include "usrp1_ctrl.hpp"
@@ -29,7 +28,7 @@
* Provides a set of functions to implementation layer.
* Including spi, peek, poke, control...
*/
-class usrp1_iface : boost::noncopyable, public uhd::i2c_iface{
+class usrp1_iface : public uhd::usrp::mboard_iface, boost::noncopyable{
public:
typedef boost::shared_ptr<usrp1_iface> sptr;
@@ -41,35 +40,6 @@ public:
static sptr make(usrp_ctrl::sptr ctrl_transport);
/*!
- * Write a register (32 bits)
- * \param addr the address
- * \param data the 32bit data
- */
- virtual void poke32(boost::uint32_t addr, boost::uint32_t data) = 0;
-
- /*!
- * Read a register (32 bits)
- * \param addr the address
- * \return the 32bit data
- */
- virtual boost::uint32_t peek32(boost::uint32_t addr) = 0;
-
- /*!
- * Perform an spi transaction.
- * \param which_slave the slave device number
- * \param config spi config args
- * \param data the bits to write
- * \param num_bits how many bits in data
- * \param readback true to readback a value
- * \return spi data if readback set
- */
- virtual boost::uint32_t transact_spi(int which_slave,
- const uhd::spi_config_t &config,
- boost::uint32_t data,
- size_t num_bits,
- bool readback) = 0;
-
- /*!
* Perform a general USB firmware OUT operation
* \param request
* \param value
@@ -82,8 +52,6 @@ public:
boost::uint16_t index,
unsigned char* buff,
boost::uint16_t length) = 0;
-
- uhd::usrp::mboard_eeprom_t mb_eeprom;
};
#endif /* INCLUDED_USRP1_IFACE_HPP */
diff --git a/host/lib/usrp/usrp2/usrp2_iface.hpp b/host/lib/usrp/usrp2/usrp2_iface.hpp
index 49cb0e6dc..55fcdc0d2 100644
--- a/host/lib/usrp/usrp2/usrp2_iface.hpp
+++ b/host/lib/usrp/usrp2/usrp2_iface.hpp
@@ -19,8 +19,7 @@
#define INCLUDED_USRP2_IFACE_HPP
#include <uhd/transport/udp_simple.hpp>
-#include <uhd/types/serial.hpp>
-#include <uhd/usrp/mboard_eeprom.hpp>
+#include <uhd/usrp/mboard_iface.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/utility.hpp>
#include <boost/cstdint.hpp>
@@ -40,10 +39,9 @@ typedef boost::function<std::string(void)> gps_recv_fn_t;
* Provides a set of functions to implementation layer.
* Including spi, peek, poke, control...
*/
-class usrp2_iface : public uhd::i2c_iface, boost::noncopyable{
+class usrp2_iface : public uhd::usrp::mboard_iface, boost::noncopyable{
public:
typedef boost::shared_ptr<usrp2_iface> sptr;
-
/*!
* Make a new usrp2 interface with the control transport.
* \param ctrl_transport the udp transport object
@@ -58,55 +56,6 @@ public:
*/
virtual usrp2_ctrl_data_t ctrl_send_and_recv(const usrp2_ctrl_data_t &data) = 0;
- /*!
- * Write a register (32 bits)
- * \param addr the address
- * \param data the 32bit data
- */
- virtual void poke32(boost::uint32_t addr, boost::uint32_t data) = 0;
-
- /*!
- * Read a register (32 bits)
- * \param addr the address
- * \return the 32bit data
- */
- virtual boost::uint32_t peek32(boost::uint32_t addr) = 0;
-
- /*!
- * Write a register (16 bits)
- * \param addr the address
- * \param data the 16bit data
- */
- virtual void poke16(boost::uint32_t addr, boost::uint16_t data) = 0;
-
- /*!
- * Read a register (16 bits)
- * \param addr the address
- * \return the 16bit data
- */
- virtual boost::uint16_t peek16(boost::uint32_t addr) = 0;
-
- /*!
- * Perform an spi transaction.
- * \param which_slave the slave device number
- * \param config spi config args
- * \param data the bits to write
- * \param num_bits how many bits in data
- * \param readback true to readback a value
- * \return spi data if readback set
- */
- virtual boost::uint32_t transact_spi(
- int which_slave,
- const uhd::spi_config_t &config,
- boost::uint32_t data,
- size_t num_bits,
- bool readback
- ) = 0;
-
- virtual void write_uart(boost::uint8_t dev, const std::string &buf) = 0;
-
- virtual std::string read_uart(boost::uint8_t dev) = 0;
-
virtual gps_recv_fn_t get_gps_read_fn(void) = 0;
virtual gps_send_fn_t get_gps_write_fn(void) = 0;
@@ -129,9 +78,6 @@ public:
* Register map selected from USRP2/USRP2+.
*/
usrp2_regs_t regs;
-
- //motherboard eeprom map structure
- uhd::usrp::mboard_eeprom_t mb_eeprom;
};
#endif /* INCLUDED_USRP2_IFACE_HPP */
diff --git a/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp b/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp
index 8ac00c2fe..912e4d48b 100644
--- a/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp
+++ b/host/lib/usrp/usrp_e100/usrp_e100_iface.cpp
@@ -257,6 +257,14 @@ public:
//unload the data
return data.data;
}
+
+ void write_uart(boost::uint8_t dev, const std::string &buf) {
+ throw std::runtime_error("Unhandled command write_uart()");
+ }
+
+ std::string read_uart(boost::uint8_t dev) {
+ throw std::runtime_error("Unhandled command read_uart()");
+ }
private:
int _node_fd;
diff --git a/host/lib/usrp/usrp_e100/usrp_e100_iface.hpp b/host/lib/usrp/usrp_e100/usrp_e100_iface.hpp
index 12283fb52..5e346519c 100644
--- a/host/lib/usrp/usrp_e100/usrp_e100_iface.hpp
+++ b/host/lib/usrp/usrp_e100/usrp_e100_iface.hpp
@@ -24,6 +24,7 @@
#include <boost/shared_ptr.hpp>
#include <boost/utility.hpp>
#include <boost/cstdint.hpp>
+#include <uhd/usrp/mboard_iface.hpp>
////////////////////////////////////////////////////////////////////////
// I2C addresses
@@ -39,7 +40,7 @@
* Provides a set of functions to implementation layer.
* Including spi, peek, poke, control...
*/
-class usrp_e100_iface : boost::noncopyable, public uhd::i2c_iface{
+class usrp_e100_iface : boost::noncopyable, public uhd::usrp::mboard_iface{
public:
typedef boost::shared_ptr<usrp_e100_iface> sptr;
@@ -66,54 +67,6 @@ public:
//! Get the I2C interface for the I2C device node
virtual uhd::i2c_iface &get_i2c_dev_iface(void) = 0;
-
- /*!
- * Write a register (32 bits)
- * \param addr the address
- * \param data the 32bit data
- */
- virtual void poke32(boost::uint32_t addr, boost::uint32_t data) = 0;
-
- /*!
- * Read a register (32 bits)
- * \param addr the address
- * \return the 32bit data
- */
- virtual boost::uint32_t peek32(boost::uint32_t addr) = 0;
-
- /*!
- * Write a register (16 bits)
- * \param addr the address
- * \param data the 16bit data
- */
- virtual void poke16(boost::uint32_t addr, boost::uint16_t data) = 0;
-
- /*!
- * Read a register (16 bits)
- * \param addr the address
- * \return the 16bit data
- */
- virtual boost::uint16_t peek16(boost::uint32_t addr) = 0;
-
- /*!
- * Perform an spi transaction.
- * \param which_slave the slave device number
- * \param config spi config args
- * \param data the bits to write
- * \param num_bits how many bits in data
- * \param readback true to readback a value
- * \return spi data if readback set
- */
- virtual boost::uint32_t transact_spi(
- int which_slave,
- const uhd::spi_config_t &config,
- boost::uint32_t data,
- size_t num_bits,
- bool readback
- ) = 0;
-
- //motherboard eeprom map structure
- uhd::usrp::mboard_eeprom_t mb_eeprom;
};
#endif /* INCLUDED_USRP_E100_IFACE_HPP */