From ca976eb456210ad9568eb471ee964674b9c9e3aa Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 20 May 2026 09:32:30 +0200 Subject: [PATCH 1/7] 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..217213b295f88d --- /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 afe4eaf1f8744191e778629d9335c1add0c0710e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Lessard?= Date: Tue, 2 Sep 2025 15:04:39 -0400 Subject: [PATCH 2/7] device property: Add scoped fwnode child node iterators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add scoped versions of fwnode child node iterators that automatically handle reference counting cleanup using the __free() attribute: - fwnode_for_each_child_node_scoped() - fwnode_for_each_available_child_node_scoped() These macros follow the same pattern as existing scoped iterators in the kernel, ensuring fwnode references are automatically released when the iterator variable goes out of scope. This prevents resource leaks and eliminates the need for manual cleanup in error paths. The implementation mirrors the non-scoped variants but uses __free(fwnode_handle) for automatic resource management, providing a safer and more convenient interface for drivers iterating over firmware node children. Signed-off-by: Jean-François Lessard Acked-by: Danilo Krummrich Reviewed-by: Andy Shevchenko Reviewed-by: Sakari Ailus Signed-off-by: Wolfram Sang (cherry picked from commit 448097bbd3836d2ee46fa6eabd18661e9a3c8be8) --- include/linux/property.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/linux/property.h b/include/linux/property.h index 61fc20e5f81f8d..acbcbfc26e49af 100644 --- a/include/linux/property.h +++ b/include/linux/property.h @@ -168,6 +168,16 @@ struct fwnode_handle *fwnode_get_next_available_child_node( for (child = fwnode_get_next_available_child_node(fwnode, NULL); child;\ child = fwnode_get_next_available_child_node(fwnode, child)) +#define fwnode_for_each_child_node_scoped(fwnode, child) \ + for (struct fwnode_handle *child __free(fwnode_handle) = \ + fwnode_get_next_child_node(fwnode, NULL); \ + child; child = fwnode_get_next_child_node(fwnode, child)) + +#define fwnode_for_each_available_child_node_scoped(fwnode, child) \ + for (struct fwnode_handle *child __free(fwnode_handle) = \ + fwnode_get_next_available_child_node(fwnode, NULL); \ + child; child = fwnode_get_next_available_child_node(fwnode, child)) + struct fwnode_handle *device_get_next_child_node(const struct device *dev, struct fwnode_handle *child); From 9406a9643643568cab8f68d17608ac7f2922f99f Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 6 May 2026 17:49:37 +0200 Subject: [PATCH 3/7] 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..fa95bbbef01d58 --- /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 || (val == 0 && val2 > 0)) + return -EINVAL; + + /* + * IIO encodes "-N.5 dB" as val=-N, val2=+500000 (the + * fractional part always carries the magnitude of the + * sub-integer portion, not its sign). "-0.5 dB" is the + * special case where val==0 and val2==-500000. + */ + if (val < 0) + millidB = (-val) * 1000 + val2 / 1000; + else + millidB = (-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) +{ + int ret; + + struct fwnode_handle *group __free(fwnode_handle) = + device_get_named_child_node(dev, group_name); + if (!group) + return 0; + + fwnode_for_each_child_node_scoped(group, child) { + u32 reg; + + ret = fwnode_property_read_u32(child, "reg", ®); + if (ret) + return dev_err_probe(dev, ret, + "%pfw: missing reg property\n", + child); + + if (reg >= max_ch) + return dev_err_probe(dev, -EINVAL, + "%pfw: reg %u out of range (max %u)\n", + child, reg, max_ch - 1); + + ret = adsy1100_nyx_parse_dt_channel(dev, child, st, tx, reg); + if (ret) + return ret; + } + + return 0; +} + +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 ef4c17ad81df367f6b58fe36b3486e1a8dc8377f Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 6 May 2026 17:49:48 +0200 Subject: [PATCH 4/7] 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 15d3d82e2c003a..0d33f9c6e57162 100644 --- a/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-reva.dtso +++ b/arch/arm64/boot/dts/xilinx/vu11p-ad9084-vpx-reva.dtso @@ -696,4 +696,11 @@ #size-cells = <0>; status = "disabled"; }; + + adsy1100_nyx: adsy1100-nyx@0 { + compatible = "adi,adsy1100-nyx"; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; }; From 012aacf6893fb9700743e2584021be5aa7c401e3 Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 20 May 2026 09:41:39 +0200 Subject: [PATCH 5/7] 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 4c5970d96309c74697a6143cd5b7b8ce24b21fea Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 20 May 2026 09:44:58 +0200 Subject: [PATCH 6/7] 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 From 038cadd92ad95a5086d0cb70bb88a55074bd8dfb Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Wed, 24 Jun 2026 17:28:55 +0200 Subject: [PATCH 7/7] iio: logic: axi-aion-trig: Select REGMAP_MMIO Fixes: ERROR: modpost: "__devm_regmap_init_mmio_clk" [drivers/iio/logic/axi-aion-trig.ko] undefined! Fixes: ec391b42b9dc ("iio: logic: axi-aion-trig: New driver for the AXI AION HDL IP Core") Signed-off-by: Michael Hennerich --- drivers/iio/logic/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iio/logic/Kconfig b/drivers/iio/logic/Kconfig index 44edb057b7be6b..705e2601692eb0 100644 --- a/drivers/iio/logic/Kconfig +++ b/drivers/iio/logic/Kconfig @@ -15,6 +15,7 @@ endmenu config AXI_AION_TRIG tristate "AXI AION Trigger support" + select REGMAP_MMIO help Support for the AXI AION Trigger module HDL IP Core.