diff options
| author | Brent Stapleton <brent.stapleton@ettus.com> | 2019-06-07 13:22:05 -0700 | 
|---|---|---|
| committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 11:49:42 -0800 | 
| commit | 23f4f8cf4ea72d59740afcb5663e4541f93e821a (patch) | |
| tree | c4ab11c76a7a37a197ab464e368002a91d7878c1 /host/lib/include | |
| parent | 027cf1fe9b484197bc7f2aeb2f1bb588442d0bdc (diff) | |
| download | uhd-23f4f8cf4ea72d59740afcb5663e4541f93e821a.tar.gz uhd-23f4f8cf4ea72d59740afcb5663e4541f93e821a.tar.bz2 uhd-23f4f8cf4ea72d59740afcb5663e4541f93e821a.zip  | |
rfnoc: Add multi_usrp_rfnoc, modify multi_usrp
This adds a separate version of multi_usrp for RFNoC devices. It is
compatible with RFNoC devices only, and prefers C++ APIs over property
tree usage. The factory of multi_usrp is modified such that it picks the
correct version, users of multi_usrp don't care about this change.
This also introduces some API changes:
- Removing redundant GPIO functions. Now all GPIO control, setting, and
  readback is done with uint32_t's.
- Adding getter/setter for GPIO source. This was done to simplify the
  other GPIO settings, as the source for each pin is not always a
  binary. The CTRL mode, for example, can either be ATR or GPIO.
  However, the source can be controlled by various radios or "PS" or
  some other source.
- Removing the mask from the RFNoC radio controllers' set_gpio_attr().
- Adding state caching to gpio_atr_3000, and a getter for it. Whenever
  an attribute is set, that value is cached, and can now be retreieved.
- Remove low-level register API. Since UHD 3.10, there is no USRP that
  implements that API.
Modifying the filter API in the following ways:
- Splitting filter API getter/setter/list into separate RX and TX
  functions
- Adding channel numbers as an argument
- The filter name will no longer be a property tree path, but rather a
  filter name. For RFNoC devices, this will take the form
  `BLOCK_ID:FILTER_NAME`. For non-RFNoC devices, this will just be the
  filter name (e.g. `HB_1`)
- Removing search mask from listing function. Users can do their own
  searching
Co-Authored-By: Martin Braun <martin.braun@ettus.com>
Diffstat (limited to 'host/lib/include')
| -rw-r--r-- | host/lib/include/uhdlib/rfnoc/radio_control_impl.hpp | 3 | ||||
| -rw-r--r-- | host/lib/include/uhdlib/usrp/cores/gpio_atr_3000.hpp | 10 | 
2 files changed, 11 insertions, 2 deletions
diff --git a/host/lib/include/uhdlib/rfnoc/radio_control_impl.hpp b/host/lib/include/uhdlib/rfnoc/radio_control_impl.hpp index fc0d19a0a..b3ef2db0b 100644 --- a/host/lib/include/uhdlib/rfnoc/radio_control_impl.hpp +++ b/host/lib/include/uhdlib/rfnoc/radio_control_impl.hpp @@ -147,8 +147,7 @@ public:      virtual std::vector<std::string> get_gpio_banks() const;      virtual void set_gpio_attr(const std::string& bank,          const std::string& attr, -        const uint32_t value, -        const uint32_t mask); +        const uint32_t value);      virtual uint32_t get_gpio_attr(const std::string& bank, const std::string& attr);      /************************************************************************** diff --git a/host/lib/include/uhdlib/usrp/cores/gpio_atr_3000.hpp b/host/lib/include/uhdlib/usrp/cores/gpio_atr_3000.hpp index c9585449f..2ab0cf4cf 100644 --- a/host/lib/include/uhdlib/usrp/cores/gpio_atr_3000.hpp +++ b/host/lib/include/uhdlib/usrp/cores/gpio_atr_3000.hpp @@ -97,6 +97,16 @@ public:      virtual uint32_t read_gpio() = 0;      /*! +     * Get a GPIO attribute +     * This will likely returned a cached value, and not read the state from the physical +     * GPIO controller. +     * +     * \param attr the attribute to read +     * \return the current value of that attribute +     */ +    virtual uint32_t get_attr_reg(const gpio_attr_t attr) = 0; + +    /*!       * Set a GPIO attribute       *       * \param attr the attribute to set  | 
