summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xhost/lib/ic_reg_maps/gen_adf4350_regs.py93
-rw-r--r--host/lib/usrp/dboard/db_wbx.cpp10
2 files changed, 35 insertions, 68 deletions
diff --git a/host/lib/ic_reg_maps/gen_adf4350_regs.py b/host/lib/ic_reg_maps/gen_adf4350_regs.py
index 8cc6fd16c..e97772843 100755
--- a/host/lib/ic_reg_maps/gen_adf4350_regs.py
+++ b/host/lib/ic_reg_maps/gen_adf4350_regs.py
@@ -16,24 +16,21 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-import sys
-from common import *
-
########################################################################
# Template for raw text data describing registers
# name addr[bit range inclusive] default optional enums
########################################################################
-REGS_DATA_TMPL="""\
+REGS_TMPL="""\
########################################################################
## address 0
########################################################################
frac_12_bit 0[3:14] 0
-int_16_bit 0[15:30] 23
+int_16_bit 0[15:30] 0x23
##reserved 0[31] 0
########################################################################
## address 1
########################################################################
-mod_12_bit 1[3:14] fff
+mod_12_bit 1[3:14] 0xfff
phase_12_bit 1[15:26] 0
prescaler 1[27] 0 4_5, 8_9
##reserved 1[28:31] 0
@@ -88,67 +85,37 @@ ld_pin_mode 5[22:23] 1 low0, dld, low, high
"""
########################################################################
-# Header and Source templates below
+# Template for methods in the body of the struct
########################################################################
-HEADER_TEXT="""
-#import time
-
-/***********************************************************************
- * This file was generated by $file on $time.strftime("%c")
- **********************************************************************/
-
-\#ifndef INCLUDED_ADF4350_REGS_HPP
-\#define INCLUDED_ADF4350_REGS_HPP
-
-\#include <boost/cstdint.hpp>
-
-struct adf4350_regs_t{
-#for $reg in $regs
- #if $reg.get_enums()
- enum $(reg.get_name())_t{
- #for $i, $enum in enumerate($reg.get_enums())
- #set $end_comma = ',' if $i < len($reg.get_enums())-1 else ''
- $(reg.get_name().upper())_$(enum[0].upper()) = $enum[1]$end_comma
- #end for
- } $reg.get_name();
- #else
- boost::$reg.get_stdint_type() $reg.get_name();
- #end if
-#end for
-
- adf4350_regs_t(void){
-#for $reg in $regs
- $reg.get_name() = $reg.get_default();
-#end for
- }
-
- enum addr_t{
- ADDR_R0 = 0,
- ADDR_R1 = 1,
- ADDR_R2 = 2,
- ADDR_R3 = 3,
- ADDR_R4 = 4,
- ADDR_R5 = 5
- };
+BODY_TMPL="""\
+enum addr_t{
+ ADDR_R0 = 0,
+ ADDR_R1 = 1,
+ ADDR_R2 = 2,
+ ADDR_R3 = 3,
+ ADDR_R4 = 4,
+ ADDR_R5 = 5
+};
- boost::uint32_t get_reg(boost::uint8_t addr){
- boost::uint32_t reg = addr & 0x7;
- switch(addr){
- #for $addr in range(5+1)
- case $addr:
- #for $reg in filter(lambda r: r.get_addr() == addr, $regs)
- reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift();
- #end for
- break;
+boost::uint32_t get_reg(boost::uint8_t addr){
+ boost::uint32_t reg = addr & 0x7;
+ switch(addr){
+ #for $addr in range(5+1)
+ case $addr:
+ #for $reg in filter(lambda r: r.get_addr() == addr, $regs)
+ reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift();
#end for
- }
- return reg;
+ break;
+ #end for
}
-};
-
-\#endif /* INCLUDED_ADF4350_REGS_HPP */
+ return reg;
+}
"""
if __name__ == '__main__':
- regs = map(reg, parse_tmpl(REGS_DATA_TMPL).splitlines())
- open(sys.argv[1], 'w').write(parse_tmpl(HEADER_TEXT, regs=regs, file=__file__))
+ import common; common.generate(
+ name='adf4350_regs',
+ regs_tmpl=REGS_TMPL,
+ body_tmpl=BODY_TMPL,
+ file=__file__,
+ )
diff --git a/host/lib/usrp/dboard/db_wbx.cpp b/host/lib/usrp/dboard/db_wbx.cpp
index b4aaf587c..2a8a3a9f2 100644
--- a/host/lib/usrp/dboard/db_wbx.cpp
+++ b/host/lib/usrp/dboard/db_wbx.cpp
@@ -92,7 +92,7 @@ static const float _max_tx_pga0_gain = 25;
class wbx_xcvr : public xcvr_dboard_base{
public:
wbx_xcvr(
- ctor_args_t const& args,
+ ctor_args_t args,
const freq_range_t &freq_range
);
~wbx_xcvr(void);
@@ -142,7 +142,7 @@ private:
/***********************************************************************
* Register the WBX dboard (min freq, max freq, rx div2, tx div2)
**********************************************************************/
-static dboard_base::sptr make_wbx(dboard_base::ctor_args_t const& args){
+static dboard_base::sptr make_wbx(dboard_base::ctor_args_t args){
return dboard_base::sptr(new wbx_xcvr(args, freq_range_t(50e6, 2220e6)));
}
@@ -155,7 +155,7 @@ UHD_STATIC_BLOCK(reg_wbx_dboards){
* Structors
**********************************************************************/
wbx_xcvr::wbx_xcvr(
- ctor_args_t const& args,
+ ctor_args_t args,
const freq_range_t &freq_range
) : xcvr_dboard_base(args){
_freq_range = freq_range;
@@ -429,7 +429,7 @@ void wbx_xcvr::rx_get(const wax::obj &key_, wax::obj &val){
//handle the get request conditioned on the key
switch(key.as<subdev_prop_t>()){
case SUBDEV_PROP_NAME:
- val = dboard_id::to_string(get_rx_id());
+ val = get_rx_id().to_pp_string();
return;
case SUBDEV_PROP_OTHERS:
@@ -526,7 +526,7 @@ void wbx_xcvr::tx_get(const wax::obj &key_, wax::obj &val){
//handle the get request conditioned on the key
switch(key.as<subdev_prop_t>()){
case SUBDEV_PROP_NAME:
- val = dboard_id::to_string(get_tx_id());
+ val = get_tx_id().to_pp_string();
return;
case SUBDEV_PROP_OTHERS: