diff options
Diffstat (limited to 'host/lib/usrp/common/adf4001_ctrl.cpp')
| -rw-r--r-- | host/lib/usrp/common/adf4001_ctrl.cpp | 157 | 
1 files changed, 78 insertions, 79 deletions
| diff --git a/host/lib/usrp/common/adf4001_ctrl.cpp b/host/lib/usrp/common/adf4001_ctrl.cpp index 85a13455f..a9f3c1fdb 100644 --- a/host/lib/usrp/common/adf4001_ctrl.cpp +++ b/host/lib/usrp/common/adf4001_ctrl.cpp @@ -10,71 +10,72 @@  // SPDX-License-Identifier: GPL-3.0-or-later  // -#include <uhdlib/usrp/common/adf4001_ctrl.hpp>  #include <uhd/utils/log.hpp> - -#include <iostream> +#include <uhdlib/usrp/common/adf4001_ctrl.hpp>  #include <iomanip> +#include <iostream>  using namespace uhd;  using namespace uhd::usrp; -adf4001_regs_t::adf4001_regs_t(void) { -    ref_counter = 0; -    n = 0; -    charge_pump_current_1 = 0; -    charge_pump_current_2 = 0; -    anti_backlash_width = ANTI_BACKLASH_WIDTH_2_9NS; -    lock_detect_precision = LOCK_DETECT_PRECISION_3CYC; -    charge_pump_gain = CHARGE_PUMP_GAIN_1; -    counter_reset = COUNTER_RESET_NORMAL; -    power_down = POWER_DOWN_NORMAL; -    muxout = MUXOUT_TRISTATE_OUT; +adf4001_regs_t::adf4001_regs_t(void) +{ +    ref_counter             = 0; +    n                       = 0; +    charge_pump_current_1   = 0; +    charge_pump_current_2   = 0; +    anti_backlash_width     = ANTI_BACKLASH_WIDTH_2_9NS; +    lock_detect_precision   = LOCK_DETECT_PRECISION_3CYC; +    charge_pump_gain        = CHARGE_PUMP_GAIN_1; +    counter_reset           = COUNTER_RESET_NORMAL; +    power_down              = POWER_DOWN_NORMAL; +    muxout                  = MUXOUT_TRISTATE_OUT;      phase_detector_polarity = PHASE_DETECTOR_POLARITY_NEGATIVE; -    charge_pump_mode = CHARGE_PUMP_TRISTATE; -    fastlock_mode = FASTLOCK_MODE_DISABLED; -    timer_counter_control = TIMEOUT_3CYC; +    charge_pump_mode        = CHARGE_PUMP_TRISTATE; +    fastlock_mode           = FASTLOCK_MODE_DISABLED; +    timer_counter_control   = TIMEOUT_3CYC;  } -uint32_t adf4001_regs_t::get_reg(uint8_t addr) { +uint32_t adf4001_regs_t::get_reg(uint8_t addr) +{      uint32_t reg = 0;      switch (addr) { -    case 0: -        reg |= (uint32_t(ref_counter)         & 0x003FFF) << 2; -        reg |= (uint32_t(anti_backlash_width) & 0x000003) << 16; -        reg |= (uint32_t(lock_detect_precision) & 0x000001) << 20; -        break; -    case 1: -        reg |= (uint32_t(n) & 0x001FFF) << 8; -        reg |= (uint32_t(charge_pump_gain) & 0x000001) << 21; -        break; -    case 2: -        reg |= (uint32_t(counter_reset) & 0x000001) << 2; -        reg |= (uint32_t(power_down) & 0x000001) << 3; -        reg |= (uint32_t(muxout) & 0x000007) << 4; -        reg |= (uint32_t(phase_detector_polarity) & 0x000001) << 7; -        reg |= (uint32_t(charge_pump_mode) & 0x000001) << 8; -        reg |= (uint32_t(fastlock_mode) & 0x000003) << 9; -        reg |= (uint32_t(timer_counter_control) & 0x00000F) << 11; -        reg |= (uint32_t(charge_pump_current_1) & 0x000007) << 15; -        reg |= (uint32_t(charge_pump_current_2) & 0x000007) << 18; -        reg |= (uint32_t(power_down) & 0x000002) << 20; -        break; -    case 3: -        reg |= (uint32_t(counter_reset) & 0x000001) << 2; -        reg |= (uint32_t(power_down) & 0x000001) << 3; -        reg |= (uint32_t(muxout) & 0x000007) << 4; -        reg |= (uint32_t(phase_detector_polarity) & 0x000001) << 7; -        reg |= (uint32_t(charge_pump_mode) & 0x000001) << 8; -        reg |= (uint32_t(fastlock_mode) & 0x000003) << 9; -        reg |= (uint32_t(timer_counter_control) & 0x00000F) << 11; -        reg |= (uint32_t(charge_pump_current_1) & 0x000007) << 15; -        reg |= (uint32_t(charge_pump_current_2) & 0x000007) << 18; -        reg |= (uint32_t(power_down) & 0x000002) << 20; -        break; -    default: -        break; +        case 0: +            reg |= (uint32_t(ref_counter) & 0x003FFF) << 2; +            reg |= (uint32_t(anti_backlash_width) & 0x000003) << 16; +            reg |= (uint32_t(lock_detect_precision) & 0x000001) << 20; +            break; +        case 1: +            reg |= (uint32_t(n) & 0x001FFF) << 8; +            reg |= (uint32_t(charge_pump_gain) & 0x000001) << 21; +            break; +        case 2: +            reg |= (uint32_t(counter_reset) & 0x000001) << 2; +            reg |= (uint32_t(power_down) & 0x000001) << 3; +            reg |= (uint32_t(muxout) & 0x000007) << 4; +            reg |= (uint32_t(phase_detector_polarity) & 0x000001) << 7; +            reg |= (uint32_t(charge_pump_mode) & 0x000001) << 8; +            reg |= (uint32_t(fastlock_mode) & 0x000003) << 9; +            reg |= (uint32_t(timer_counter_control) & 0x00000F) << 11; +            reg |= (uint32_t(charge_pump_current_1) & 0x000007) << 15; +            reg |= (uint32_t(charge_pump_current_2) & 0x000007) << 18; +            reg |= (uint32_t(power_down) & 0x000002) << 20; +            break; +        case 3: +            reg |= (uint32_t(counter_reset) & 0x000001) << 2; +            reg |= (uint32_t(power_down) & 0x000001) << 3; +            reg |= (uint32_t(muxout) & 0x000007) << 4; +            reg |= (uint32_t(phase_detector_polarity) & 0x000001) << 7; +            reg |= (uint32_t(charge_pump_mode) & 0x000001) << 8; +            reg |= (uint32_t(fastlock_mode) & 0x000003) << 9; +            reg |= (uint32_t(timer_counter_control) & 0x00000F) << 11; +            reg |= (uint32_t(charge_pump_current_1) & 0x000007) << 15; +            reg |= (uint32_t(charge_pump_current_2) & 0x000007) << 18; +            reg |= (uint32_t(power_down) & 0x000002) << 20; +            break; +        default: +            break;      }      reg |= (uint32_t(addr) & 0x03); @@ -83,30 +84,30 @@ uint32_t adf4001_regs_t::get_reg(uint8_t addr) {  } -adf4001_ctrl::adf4001_ctrl(uhd::spi_iface::sptr _spi, int slaveno): -    spi_iface(_spi), -    slaveno(slaveno) -    { - +adf4001_ctrl::adf4001_ctrl(uhd::spi_iface::sptr _spi, int slaveno) +    : spi_iface(_spi), slaveno(slaveno) +{      spi_config.mosi_edge = spi_config_t::EDGE_RISE; -    //set defaults -    adf4001_regs.ref_counter = 1; -    adf4001_regs.n = 4; +    // set defaults +    adf4001_regs.ref_counter           = 1; +    adf4001_regs.n                     = 4;      adf4001_regs.charge_pump_current_1 = 7;      adf4001_regs.charge_pump_current_2 = 7; -    adf4001_regs.muxout = adf4001_regs_t::MUXOUT_DLD; -    adf4001_regs.counter_reset = adf4001_regs_t::COUNTER_RESET_NORMAL; -    adf4001_regs.phase_detector_polarity = adf4001_regs_t::PHASE_DETECTOR_POLARITY_POSITIVE; +    adf4001_regs.muxout                = adf4001_regs_t::MUXOUT_DLD; +    adf4001_regs.counter_reset         = adf4001_regs_t::COUNTER_RESET_NORMAL; +    adf4001_regs.phase_detector_polarity = +        adf4001_regs_t::PHASE_DETECTOR_POLARITY_POSITIVE;      adf4001_regs.charge_pump_mode = adf4001_regs_t::CHARGE_PUMP_TRISTATE; -    //everything else should be defaults +    // everything else should be defaults      program_regs();  } -void adf4001_ctrl::set_lock_to_ext_ref(bool external) { -    if(external) { +void adf4001_ctrl::set_lock_to_ext_ref(bool external) +{ +    if (external) {          adf4001_regs.charge_pump_mode = adf4001_regs_t::CHARGE_PUMP_NORMAL;      } else {          adf4001_regs.charge_pump_mode = adf4001_regs_t::CHARGE_PUMP_TRISTATE; @@ -115,27 +116,25 @@ void adf4001_ctrl::set_lock_to_ext_ref(bool external) {      program_regs();  } -void adf4001_ctrl::program_regs(void) { -    //no control over CE, only LE, therefore we use the initialization latch method +void adf4001_ctrl::program_regs(void) +{ +    // no control over CE, only LE, therefore we use the initialization latch method      write_reg(3); -    //conduct a function latch (2) +    // conduct a function latch (2)      write_reg(2); -    //write R counter latch (0) +    // write R counter latch (0)      write_reg(0); -    //write N counter latch (1) +    // write N counter latch (1)      write_reg(1);  } -void adf4001_ctrl::write_reg(uint8_t addr) { -    uint32_t reg = adf4001_regs.get_reg(addr); //load the reg data +void adf4001_ctrl::write_reg(uint8_t addr) +{ +    uint32_t reg = adf4001_regs.get_reg(addr); // load the reg data -        spi_iface->transact_spi(slaveno, -                                spi_config, -                                reg, -                                24, -                                false); +    spi_iface->transact_spi(slaveno, spi_config, reg, 24, false);  } | 
