From 869b4c274d5cfb328c7466ef36f081e83f2c9be6 Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 20 May 2026 09:32:30 +0200 Subject: [PATCH 1/5] dt-bindings: iio: logic: Add ADSY1100 Nyx RFFE controller Add the YAML schema for the Analog Devices ADSY1100 Apollo SOM "Nyx" RF front-end controller (drivers/iio/logic/adsy1100_nyx.c). The binding describes the 76-entry out-gpios array and the optional per-channel power-on defaults supplied through the output-channels (TX) and input-channels (RX) container nodes: adi,attenuation-millidb, adi,filter-mode, adi,powerdown, and adi,amplifier-enable (RX only). Filter-mode enumerations are exported through the new header include/dt-bindings/iio/logic/adi,adsy1100-nyx.h. Signed-off-by: Michael Hennerich --- .../bindings/iio/logic/adi,adsy1100-nyx.yaml | 262 ++++++++++++++++++ .../dt-bindings/iio/logic/adi,adsy1100-nyx.h | 20 ++ 2 files changed, 282 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/logic/adi,adsy1100-nyx.yaml create mode 100644 include/dt-bindings/iio/logic/adi,adsy1100-nyx.h diff --git a/Documentation/devicetree/bindings/iio/logic/adi,adsy1100-nyx.yaml b/Documentation/devicetree/bindings/iio/logic/adi,adsy1100-nyx.yaml new file mode 100644 index 00000000000000..133203f6c8c3f9 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/logic/adi,adsy1100-nyx.yaml @@ -0,0 +1,262 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/logic/adi,adsy1100-nyx.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices ADSY1100 Apollo SOM "Nyx" RF front-end controller + +maintainers: + - Michael Hennerich + +description: | + GPIO-driven controller for the four RX and four TX RF channels of the + ADSY1100 Apollo SOM "Nyx" daughter board. The driver consumes the 76 + control GPIOs that drive the per-channel digital step attenuators (DSA), + filter band-selection multiplexers, channel powerdown and the RX LNA + bypass switches, and exposes high-level IIO controls. + + Per-channel power-on defaults can optionally be supplied through the + output-channels (TX) and input-channels (RX) container nodes. Defaults + supplied this way are applied at probe time, before the IIO device is + registered, so the hardware comes up in the requested state. + + Built-in defaults applied to every channel before any DT subnode is + parsed are: + - attenuation = 0 mdB (hardwaregain 0 dB) + - filter mode = THRU + - powerdown = disabled (channel enabled) + - RX LNA = disabled (bypass=1) + +properties: + compatible: + const: adi,adsy1100-nyx + + out-gpios: + description: | + Array of 76 control GPIOs. Layout, in the order listed: + [ 0.. 7] TX3..TX0 filter_ctrl_{0,1} (TX descending) + [ 8..15] RX3..RX0 filter_ctrl_{0,1} (RX descending) + [16..21] TX0 dsa[0..5] + [22..27] TX1 dsa[0..5] + [28..33] TX2 dsa[0..5] + [34..39] TX3 dsa[0..5] + [40..45] RX0 dsa[0..5] + [46..51] RX1 dsa[0..5] + [52..57] RX2 dsa[0..5] + [58..63] RX3 dsa[0..5] + [64..67] TX0..TX3 enable + [68..71] RX0..RX3 enable + [72..75] RX0..RX3 amp_bypass + minItems: 76 + maxItems: 76 + + label: + description: Human-readable label for this RFFE instance. + + output-channels: + type: object + description: | + Container for per-TX-channel (output) power-on default + configuration. Each child node configures one of the four TX paths. + properties: + '#address-cells': + const: 1 + '#size-cells': + const: 0 + patternProperties: + "^channel@[0-3]$": + type: object + description: Per-TX-channel default configuration. Index 0..3. + properties: + reg: + minimum: 0 + maximum: 3 + description: TX channel index (0..3). + + adi,attenuation-millidb: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 31500 + multipleOf: 500 + default: 0 + description: | + Initial digital step attenuator (DSA) setting in + milli-dB. The DSA has 0.5 dB resolution, so the value + must be a multiple of 500. Maps to a negative IIO + hardwaregain in sysfs (e.g. 6000 mdB attenuation -> -6 dB + hardwaregain). + + adi,filter-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 1 + description: | + Initial filter band. Use one of the ADSY1100_NYX_FILTER_* + macros from : + 0 = LOW_BAND + 1 = THRU + 2 = X_BAND + 3 = KU_BAND + + adi,powerdown: + type: boolean + description: | + If present, the channel is powered down at probe time + instead of being brought up enabled. + + required: + - reg + additionalProperties: false + additionalProperties: false + + input-channels: + type: object + description: | + Container for per-RX-channel (input) power-on default + configuration. Each child node configures one of the four RX paths. + properties: + '#address-cells': + const: 1 + '#size-cells': + const: 0 + patternProperties: + "^channel@[0-3]$": + type: object + description: Per-RX-channel default configuration. Index 0..3. + properties: + reg: + minimum: 0 + maximum: 3 + description: RX channel index (0..3). + + adi,attenuation-millidb: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 31500 + multipleOf: 500 + default: 0 + description: | + Initial digital step attenuator (DSA) setting in + milli-dB. The DSA has 0.5 dB resolution, so the value + must be a multiple of 500. Maps to a negative IIO + hardwaregain in sysfs. + + adi,filter-mode: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1, 2, 3] + default: 1 + description: | + Initial filter band. Use one of the ADSY1100_NYX_FILTER_* + macros from . + + adi,powerdown: + type: boolean + description: | + If present, the channel is powered down at probe time + instead of being brought up enabled. + + adi,amplifier-enable: + type: boolean + description: | + If present, the RX LNA is brought into the signal path at + probe time (bypass_amplifier_en=0). When absent the LNA is + bypassed (default). + + required: + - reg + additionalProperties: false + additionalProperties: false + +required: + - compatible + - out-gpios + +additionalProperties: false + +examples: + - | + #include + + rffe { + compatible = "adi,adsy1100-nyx"; + label = "nyx_controls"; + + out-gpios = <&gpio_a 0 0>, <&gpio_a 1 0>, <&gpio_a 2 0>, + <&gpio_a 3 0>, <&gpio_a 4 0>, <&gpio_a 5 0>, + <&gpio_a 6 0>, <&gpio_a 7 0>, <&gpio_a 8 0>, + <&gpio_a 9 0>, <&gpio_a 10 0>, <&gpio_a 11 0>, + <&gpio_a 12 0>, <&gpio_a 13 0>, <&gpio_a 14 0>, + <&gpio_a 15 0>, <&gpio_a 16 0>, <&gpio_a 17 0>, + <&gpio_a 18 0>, <&gpio_a 19 0>, <&gpio_a 20 0>, + <&gpio_a 21 0>, <&gpio_a 22 0>, <&gpio_a 23 0>, + <&gpio_a 24 0>, <&gpio_a 25 0>, <&gpio_a 26 0>, + <&gpio_a 27 0>, <&gpio_a 28 0>, <&gpio_a 29 0>, + <&gpio_a 30 0>, <&gpio_a 31 0>, <&gpio_b 0 0>, + <&gpio_b 1 0>, <&gpio_b 2 0>, <&gpio_b 3 0>, + <&gpio_b 4 0>, <&gpio_b 5 0>, <&gpio_b 6 0>, + <&gpio_b 7 0>, <&gpio_b 8 0>, <&gpio_b 9 0>, + <&gpio_b 10 0>, <&gpio_b 11 0>, <&gpio_b 12 0>, + <&gpio_b 13 0>, <&gpio_b 14 0>, <&gpio_b 15 0>, + <&gpio_b 16 0>, <&gpio_b 17 0>, <&gpio_b 18 0>, + <&gpio_b 19 0>, <&gpio_b 20 0>, <&gpio_b 21 0>, + <&gpio_b 22 0>, <&gpio_b 23 0>, <&gpio_b 24 0>, + <&gpio_b 25 0>, <&gpio_b 26 0>, <&gpio_b 27 0>, + <&gpio_b 28 0>, <&gpio_b 29 0>, <&gpio_b 30 0>, + <&gpio_b 31 0>, <&gpio_c 0 0>, <&gpio_c 1 0>, + <&gpio_c 2 0>, <&gpio_c 3 0>, <&gpio_c 4 0>, + <&gpio_c 5 0>, <&gpio_c 6 0>, <&gpio_c 7 0>, + <&gpio_c 8 0>, <&gpio_c 9 0>, <&gpio_c 10 0>, + <&gpio_c 11 0>; + + output-channels { + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + adi,attenuation-millidb = <6000>; /* -6.0 dB */ + adi,filter-mode = ; + }; + channel@1 { + reg = <1>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + channel@2 { + reg = <2>; + adi,filter-mode = ; + adi,powerdown; + }; + channel@3 { + reg = <3>; + adi,filter-mode = ; + }; + }; + + input-channels { + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + adi,attenuation-millidb = <3500>; /* -3.5 dB */ + adi,filter-mode = ; + }; + channel@1 { + reg = <1>; + adi,filter-mode = ; + adi,amplifier-enable; /* bring LNA into the path */ + }; + channel@2 { + reg = <2>; + adi,filter-mode = ; + }; + channel@3 { + reg = <3>; + adi,filter-mode = ; + adi,powerdown; + }; + }; + }; +... diff --git a/include/dt-bindings/iio/logic/adi,adsy1100-nyx.h b/include/dt-bindings/iio/logic/adi,adsy1100-nyx.h new file mode 100644 index 00000000000000..e786c48dd8ffac --- /dev/null +++ b/include/dt-bindings/iio/logic/adi,adsy1100-nyx.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Device-tree bindings for the Analog Devices ADSY1100 Apollo SOM + * "Nyx" RF front-end controller. + * + * Copyright 2026 Analog Devices Inc. + */ +#ifndef _DT_BINDINGS_IIO_LOGIC_ADI_ADSY1100_NYX_H +#define _DT_BINDINGS_IIO_LOGIC_ADI_ADSY1100_NYX_H + +/* + * Filter band selection used with the adi,filter-mode property of the + * per-channel dac@N / adc@N subnodes. + */ +#define ADSY1100_NYX_FILTER_LOW_BAND 0 +#define ADSY1100_NYX_FILTER_THRU 1 +#define ADSY1100_NYX_FILTER_X_BAND 2 +#define ADSY1100_NYX_FILTER_KU_BAND 3 + +#endif /* _DT_BINDINGS_IIO_LOGIC_ADI_ADSY1100_NYX_H */ From e871d3e716343e485aa2e22a1e3d9e361795776a Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 6 May 2026 17:49:37 +0200 Subject: [PATCH 2/5] iio: logic: Add ADSY1100 Nyx RF front-end driver Add an IIO platform driver that drives the GPIO-controlled RF front-end on the Analog Devices ADSY1100 Apollo SOM "Nyx" daughter board. The driver consumes the 76-entry out-gpios array and exposes high-level per-channel controls instead of the raw bit GPIOs: - hardwaregain: 0 .. -31.5 dB digital step attenuator (0.5 dB step) - filter_mode: low_band / thru / x_band / ku_band - powerdown: enable/disable each RF channel - bypass_amplifier_en (RX only): bypass the receive LNA Channels are presented as IIO_VOLTAGE in/out indices 0..3 for the four RX and four TX paths. Signed-off-by: Michael Hennerich --- drivers/iio/logic/Kconfig | 12 + drivers/iio/logic/Makefile | 1 + drivers/iio/logic/adsy1100_nyx.c | 559 +++++++++++++++++++++++++++++++ 3 files changed, 572 insertions(+) create mode 100644 drivers/iio/logic/adsy1100_nyx.c diff --git a/drivers/iio/logic/Kconfig b/drivers/iio/logic/Kconfig index 79403c184f265e..44edb057b7be6b 100644 --- a/drivers/iio/logic/Kconfig +++ b/drivers/iio/logic/Kconfig @@ -17,3 +17,15 @@ config AXI_AION_TRIG tristate "AXI AION Trigger support" help Support for the AXI AION Trigger module HDL IP Core. + +config ADSY1100_NYX + tristate "Analog Devices ADSY1100 Nyx RF front-end controller" + depends on GPIOLIB && OF + help + Say yes here to support the Nyx RF front-end daughter board on the + Analog Devices ADSY1100 Apollo SOM platform. + + The driver exposes per-channel digital step attenuator settings + (in dB), filter band selection, channel powerdown and RX LNA + bypass through the IIO sysfs interface, driving the underlying + GPIOs as a single high-level device. diff --git a/drivers/iio/logic/Makefile b/drivers/iio/logic/Makefile index e9558ec2997a4f..d6813eca1fc7d0 100644 --- a/drivers/iio/logic/Makefile +++ b/drivers/iio/logic/Makefile @@ -2,4 +2,5 @@ obj-$(CONFIG_M2K_LOGIC_ANALYZER) += m2k-logic-analyzer.o obj-$(CONFIG_M2K_LOGIC_ANALYZER) += m2k-fabric.o obj-$(CONFIG_M2K_LOGIC_ANALYZER) += m2k-trigger-ad.o obj-$(CONFIG_AXI_AION_TRIG) += axi-aion-trig.o +obj-$(CONFIG_ADSY1100_NYX) += adsy1100_nyx.o diff --git a/drivers/iio/logic/adsy1100_nyx.c b/drivers/iio/logic/adsy1100_nyx.c new file mode 100644 index 00000000000000..39c4296f5aaa2d --- /dev/null +++ b/drivers/iio/logic/adsy1100_nyx.c @@ -0,0 +1,559 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Analog Devices ADSY1100 Apollo SOM "Nyx" RF front-end controller. + * + * GPIO-driven driver that provides a high-level IIO interface for the + * 4 RX / 4 TX RF channels on the Nyx daughter board: + * - per-channel digital step attenuator (0 .. -31.5 dB, 0.5 dB step) + * - per-channel filter band selection (low / thru / X / Ku) + * - per-channel powerdown + * - per-RX-channel low-noise amplifier bypass + * + * Copyright 2026 Analog Devices Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#define ADSY1100_NYX_NUM_RX 4 +#define ADSY1100_NYX_NUM_TX 4 + +#define ADSY1100_NYX_DSA_BITS 6 +#define ADSY1100_NYX_DSA_MAX_X2 63 /* 31.5 dB / 0.5 dB step */ + +/* + * GPIO layout in the "out" gpio array, matching the order the DT lists in + * the out-gpios property of the Nyx node: + * + * [ 0.. 7] TX3..TX0 filter_ctrl_{0,1} (TX descending) + * [ 8..15] RX3..RX0 filter_ctrl_{0,1} (RX descending) + * [16..21] TX0 dsa[0..5] + * [22..27] TX1 dsa[0..5] + * [28..33] TX2 dsa[0..5] + * [34..39] TX3 dsa[0..5] + * [40..45] RX0 dsa[0..5] + * [46..51] RX1 dsa[0..5] + * [52..57] RX2 dsa[0..5] + * [58..63] RX3 dsa[0..5] + * [64..67] TX0..TX3 enable + * [68..71] RX0..RX3 enable + * [72..75] RX0..RX3 amp_bypass + */ +#define ADSY1100_NYX_GPIO_TX_FILT_BASE 0 +#define ADSY1100_NYX_GPIO_RX_FILT_BASE 8 +#define ADSY1100_NYX_GPIO_TX_DSA_BASE 16 +#define ADSY1100_NYX_GPIO_RX_DSA_BASE 40 +#define ADSY1100_NYX_GPIO_TX_EN_BASE 64 +#define ADSY1100_NYX_GPIO_RX_EN_BASE 68 +#define ADSY1100_NYX_GPIO_RX_AMP_BASE 72 +#define ADSY1100_NYX_GPIO_COUNT 76 + +#define ADSY1100_NYX_FILTER_NUM_MODES 4 + +struct adsy1100_nyx { + struct mutex lock; /* serialise GPIO updates and shadow state */ + struct gpio_descs *gpios; + + u8 rx_dsa_x2[ADSY1100_NYX_NUM_RX]; + u8 tx_dsa_x2[ADSY1100_NYX_NUM_TX]; + u8 rx_filter[ADSY1100_NYX_NUM_RX]; + u8 tx_filter[ADSY1100_NYX_NUM_TX]; + bool rx_powerdown[ADSY1100_NYX_NUM_RX]; + bool tx_powerdown[ADSY1100_NYX_NUM_TX]; + bool rx_amp_bypass[ADSY1100_NYX_NUM_RX]; +}; + +static unsigned int adsy1100_nyx_filt_base(bool tx, unsigned int ch) +{ + /* DT lists TX3..TX0 / RX3..RX0, so the per-channel base is reversed. */ + unsigned int base = tx ? ADSY1100_NYX_GPIO_TX_FILT_BASE + : ADSY1100_NYX_GPIO_RX_FILT_BASE; + unsigned int n = tx ? ADSY1100_NYX_NUM_TX : ADSY1100_NYX_NUM_RX; + + return base + (n - 1 - ch) * 2; +} + +static unsigned int adsy1100_nyx_dsa_base(bool tx, unsigned int ch) +{ + unsigned int base = tx ? ADSY1100_NYX_GPIO_TX_DSA_BASE + : ADSY1100_NYX_GPIO_RX_DSA_BASE; + + return base + ch * ADSY1100_NYX_DSA_BITS; +} + +static void adsy1100_nyx_apply_dsa(struct adsy1100_nyx *st, bool tx, + unsigned int ch, u8 val_x2) +{ + unsigned int base = adsy1100_nyx_dsa_base(tx, ch); + unsigned int i; + + for (i = 0; i < ADSY1100_NYX_DSA_BITS; i++) + gpiod_set_value_cansleep(st->gpios->desc[base + i], + (val_x2 >> i) & 1); + + if (tx) + st->tx_dsa_x2[ch] = val_x2; + else + st->rx_dsa_x2[ch] = val_x2; +} + +static void adsy1100_nyx_apply_filter(struct adsy1100_nyx *st, bool tx, + unsigned int ch, u8 mode) +{ + unsigned int base = adsy1100_nyx_filt_base(tx, ch); + + gpiod_set_value_cansleep(st->gpios->desc[base + 0], mode & 0x1); + gpiod_set_value_cansleep(st->gpios->desc[base + 1], (mode >> 1) & 0x1); + + if (tx) + st->tx_filter[ch] = mode; + else + st->rx_filter[ch] = mode; +} + +static void adsy1100_nyx_apply_enable(struct adsy1100_nyx *st, bool tx, + unsigned int ch, bool powerdown) +{ + unsigned int idx = (tx ? ADSY1100_NYX_GPIO_TX_EN_BASE + : ADSY1100_NYX_GPIO_RX_EN_BASE) + ch; + + gpiod_set_value_cansleep(st->gpios->desc[idx], powerdown ? 1 : 0); + + if (tx) + st->tx_powerdown[ch] = powerdown; + else + st->rx_powerdown[ch] = powerdown; +} + +static void adsy1100_nyx_apply_amp_bypass(struct adsy1100_nyx *st, + unsigned int ch, bool bypass) +{ + gpiod_set_value_cansleep(st->gpios->desc[ADSY1100_NYX_GPIO_RX_AMP_BASE + ch], + bypass ? 1 : 0); + st->rx_amp_bypass[ch] = bypass; +} + +/* + * hardwaregain encodes the DSA setting as a (negative) gain in dB. The DSA + * resolution is 0.5 dB, so val2 is always 0 or 500000. + */ +static int adsy1100_nyx_read_raw(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + int *val, int *val2, long mask) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + u8 dsa_x2; + + guard(mutex)(&st->lock); + + switch (mask) { + case IIO_CHAN_INFO_HARDWAREGAIN: + dsa_x2 = chan->output ? st->tx_dsa_x2[chan->channel] + : st->rx_dsa_x2[chan->channel]; + *val = -(dsa_x2 / 2); + *val2 = (dsa_x2 & 1) ? 500000 : 0; + if (*val == 0 && (dsa_x2 & 1)) + *val2 = -500000; + return IIO_VAL_INT_PLUS_MICRO_DB; + default: + return -EINVAL; + } +} + +static int adsy1100_nyx_write_raw(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + int val, int val2, long mask) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + int millidB; + u8 val_x2; + + guard(mutex)(&st->lock); + + switch (mask) { + case IIO_CHAN_INFO_HARDWAREGAIN: + /* Attenuator: only non-positive gains are accepted. */ + if (val > 0 || val2 > 0) + return -EINVAL; + + millidB = abs(val) * 1000 + abs(val2) / 1000; + if (millidB % 500) + return -EINVAL; + + val_x2 = millidB / 500; + if (val_x2 > ADSY1100_NYX_DSA_MAX_X2) + return -EINVAL; + + adsy1100_nyx_apply_dsa(st, chan->output, chan->channel, val_x2); + return 0; + default: + return -EINVAL; + } +} + +static int adsy1100_nyx_write_raw_get_fmt(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + long mask) +{ + switch (mask) { + case IIO_CHAN_INFO_HARDWAREGAIN: + return IIO_VAL_INT_PLUS_MICRO_DB; + default: + return -EINVAL; + } +} + +static const char * const adsy1100_nyx_filter_modes[] = { + [ADSY1100_NYX_FILTER_LOW_BAND] = "low_band", + [ADSY1100_NYX_FILTER_THRU] = "thru", + [ADSY1100_NYX_FILTER_X_BAND] = "x_band", + [ADSY1100_NYX_FILTER_KU_BAND] = "ku_band", +}; + +static_assert(ARRAY_SIZE(adsy1100_nyx_filter_modes) == ADSY1100_NYX_FILTER_NUM_MODES); + +static int adsy1100_nyx_set_filter_mode(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan, + unsigned int mode) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + + guard(mutex)(&st->lock); + adsy1100_nyx_apply_filter(st, chan->output, chan->channel, mode); + return 0; +} + +static int adsy1100_nyx_get_filter_mode(struct iio_dev *indio_dev, + const struct iio_chan_spec *chan) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + + return chan->output ? st->tx_filter[chan->channel] + : st->rx_filter[chan->channel]; +} + +static const struct iio_enum adsy1100_nyx_filter_enum = { + .items = adsy1100_nyx_filter_modes, + .num_items = ARRAY_SIZE(adsy1100_nyx_filter_modes), + .set = adsy1100_nyx_set_filter_mode, + .get = adsy1100_nyx_get_filter_mode, +}; + +static ssize_t adsy1100_nyx_powerdown_read(struct iio_dev *indio_dev, + uintptr_t priv, + const struct iio_chan_spec *chan, + char *buf) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + bool state = chan->output ? st->tx_powerdown[chan->channel] + : st->rx_powerdown[chan->channel]; + + return sysfs_emit(buf, "%d\n", state); +} + +static ssize_t adsy1100_nyx_powerdown_write(struct iio_dev *indio_dev, + uintptr_t priv, + const struct iio_chan_spec *chan, + const char *buf, size_t len) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + bool state; + int ret; + + ret = kstrtobool(buf, &state); + if (ret) + return ret; + + guard(mutex)(&st->lock); + adsy1100_nyx_apply_enable(st, chan->output, chan->channel, state); + return len; +} + +static ssize_t adsy1100_nyx_amp_bypass_read(struct iio_dev *indio_dev, + uintptr_t priv, + const struct iio_chan_spec *chan, + char *buf) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + + return sysfs_emit(buf, "%d\n", st->rx_amp_bypass[chan->channel]); +} + +static ssize_t adsy1100_nyx_amp_bypass_write(struct iio_dev *indio_dev, + uintptr_t priv, + const struct iio_chan_spec *chan, + const char *buf, size_t len) +{ + struct adsy1100_nyx *st = iio_priv(indio_dev); + bool state; + int ret; + + ret = kstrtobool(buf, &state); + if (ret) + return ret; + + guard(mutex)(&st->lock); + adsy1100_nyx_apply_amp_bypass(st, chan->channel, state); + return len; +} + +static const struct iio_chan_spec_ext_info adsy1100_nyx_rx_ext_info[] = { + IIO_ENUM("filter_mode", IIO_SEPARATE, &adsy1100_nyx_filter_enum), + IIO_ENUM_AVAILABLE("filter_mode", IIO_SHARED_BY_TYPE, + &adsy1100_nyx_filter_enum), + { + .name = "powerdown", + .read = adsy1100_nyx_powerdown_read, + .write = adsy1100_nyx_powerdown_write, + .shared = IIO_SEPARATE, + }, + { + .name = "bypass_amplifier_en", + .read = adsy1100_nyx_amp_bypass_read, + .write = adsy1100_nyx_amp_bypass_write, + .shared = IIO_SEPARATE, + }, + { } +}; + +static const struct iio_chan_spec_ext_info adsy1100_nyx_tx_ext_info[] = { + IIO_ENUM("filter_mode", IIO_SEPARATE, &adsy1100_nyx_filter_enum), + IIO_ENUM_AVAILABLE("filter_mode", IIO_SHARED_BY_TYPE, + &adsy1100_nyx_filter_enum), + { + .name = "powerdown", + .read = adsy1100_nyx_powerdown_read, + .write = adsy1100_nyx_powerdown_write, + .shared = IIO_SEPARATE, + }, + { } +}; + +#define ADSY1100_NYX_RX_CHAN(idx) { \ + .type = IIO_VOLTAGE, \ + .indexed = 1, \ + .channel = (idx), \ + .info_mask_separate = BIT(IIO_CHAN_INFO_HARDWAREGAIN), \ + .ext_info = adsy1100_nyx_rx_ext_info, \ +} + +#define ADSY1100_NYX_TX_CHAN(idx) { \ + .type = IIO_VOLTAGE, \ + .indexed = 1, \ + .output = 1, \ + .channel = (idx), \ + .info_mask_separate = BIT(IIO_CHAN_INFO_HARDWAREGAIN), \ + .ext_info = adsy1100_nyx_tx_ext_info, \ +} + +static const struct iio_chan_spec adsy1100_nyx_channels[] = { + ADSY1100_NYX_RX_CHAN(0), + ADSY1100_NYX_RX_CHAN(1), + ADSY1100_NYX_RX_CHAN(2), + ADSY1100_NYX_RX_CHAN(3), + ADSY1100_NYX_TX_CHAN(0), + ADSY1100_NYX_TX_CHAN(1), + ADSY1100_NYX_TX_CHAN(2), + ADSY1100_NYX_TX_CHAN(3), +}; + +static const struct iio_info adsy1100_nyx_iio_info = { + .read_raw = adsy1100_nyx_read_raw, + .write_raw = adsy1100_nyx_write_raw, + .write_raw_get_fmt = adsy1100_nyx_write_raw_get_fmt, +}; + +/* + * adi,attenuation-millidb is encoded as a positive value [0..31500] in 500 + * mdB steps. The IIO sysfs "hardwaregain" attribute exposes the same value + * with the opposite sign. + */ +#define ADSY1100_NYX_DSA_MAX_MILLIDB 31500 +#define ADSY1100_NYX_DSA_STEP_MILLIDB 500 + +static int adsy1100_nyx_parse_dt_channel(struct device *dev, + struct fwnode_handle *node, + struct adsy1100_nyx *st, + bool tx, unsigned int ch) +{ + u8 dsa_x2 = 0; + u8 filter = ADSY1100_NYX_FILTER_THRU; + bool powerdown; + bool amp_enable = false; + u32 val; + + if (!fwnode_property_read_u32(node, "adi,attenuation-millidb", &val)) { + if (val > ADSY1100_NYX_DSA_MAX_MILLIDB || + val % ADSY1100_NYX_DSA_STEP_MILLIDB) + return dev_err_probe(dev, -EINVAL, + "%pfw: adi,attenuation-millidb %u invalid (0..%u in %u mdB steps)\n", + node, val, + ADSY1100_NYX_DSA_MAX_MILLIDB, + ADSY1100_NYX_DSA_STEP_MILLIDB); + dsa_x2 = val / ADSY1100_NYX_DSA_STEP_MILLIDB; + } + + if (!fwnode_property_read_u32(node, "adi,filter-mode", &val)) { + if (val >= ADSY1100_NYX_FILTER_NUM_MODES) + return dev_err_probe(dev, -EINVAL, + "%pfw: adi,filter-mode %u invalid\n", + node, val); + filter = val; + } + + powerdown = fwnode_property_read_bool(node, "adi,powerdown"); + + if (!tx) + amp_enable = fwnode_property_read_bool(node, + "adi,amplifier-enable"); + + adsy1100_nyx_apply_dsa(st, tx, ch, dsa_x2); + adsy1100_nyx_apply_filter(st, tx, ch, filter); + adsy1100_nyx_apply_enable(st, tx, ch, powerdown); + if (!tx) + adsy1100_nyx_apply_amp_bypass(st, ch, !amp_enable); + + return 0; +} + +static int adsy1100_nyx_parse_dt_group(struct device *dev, + struct adsy1100_nyx *st, + const char *group_name, + bool tx, unsigned int max_ch) +{ + struct fwnode_handle *group __free(fwnode_handle) = + device_get_named_child_node(dev, group_name); + struct fwnode_handle *child; + int ret; + + if (!group) + return 0; + + fwnode_for_each_child_node(group, child) { + u32 reg; + + ret = fwnode_property_read_u32(child, "reg", ®); + if (ret) { + ret = dev_err_probe(dev, ret, + "%pfw: missing reg property\n", + child); + goto err_put; + } + + if (reg >= max_ch) { + ret = dev_err_probe(dev, -EINVAL, + "%pfw: reg %u out of range (max %u)\n", + child, reg, max_ch - 1); + goto err_put; + } + + ret = adsy1100_nyx_parse_dt_channel(dev, child, st, tx, reg); + if (ret) + goto err_put; + } + + return 0; + +err_put: + fwnode_handle_put(child); + return ret; +} + +static int adsy1100_nyx_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct iio_dev *indio_dev; + struct adsy1100_nyx *st; + unsigned int i; + int ret; + + indio_dev = devm_iio_device_alloc(dev, sizeof(*st)); + if (!indio_dev) + return -ENOMEM; + + st = iio_priv(indio_dev); + + ret = devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + + st->gpios = devm_gpiod_get_array(dev, "out", GPIOD_OUT_LOW); + if (IS_ERR(st->gpios)) + return dev_err_probe(dev, PTR_ERR(st->gpios), + "failed to acquire control GPIOs\n"); + + if (st->gpios->ndescs != ADSY1100_NYX_GPIO_COUNT) + return dev_err_probe(dev, -EINVAL, + "expected %d out-gpios, got %u\n", + ADSY1100_NYX_GPIO_COUNT, + st->gpios->ndescs); + + /* + * Bring the front-end into a defined state: 0 dB attenuation, THRU + * filter band, channels enabled (powerdown=0), RX LNAs bypassed + * (bypass=1). Per-channel defaults provided through the + * output-channels / input-channels subnodes override the built-in + * defaults below. + */ + for (i = 0; i < ADSY1100_NYX_NUM_RX; i++) { + adsy1100_nyx_apply_dsa(st, false, i, 0); + adsy1100_nyx_apply_filter(st, false, i, + ADSY1100_NYX_FILTER_THRU); + adsy1100_nyx_apply_enable(st, false, i, false); + adsy1100_nyx_apply_amp_bypass(st, i, true); + } + for (i = 0; i < ADSY1100_NYX_NUM_TX; i++) { + adsy1100_nyx_apply_dsa(st, true, i, 0); + adsy1100_nyx_apply_filter(st, true, i, + ADSY1100_NYX_FILTER_THRU); + adsy1100_nyx_apply_enable(st, true, i, false); + } + + ret = adsy1100_nyx_parse_dt_group(dev, st, "output-channels", true, + ADSY1100_NYX_NUM_TX); + if (ret) + return ret; + + ret = adsy1100_nyx_parse_dt_group(dev, st, "input-channels", false, + ADSY1100_NYX_NUM_RX); + if (ret) + return ret; + + indio_dev->name = "adsy1100-nyx"; + indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->info = &adsy1100_nyx_iio_info; + indio_dev->channels = adsy1100_nyx_channels; + indio_dev->num_channels = ARRAY_SIZE(adsy1100_nyx_channels); + + return devm_iio_device_register(dev, indio_dev); +} + +static const struct of_device_id adsy1100_nyx_of_match[] = { + { .compatible = "adi,adsy1100-nyx" }, + { } +}; +MODULE_DEVICE_TABLE(of, adsy1100_nyx_of_match); + +static struct platform_driver adsy1100_nyx_driver = { + .driver = { + .name = "adsy1100-nyx", + .of_match_table = adsy1100_nyx_of_match, + }, + .probe = adsy1100_nyx_probe, +}; +module_platform_driver(adsy1100_nyx_driver); + +MODULE_AUTHOR("Michael Hennerich "); +MODULE_DESCRIPTION("Analog Devices ADSY1100 Nyx RF front-end controller"); +MODULE_LICENSE("GPL"); From e78167b2d49dfbe0117f4d4cc7449a3a7d3913a7 Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 6 May 2026 17:49:48 +0200 Subject: [PATCH 3/5] arm64: dts: xilinx: Add ADSY1100 Nyx RFFE overlay for vu11p-ad9084-vpx Add a dedicated device-tree overlay that instantiates the new adi,adsy1100-nyx high-level RF front-end driver on top of the vu11p-ad9084-vpx-revb base overlay. The dormant generic one-bit-adc-dac stub provided by the base overlay is left disabled, and a fresh node is added under vu11p_fpga_region wiring up the 76 control GPIOs that drive the four RX and four TX paths on the Nyx daughter board. Signed-off-by: Michael Hennerich --- .../xilinx/vu11p-ad9084-vpx-adsy1100-nyx.dtso | 120 ++++++++++++++++++ .../dts/xilinx/vu11p-ad9084-vpx-reva.dtso | 7 + 2 files changed, 127 insertions(+) create mode 100644 arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-adsy1100-nyx.dtso diff --git a/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-adsy1100-nyx.dtso b/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-adsy1100-nyx.dtso new file mode 100644 index 00000000000000..ca7e5a199db35e --- /dev/null +++ b/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-adsy1100-nyx.dtso @@ -0,0 +1,120 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device-tree overlay that instantiates the ADSY1100 Apollo SOM "Nyx" + * RF front-end controller (drivers/iio/logic/adsy1100_nyx.c) on top of + * the vu11p-ad9084-vpx-revb base overlay. + * + * Adds a dedicated adsy1100-nyx node so the board binds against the + * high-level RFFE driver. The dormant rfpc_one_bit_adc_dac stub + * provided by the base overlay is left disabled. + */ +/dts-v1/; +/plugin/; + +#define DEVICE_PROFILE_NAME "204C_M4_L4_NP16_8p0_4x4.bin" + +#include "vu11p-ad9084-vpx-reva.dtso" +#include + +&adsy1100_nyx { + label = "nyx_controls"; + status = "okay"; + + out-gpios = <&axi_gpio_1 33 0>, <&axi_gpio_1 34 0>, + <&axi_gpio_1 35 0>, <&axi_gpio_1 36 0>, + <&axi_gpio_1 37 0>, <&axi_gpio_1 38 0>, + <&axi_gpio_1 39 0>, <&axi_gpio_1 40 0>, + <&axi_gpio_1 41 0>, <&axi_gpio_1 42 0>, + <&axi_gpio_1 43 0>, <&axi_gpio_1 44 0>, + <&axi_gpio_1 45 0>, <&axi_gpio_1 46 0>, + <&axi_gpio_1 47 0>, <&axi_gpio_1 48 0>, + <&axi_gpio_1 49 0>, <&axi_gpio_1 50 0>, + <&axi_gpio_1 51 0>, <&axi_gpio_1 52 0>, + <&axi_gpio_1 53 0>, <&axi_gpio_1 54 0>, + <&axi_gpio_1 55 0>, <&axi_gpio_1 56 0>, + <&axi_gpio_1 57 0>, <&axi_gpio_1 58 0>, + <&axi_gpio_1 59 0>, <&axi_gpio_1 60 0>, + <&axi_gpio_1 61 0>, <&axi_gpio_1 62 0>, + <&axi_gpio_1 63 0>, <&axi_gpio_2 0 0>, + <&axi_gpio_2 1 0>, <&axi_gpio_2 2 0>, + <&axi_gpio_2 3 0>, <&axi_gpio_2 4 0>, + <&axi_gpio_2 5 0>, <&axi_gpio_2 6 0>, + <&axi_gpio_2 7 0>, <&axi_gpio_2 8 0>, + <&axi_gpio_2 9 0>, <&axi_gpio_2 10 0>, + <&axi_gpio_2 11 0>, <&axi_gpio_2 12 0>, + <&axi_gpio_2 13 0>, <&axi_gpio_2 14 0>, + <&axi_gpio_2 15 0>, <&axi_gpio_2 16 0>, + <&axi_gpio_2 17 0>, <&axi_gpio_2 18 0>, + <&axi_gpio_2 19 0>, <&axi_gpio_2 20 0>, + <&axi_gpio_2 21 0>, <&axi_gpio_2 22 0>, + <&axi_gpio_2 23 0>, <&axi_gpio_2 24 0>, + <&axi_gpio_2 25 0>, <&axi_gpio_2 26 0>, + <&axi_gpio_2 27 0>, <&axi_gpio_2 28 0>, + <&axi_gpio_2 29 0>, <&axi_gpio_2 30 0>, + <&axi_gpio_2 31 0>, <&axi_gpio_2 32 0>, + <&axi_gpio_2 33 0>, <&axi_gpio_2 34 0>, + <&axi_gpio_2 35 0>, <&axi_gpio_2 36 0>, + <&axi_gpio_2 37 0>, <&axi_gpio_2 38 0>, + <&axi_gpio_2 39 0>, <&axi_gpio_2 40 0>, + <&axi_gpio_2 41 0>, <&axi_gpio_2 42 0>, + <&axi_gpio_2 43 0>, <&axi_gpio_2 44 0>; + + /* + * Per-channel power-on defaults. The values below match the + * driver's built-in defaults (0 dB attenuation, THRU filter, + * channel enabled, RX LNA bypassed) and are included here as + * a template -- edit per channel to override. + */ + output-channels { + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + channel@1 { + reg = <1>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + channel@2 { + reg = <2>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + channel@3 { + reg = <3>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + }; + + input-channels { + #address-cells = <1>; + #size-cells = <0>; + + channel@0 { + reg = <0>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + /* adi,amplifier-enable; -- uncomment to bring the LNA into path */ + }; + channel@1 { + reg = <1>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + channel@2 { + reg = <2>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + channel@3 { + reg = <3>; + adi,attenuation-millidb = <0>; + adi,filter-mode = ; + }; + }; +}; diff --git a/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-reva.dtso b/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-reva.dtso index 65d18aaaf1b65a..6590ef92f1a70e 100644 --- a/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-reva.dtso +++ b/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-reva.dtso @@ -682,4 +682,11 @@ #size-cells = <0>; status = "disabled"; }; + + adsy1100_nyx: adsy1100-nyx@0 { + compatible = "adi,adsy1100-nyx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; }; From b622ef0a60bd98d0fdd2f1a07b8e05e255949e7a Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 20 May 2026 09:41:39 +0200 Subject: [PATCH 4/5] firmware: Add 204C M4 L4 NP16 8p0 4x4 device profile Add the AD9084 device profile (.bin + matching .json descriptor) referenced by the vu11p-ad9084-vpx-adsy1100-nyx overlay via DEVICE_PROFILE_NAME. Signed-off-by: Michael Hennerich --- firmware/204C_M4_L4_NP16_8p0_4x4.bin | Bin 0 -> 23720 bytes firmware/204C_M4_L4_NP16_8p0_4x4.json | 4382 +++++++++++++++++++++++++ 2 files changed, 4382 insertions(+) create mode 100644 firmware/204C_M4_L4_NP16_8p0_4x4.bin create mode 100644 firmware/204C_M4_L4_NP16_8p0_4x4.json diff --git a/firmware/204C_M4_L4_NP16_8p0_4x4.bin b/firmware/204C_M4_L4_NP16_8p0_4x4.bin new file mode 100644 index 0000000000000000000000000000000000000000..f1487418da25d14d682df4da336b30ae39cd3491 GIT binary patch literal 23720 zcmeI4KTg9i6vplRX-g@jGYgynW+c=T^eSvDh%0ah&cX&OEKEq;0I`<$?6`81#<9~X zO_R@38^?Ze>YqP5eos}VQbafBz0!_@x>V#O;jmoO~%SqWQDj?7f4k<7nwTy zr55$Qmx3BWbLZh?D$qcm&K#(*v%T>0c2P^Wk3D)FM3 zNuPXjLSywXp|N^Kw#8awEVBbVu;xtFlM&K!mflh2!H?xfB*<|kN_f-{c=n= z%B&;J%WkQyVp)@z2Vr^MzMGKq{j{r7M!y9w- z7zFxBAW;vwa^LJ#&d!%DQPKhd9s)fKh+}%=CTTmPZXoK7GB>Ov3ZLJPC~<_->W4~M zsfQHem;uC$DU@bN_#F#Mqh~JGG;eZP)BI2=tAf&~4EX%;VNLVnWUR_cGc`C4mjJx_ z;f_6e4g&omfH>w+j3+&GGV%QVs6%hDr1;!Zmc_L7y->e@F6MlcNxIP;8O2$ixO}ux z*}_R5f3`-=y8xn_q@(fVWO_O~JLi|4?l&EJ^tSZ|yPs`TP?i&LPI$~5=mZ3+2$(l; yOP!RNqfCrPl-RbaK}UJs?oMq`^LL9(T+<$e-b%E{?{=g9G@b7B;_rvozn_2Xm`U#d literal 0 HcmV?d00001 diff --git a/firmware/204C_M4_L4_NP16_8p0_4x4.json b/firmware/204C_M4_L4_NP16_8p0_4x4.json new file mode 100644 index 00000000000000..a275bed1a7fbc0 --- /dev/null +++ b/firmware/204C_M4_L4_NP16_8p0_4x4.json @@ -0,0 +1,4382 @@ +{ + "profile_cfg": { + "profile_version": { + "major": 10, + "minor": 1, + "patch": 2 + }, + "cfg_version": 0, + "is_8t8r": false, + "sw_trim": 5 + }, + "clk_cfg": { + "is_dual_clk": false, + "clk_path_sel": true, + "ref_clk_freq_kHz": 0, + "clocking_mode": 0, + "adc_divby2": [false,false], + "dac_divby2": [true,true], + "adc_inclk_invert0": [false,false], + "adc_inclk_invert1": [false,false], + "dev_clk_freq_Hz": 8000000000, + "arm_clock_sel": 1, + "arm_clk_div": 2, + "serdes_clk_div": 8 + }, + "clk_pll": { + "loop_bandwidth": 0, + "phase_margin": 0, + "div_range": 0, + "div2": 0, + "power": 0, + "ref_clk_div": 1, + "i_bleed_en": 0, + "feedback_int": 0, + "feedback_frac": 0 + }, + "mcs_cfg": { + "center_sysref": { + "ref_to_int_period_ratio": 1, + "sysref_present": false, + "rx_term_en": false, + "cm_above_900mv": false + }, + "side_a_sysref": { + "ref_to_int_period_ratio": 1, + "sysref_present": false, + "rx_term_en": false, + "cm_above_900mv": false + }, + "side_b_sysref": { + "ref_to_int_period_ratio": 1, + "sysref_present": false, + "rx_term_en": false, + "cm_above_900mv": false + }, + "use_gapped_sysref": false, + "leave_sysref_rx_on": false, + "num_sysref_avg_mcs_fw": 31, + "sysref_lock_window_mcs_fw": 0, + "internal_sysref_prd_digclk_cycles_center": 256, + "internal_sysref_prd_digclk_cycles_side_a": 256, + "internal_sysref_prd_digclk_cycles_side_b": 256, + "adf4382_cfg": { + "side_a_adf4382_instance_cfg": 0, + "side_b_adf4382_instance_cfg": 0, + "del_mode": 0, + "clock_align_delay_adjust_gpio": [16,0], + "clock_align_delay_strobe_gpio": [15,0], + "track_polarity_select": [false,false], + "phase_adj": [1,0], + "track_win": [500,500] + }, + "mcs_trigger_cfg": { + "trigger_pin_to_rx_datapath_a_mapping": 0, + "trigger_pin_to_rx_datapath_b_mapping": 0, + "trigger_pin_to_tx_datapath_a_mapping": 0, + "trigger_pin_to_tx_datapath_b_mapping": 0 + } + }, + "gpio_cfg": { + "gpio_quick_config": 0, + "gpio_mode_en": 0, + "gpio_mode_dir": 0, + "gpio_from_master": 0, + "gpio_from_set": 0, + "gpio_from_clear": 0, + "gpio_source_control": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "gpio_stage_sel_lsb": 0, + "gpio_stage_sel_msb": 0 + }, + "tx_path": [ + { + "tx_cduc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 536870912, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 4 + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 536870912, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 4 + } + ], + "tx_fduc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 14073748835533, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 14073748835533, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + } + ], + "tx_pfilt": [ + { + "enable": false, + "coeffs": [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + "i_mode": [0,0], + "q_mode": [0,0], + "output_dither_en": [false,false], + "real_data": 0, + "dq_mode": 0, + "add_sub_sel": 0, + "mode_switch": 0, + "pfilt_trigger_en": false, + "pfir_ix_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_ix_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "hc_prog_delay": [0,0,0,0,0,0,0,0] + } + ], + "tx_cfir": [ + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + }, + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + } + ], + "tx_fsrc": { + "fsrc_rate_int": 0, + "fsrc_rate_frac_a": 0, + "fsrc_rate_frac_b": 0, + "fsrc_delay": 0, + "gain_reduction": 0, + "ptr_syncrstval": 0, + "ptr_overwrite": false, + "data_mult_dither_en": false, + "dither_en": false, + "split_4t4r": false, + "mode_1x": false, + "enable0": false, + "enable1": false, + "bypass": false + }, + "tx_mux_summer_xbar": { + "cduc_dac_enables": [0,2,1,3], + "fduc_cduc_summer": [1,2,0,0], + "mux1_sel": [0,0], + "mux0_sel": [0,1,0,1], + "low_samp_en": false + }, + "tx_dyn_recfg": { + "prefsrc_lcm": 0, + "postfsrc_lcm": 0, + "trig_recfg_mode": false, + "cnco_rst_en": false, + "fnco_rst_en": false, + "resync_en": false, + "ts_rst_en": false, + "tzero_coher_en": false + }, + "tx_pa_prot": [ + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + }, + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + }, + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + }, + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + } + ], + "inv_sinc_en": [true,true,false,false], + "tx_enable": [ + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + } + ], + "tx_power": [ + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + } + ] + }, + { + "tx_cduc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 536870912, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 4 + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 536870912, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 4 + } + ], + "tx_fduc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 14073748835533, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 14073748835533, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 4, + "sub_dp_gain_en": false, + "subdp_gain": 0 + } + ], + "tx_pfilt": [ + { + "enable": false, + "coeffs": [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + "i_mode": [0,0], + "q_mode": [0,0], + "output_dither_en": [false,false], + "real_data": 0, + "dq_mode": 0, + "add_sub_sel": 0, + "mode_switch": 0, + "pfilt_trigger_en": false, + "pfir_ix_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_ix_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "hc_prog_delay": [0,0,0,0,0,0,0,0] + } + ], + "tx_cfir": [ + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + }, + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + } + ], + "tx_fsrc": { + "fsrc_rate_int": 0, + "fsrc_rate_frac_a": 0, + "fsrc_rate_frac_b": 0, + "fsrc_delay": 0, + "gain_reduction": 0, + "ptr_syncrstval": 0, + "ptr_overwrite": false, + "data_mult_dither_en": false, + "dither_en": false, + "split_4t4r": false, + "mode_1x": false, + "enable0": false, + "enable1": false, + "bypass": false + }, + "tx_mux_summer_xbar": { + "cduc_dac_enables": [0,2,1,3], + "fduc_cduc_summer": [1,2,0,0], + "mux1_sel": [0,0], + "mux0_sel": [0,1,0,1], + "low_samp_en": false + }, + "tx_dyn_recfg": { + "prefsrc_lcm": 0, + "postfsrc_lcm": 0, + "trig_recfg_mode": false, + "cnco_rst_en": false, + "fnco_rst_en": false, + "resync_en": false, + "ts_rst_en": false, + "tzero_coher_en": false + }, + "tx_pa_prot": [ + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + }, + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + }, + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + }, + { + "pa_clkdiv_en": false, + "paprot_pwr_cfg": { + "pa_clk_en": false, + "short_pac_en": false, + "long_pac_en": false, + "pwr_threshold_long": 0, + "pwr_threshold_short": 0, + "avg_long_win": 0, + "avg_short_win": 0 + }, + "paprot_sm_cfg": { + "enable_paprotsm": false, + "rampdwn_to_papin_en": false, + "srl_err_en": false, + "avg_pwr_err_en": false, + "auto_dyn_recfg_en": false, + "jesd_err_en": false, + "jesd_err_auto_cfg_en": false, + "data_ready_auto_cfg_en": false, + "zero_flush_clock_stable_rise_en": false, + "zero_flush_dyn_recfg_ramp_up_en": false, + "zero_flush_txen_fall_en": false, + "zero_flush_txen_rise_en": false, + "zero_flush_start_en": false, + "drive_sm_by_dig_en": false, + "hold_sample_en": false, + "skip_ramp_up": false, + "skip_ramp_down": false, + "ramp_up_timer_en": false, + "ramp_dwn_timer_en": false, + "zero_flush_timer": 0, + "ramp_down_timer_val": 0, + "ramp_up_timer_val": 0, + "dp_zero_flush_sel_0": 0, + "dp_zero_flush_sel_1": 0, + "data_ready_sel_ramp": 0, + "jesd_err_sel_ramp": 0 + }, + "paprot_ramp_cfg": { + "gain_clk_en": false, + "zero_detect_en": false, + "force_ramps_dyn_recfg_en": false, + "force_ramp_up_en": false, + "force_ramp_dwn_en": false, + "enable_gain": false, + "enable_ramp": false, + "trig_ramp_together": false, + "gain_inc_step": 0, + "gain_dec_step": 0, + "gain_max_val": 0 + }, + "paprot_sr_cfg": { + "sr_clk_en": false, + "sr_err_self_clr_en": false, + "sr_calculation_en": false, + "slew_rate_err_irq_en": false, + "sr_path_sel": 0, + "sr_threshold": 0 + } + } + ], + "inv_sinc_en": [true,true,false,false], + "tx_enable": [ + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + } + ], + "tx_power": [ + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + } + ] + } + ], + "rx_path": [ + { + "rx_cddc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 1342177280, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 3, + "fine_bypass": false, + "link_num": 0, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "tb1_filt_dly_cycles": 0, + "hb1_gain_6db_en": false, + "tb1_gain_6db_en": false, + "trig_mst_en": false, + "trig_mst_period": 0, + "trig_mst_offset": 0, + "debug_cddc_clkoff_n": 255 + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 1342177280, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 3, + "fine_bypass": false, + "link_num": 0, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "tb1_filt_dly_cycles": 0, + "hb1_gain_6db_en": false, + "tb1_gain_6db_en": false, + "trig_mst_en": false, + "trig_mst_period": 0, + "trig_mst_offset": 0, + "debug_cddc_clkoff_n": 255 + } + ], + "rx_fddc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 703687441777, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 703687441777, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + } + ], + "rx_pfilt": [ + { + "enable": false, + "coeffs": [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + "i_mode": [0,0], + "q_mode": [0,0], + "output_dither_en": [false,false], + "real_data": 1, + "dq_mode": 0, + "add_sub_sel": 0, + "mode_switch": 0, + "pfilt_trigger_en": false, + "pfir_ix_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_ix_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "hc_prog_delay": [0,0,0,0,0,0,0,0] + } + ], + "rx_cfir": [ + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + }, + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + } + ], + "rx_fsrc": { + "fsrc_rate_int": 0, + "fsrc_rate_frac_a": 0, + "fsrc_rate_frac_b": 0, + "fsrc_delay": 0, + "gain_reduction": 0, + "ptr_syncrstval": 0, + "ptr_overwrite": false, + "data_mult_dither_en": false, + "dither_en": false, + "split_4t4r": false, + "mode_1x": false, + "enable0": false, + "enable1": false, + "bypass": false + }, + "rx_mux_splitter_xbar": { + "mux0_out_adc_sel": [0,0,0,0], + "mux2_fddc_input_sel": [0,0,4,4], + "low_samp_en": false + }, + "rx_dyn_recfg": { + "prefsrc_lcm": 0, + "postfsrc_lcm": 0, + "trig_recfg_mode": false, + "cnco_rst_en": false, + "fnco_rst_en": false, + "resync_en": false, + "ts_rst_en": false, + "tzero_coher_en": false + }, + "rx_dformat": [ + { + "inv": false, + "sel": 0, + "ddc_dither_en": false, + "res": 0, + "tmode": { + "sel": 0, + "type_sel": 0, + "pn_force_rst": false, + "flush": false, + "usr_pat_sel": false, + "res": 0 + }, + "rm_fifo": { + "invalid_en": false, + "sample_repeat_en": true + } + }, + { + "inv": false, + "sel": 0, + "ddc_dither_en": false, + "res": 0, + "tmode": { + "sel": 0, + "type_sel": 0, + "pn_force_rst": false, + "flush": false, + "usr_pat_sel": false, + "res": 0 + }, + "rm_fifo": { + "invalid_en": false, + "sample_repeat_en": true + } + } + ], + "rx_smon": [ + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + }, + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + }, + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + }, + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + } + ], + "rx_enable": [ + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + } + ], + "rx_power": [ + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + } + ], + "rx_bmem": [ + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + } + ] + }, + { + "rx_cddc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 1342177280, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 3, + "fine_bypass": false, + "link_num": 0, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "tb1_filt_dly_cycles": 0, + "hb1_gain_6db_en": false, + "tb1_gain_6db_en": false, + "trig_mst_en": false, + "trig_mst_period": 0, + "trig_mst_offset": 0, + "debug_cddc_clkoff_n": 255 + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 1342177280, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "amp_dither_en": false, + "phase_dither_en": false, + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec": 0, + "debug_cdrc_clkoff_n": false + } + ], + "drc_ratio": 3, + "fine_bypass": false, + "link_num": 0, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "tb1_filt_dly_cycles": 0, + "hb1_gain_6db_en": false, + "tb1_gain_6db_en": false, + "trig_mst_en": false, + "trig_mst_period": 0, + "trig_mst_offset": 0, + "debug_cddc_clkoff_n": 255 + } + ], + "rx_fddc": [ + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 703687441777, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + }, + { + "nco": [ + { + "drc_en": true, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 703687441777, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + }, + { + "nco": [ + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 1, + "cmplx_mxr_mult_scale_en": 1, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 1, + "debug_fdrc_clkoff_n": true + }, + { + "drc_en": false, + "nco_mode": 0, + "nco_if_mode": 0, + "drc_mxr_sel": 0, + "cmplx_mxr_mult_scale_en": 0, + "dc_testmode_value": 0, + "nco_phase_inc": 0, + "nco_phase_offset": 0, + "nco_phase_inc_frac_a": 0, + "nco_phase_inc_frac_b": 0, + "amp_dither_en": false, + "phase_dither_en": false, + "hop_mode_en": false, + "hop_mode": 0, + "nco_phase_inc_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_phase_offset_words": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "nco_profile_sel_mode": 4, + "nco_auto_inc_dec_freq": 0, + "nco_auto_inc_dec_phase": 0, + "nco_trig_hop_sel": 0, + "debug_fdrc_clkoff_n": false + } + ], + "drc_ratio": 2, + "link_num": 0, + "debug_fddc_clkoff_n": 255, + "hb1_filt_dly_en": false, + "hb2_filt_dly_en": false, + "hb3_filt_dly_en": false, + "hb4_filt_dly_en": false, + "hb5_filt_dly_en": false, + "hb6_filt_dly_en": false, + "hb1_gain_6db_en": true + } + ], + "rx_pfilt": [ + { + "enable": false, + "coeffs": [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + "i_mode": [0,0], + "q_mode": [0,0], + "output_dither_en": [false,false], + "real_data": 1, + "dq_mode": 0, + "add_sub_sel": 0, + "mode_switch": 0, + "pfilt_trigger_en": false, + "pfir_ix_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_gain_db": [0,0,0,0,0,0,0,0], + "pfir_ix_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_iy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qx_scalar_gain_db": [0,0,0,0,0,0,0,0], + "pfir_qy_scalar_gain_db": [0,0,0,0,0,0,0,0], + "hc_prog_delay": [0,0,0,0,0,0,0,0] + } + ], + "rx_cfir": [ + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + }, + { + "coeffs_i": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "coeffs_q": [ + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ], + [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] + ] + ], + "cfir_gain_dB": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_i": [ + [0,0,0,0],[0,0,0,0] + ], + "scalar_q": [ + [0,0,0,0],[0,0,0,0] + ], + "enable": false, + "sparse_mode": false, + "cfir_mode": 0 + } + ], + "rx_fsrc": { + "fsrc_rate_int": 0, + "fsrc_rate_frac_a": 0, + "fsrc_rate_frac_b": 0, + "fsrc_delay": 0, + "gain_reduction": 0, + "ptr_syncrstval": 0, + "ptr_overwrite": false, + "data_mult_dither_en": false, + "dither_en": false, + "split_4t4r": false, + "mode_1x": false, + "enable0": false, + "enable1": false, + "bypass": false + }, + "rx_mux_splitter_xbar": { + "mux0_out_adc_sel": [0,0,0,0], + "mux2_fddc_input_sel": [0,0,4,4], + "low_samp_en": false + }, + "rx_dyn_recfg": { + "prefsrc_lcm": 0, + "postfsrc_lcm": 0, + "trig_recfg_mode": false, + "cnco_rst_en": false, + "fnco_rst_en": false, + "resync_en": false, + "ts_rst_en": false, + "tzero_coher_en": false + }, + "rx_dformat": [ + { + "inv": false, + "sel": 0, + "ddc_dither_en": false, + "res": 0, + "tmode": { + "sel": 0, + "type_sel": 0, + "pn_force_rst": false, + "flush": false, + "usr_pat_sel": false, + "res": 0 + }, + "rm_fifo": { + "invalid_en": false, + "sample_repeat_en": true + } + }, + { + "inv": false, + "sel": 0, + "ddc_dither_en": false, + "res": 0, + "tmode": { + "sel": 0, + "type_sel": 0, + "pn_force_rst": false, + "flush": false, + "usr_pat_sel": false, + "res": 0 + }, + "rm_fifo": { + "invalid_en": false, + "sample_repeat_en": true + } + } + ], + "rx_smon": [ + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + }, + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + }, + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + }, + { + "period": 0, + "gpio_en": false, + "peak_en": false, + "jlink_sel": 0, + "sframer_en": false, + "sframer_mode": 0, + "sync_en": false, + "sync_next": 0, + "thresh_high": 0, + "thresh_low": 0 + } + ], + "rx_enable": [ + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + }, + { + "enable_spien": false, + "enable_spi": false, + "enable_pol": false, + "slice_sel": 0, + "pfilt_sel": 0, + "cdrc_sel": 0, + "fdrc_sel": 0, + "cfir_sel": 0, + "fsrc_sel": 0, + "jesd_link_sel": 0, + "jesd_phy_sel": 0, + "modsw_sel": false, + "invsinc_sel": 0, + "gain_sel": 0, + "srd_sel": 0 + } + ], + "rx_power": [ + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + }, + { + "rxtxen_sel": 0, + "spi_rxtxen": false, + "spi_rxtxen_ena": false, + "sm_en": false, + "sel_cnt_rate": false, + "conv_fall": 0, + "conv_rise": 0, + "dig_fall": 0, + "dig_rise": 0, + "pa_fall": 0, + "pa_rise": 0, + "count_maxa": 0, + "count_maxb": 0, + "count_maxc": 0, + "count_maxd": 0, + "count_maxe": 0, + "count_maxf": 0 + } + ], + "rx_bmem": [ + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + }, + { + "fast_nslow_mode": 0, + "bmem_shut_down": false, + "bmem_sleep": false, + "bmem_mode": 0, + "bmem_en": false, + "hop_dly_sel_mode": 0, + "bmem_8t8r_cap_mask": 0, + "ramclk_ph_dis": false, + "parity_check_en": false, + "trig_mode_en": false, + "trig_mode_sclr_en": false, + "sample_dly": 0, + "hop_delay0": 0, + "hop_delay1": 0, + "hop_delay2": 0, + "hop_delay3": 0 + } + ] + } + ], + "jtx": [ + { + "common_link_cfg": { + "ver": 1, + "subclass": 0, + "dual_link": false, + "lane_enables": 15, + "lane_rate_kHz": 8250000 + }, + "tx_link_cfg": [ + { + "link_in_use": true, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 0, + "l_minus1": 3, + "f_minus1": 1, + "m_minus1": 3, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 127, + "n_minus1": 15, + "np_minus1": 15, + "ns_minus1": 3, + "cs": 0, + "scr": true, + "quick_cfg_en": true, + "quick_mode_id": 26, + "syncb_in_sel": 0, + "syncb_lvds_mode": 0, + "fec_enable": false, + "async_mode": false, + "metword_rev": false, + "link_dp_ratio": 16, + "link_total_ratio": 16, + "phase_adjust": 0, + "conv_xbar_sel": [0,1,4,5,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,1,2,3,15,15,15,15,15,15,15,15] + }, + { + "link_in_use": false, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 6, + "l_minus1": 0, + "f_minus1": 0, + "m_minus1": 0, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 0, + "n_minus1": 0, + "np_minus1": 0, + "ns_minus1": 0, + "cs": 0, + "scr": false, + "quick_cfg_en": false, + "quick_mode_id": 0, + "syncb_in_sel": 0, + "syncb_lvds_mode": 0, + "fec_enable": false, + "async_mode": false, + "metword_rev": false, + "link_dp_ratio": 0, + "link_total_ratio": 0, + "phase_adjust": 0, + "conv_xbar_sel": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,0,0,0,0,0,0,0,0,0,0,0] + } + ], + "serializer_lane": [ + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + } + ] + }, + { + "common_link_cfg": { + "ver": 1, + "subclass": 0, + "dual_link": false, + "lane_enables": 15, + "lane_rate_kHz": 8250000 + }, + "tx_link_cfg": [ + { + "link_in_use": true, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 0, + "l_minus1": 3, + "f_minus1": 1, + "m_minus1": 3, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 127, + "n_minus1": 15, + "np_minus1": 15, + "ns_minus1": 3, + "cs": 0, + "scr": true, + "quick_cfg_en": true, + "quick_mode_id": 26, + "syncb_in_sel": 0, + "syncb_lvds_mode": 0, + "fec_enable": false, + "async_mode": false, + "metword_rev": false, + "link_dp_ratio": 16, + "link_total_ratio": 16, + "phase_adjust": 0, + "conv_xbar_sel": [0,1,4,5,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,1,2,3,15,15,15,15,15,15,15,15] + }, + { + "link_in_use": false, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 6, + "l_minus1": 0, + "f_minus1": 0, + "m_minus1": 0, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 0, + "n_minus1": 0, + "np_minus1": 0, + "ns_minus1": 0, + "cs": 0, + "scr": false, + "quick_cfg_en": false, + "quick_mode_id": 0, + "syncb_in_sel": 0, + "syncb_lvds_mode": 0, + "fec_enable": false, + "async_mode": false, + "metword_rev": false, + "link_dp_ratio": 0, + "link_total_ratio": 0, + "phase_adjust": 0, + "conv_xbar_sel": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,0,0,0,0,0,0,0,0,0,0,0] + } + ], + "serializer_lane": [ + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + }, + { + "ser_amplitude": 0, + "ser_pre_emphasis": 0, + "ser_post_emphasis": 0, + "ser_invert_lane_polarity": false, + "lanerate_adapt": 0 + } + ] + } + ], + "jrx": [ + { + "common_link_cfg": { + "ver": 1, + "subclass": 0, + "dual_link": false, + "lane_enables": 15, + "lane_rate_kHz": 8250000 + }, + "rx_link_cfg": [ + { + "link_in_use": true, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 0, + "l_minus1": 3, + "f_minus1": 1, + "m_minus1": 3, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 127, + "n_minus1": 15, + "np_minus1": 15, + "ns_minus1": 3, + "cs": 0, + "scr": true, + "quick_cfg_en": true, + "quick_mode_id": 26, + "syncb_out_sel": 0, + "syncb_lvds_mode": 0, + "link_dp_ratio": 16, + "link_total_ratio": 16, + "invalid_data_en": false, + "invalid_sample_num": 0, + "sample_repeat_en": true, + "phase_adjust": 0, + "sample_xbar_sel": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,1,2,3,15,15,15,15,15,15,15,15] + }, + { + "link_in_use": false, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 6, + "l_minus1": 0, + "f_minus1": 0, + "m_minus1": 0, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 0, + "n_minus1": 0, + "np_minus1": 0, + "ns_minus1": 0, + "cs": 0, + "scr": false, + "quick_cfg_en": false, + "quick_mode_id": 0, + "syncb_out_sel": 0, + "syncb_lvds_mode": 0, + "link_dp_ratio": 0, + "link_total_ratio": 0, + "invalid_data_en": false, + "invalid_sample_num": 0, + "sample_repeat_en": false, + "phase_adjust": 0, + "sample_xbar_sel": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,0,0,0,0,0,0,0,0,0,0,0] + } + ], + "deserializer_common": { + "rx_des_mode": 1, + "num_bridging_cals": 0, + "sample_xbar_override": false + }, + "deserializer_lane": [ + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + } + ] + }, + { + "common_link_cfg": { + "ver": 1, + "subclass": 0, + "dual_link": false, + "lane_enables": 15, + "lane_rate_kHz": 8250000 + }, + "rx_link_cfg": [ + { + "link_in_use": true, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 0, + "l_minus1": 3, + "f_minus1": 1, + "m_minus1": 3, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 127, + "n_minus1": 15, + "np_minus1": 15, + "ns_minus1": 3, + "cs": 0, + "scr": true, + "quick_cfg_en": true, + "quick_mode_id": 26, + "syncb_out_sel": 0, + "syncb_lvds_mode": 0, + "link_dp_ratio": 16, + "link_total_ratio": 16, + "invalid_data_en": false, + "invalid_sample_num": 0, + "sample_repeat_en": true, + "phase_adjust": 0, + "sample_xbar_sel": [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,1,2,3,15,15,15,15,15,15,15,15] + }, + { + "link_in_use": false, + "e_minus1": 0, + "bank_id": 0, + "dev_id": 0, + "base_lane_id": 6, + "l_minus1": 0, + "f_minus1": 0, + "m_minus1": 0, + "s_minus1": 0, + "high_dens": false, + "k_minus1": 0, + "n_minus1": 0, + "np_minus1": 0, + "ns_minus1": 0, + "cs": 0, + "scr": false, + "quick_cfg_en": false, + "quick_mode_id": 0, + "syncb_out_sel": 0, + "syncb_lvds_mode": 0, + "link_dp_ratio": 0, + "link_total_ratio": 0, + "invalid_data_en": false, + "invalid_sample_num": 0, + "sample_repeat_en": false, + "phase_adjust": 0, + "sample_xbar_sel": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "lane_xbar": [0,0,0,0,0,0,0,0,0,0,0,0] + } + ], + "deserializer_common": { + "rx_des_mode": 1, + "num_bridging_cals": 0, + "sample_xbar_override": false + }, + "deserializer_lane": [ + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + }, + { + "high_boost_options": 0, + "des_inv_lane_pol": false, + "lanerate_adapt": 0, + "cfg_options": [0,0,0,0,0,0,0,0,0,0], + "ctle_filter_mask": 0 + } + ] + } + ], + "dac_cfg": [ + { + "dac_sampling_rate_Hz": 8000000000, + "shuffle_en": [true,true,true,true], + "scrambler_en": [true,true,true,true], + "data_invert_en": [false,false,false,false] + }, + { + "dac_sampling_rate_Hz": 8000000000, + "shuffle_en": [true,true,true,true], + "scrambler_en": [true,true,true,true], + "data_invert_en": [false,false,false,false] + } + ], + "adc_cfg": [ + { + "adc_sampling_rate_Hz": 8000000000, + "adc_init_cal_type": 0, + "adc_init_cal_index": 7, + "adc_slice_mode": [6,6,6,6], + "adc_track_mode": [1,1,1,1], + "full_scale_adj": [0,0,0,0], + "inp_coupling_type": [0,0,0,0], + "inp_signal_type": [0,0,0,0], + "inp_polarity": [0,0,0,0], + "slice_mode_switch_cfg": { + "switch_type": 0, + "trig_gpio_num": 0 + }, + "adc_options": [0,0,0,0,0,0,0,0] + }, + { + "adc_sampling_rate_Hz": 8000000000, + "adc_init_cal_type": 0, + "adc_init_cal_index": 7, + "adc_slice_mode": [6,6,6,6], + "adc_track_mode": [1,1,1,1], + "full_scale_adj": [0,0,0,0], + "inp_coupling_type": [0,0,0,0], + "inp_signal_type": [0,0,0,0], + "inp_polarity": [0,0,0,0], + "slice_mode_switch_cfg": { + "switch_type": 0, + "trig_gpio_num": 0 + }, + "adc_options": [0,0,0,0,0,0,0,0] + } + ], + "lb0_en": [ + [false,false],[false,false] + ], + "serdes_pll": { + "loop_bandwidth": 1000000, + "phase_margin": 50, + "div_range": 0, + "div2": 1, + "power": 1, + "ref_clk_div": 1, + "i_bleed_en": 0, + "serdes_pll_odiv": 1, + "feedback_int": 66, + "feedback_frac": 0 + }, + "adc_enable": 51, + "dac_enable": 255, + "reserved_cfg": [0,0,5,0,244,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], + "profile_checksum": 3858154872 +} \ No newline at end of file From 5ec39d038aabf3cff6ea5d3d29e338c69545565d Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 20 May 2026 09:44:58 +0200 Subject: [PATCH 5/5] arm64: defconfig: adi_zynqmp_adsy1100: Enable ADSY1100 Nyx RFFE driver Enable CONFIG_ADSY1100_NYX so the high-level GPIO-driven RF front-end controller on the ADSY1100 Apollo SOM "Nyx" daughter board is available out of the box. Signed-off-by: Michael Hennerich --- arch/arm64/configs/adi_zynqmp_adsy1100_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/adi_zynqmp_adsy1100_defconfig b/arch/arm64/configs/adi_zynqmp_adsy1100_defconfig index 192830c46d75b7..c9faf4bc9a0f11 100644 --- a/arch/arm64/configs/adi_zynqmp_adsy1100_defconfig +++ b/arch/arm64/configs/adi_zynqmp_adsy1100_defconfig @@ -320,6 +320,7 @@ CONFIG_XILINX_AMS=y # CONFIG_CF_AXI_DDS_AD9162 is not set CONFIG_ADF4382=y CONFIG_LTC6948=y +CONFIG_ADSY1100_NYX=y CONFIG_XILINX_INTC=y CONFIG_IRQCHIP_XILINX_INTC_MODULE_SUPPORT_EXPERIMENTAL=y CONFIG_PHY_XILINX_ZYNQMP=y