[PATCH v2 04/10] dt-bindings: iio: frequency: ad9910: add io-backends property

From: Rodrigo Alencar via B4 Relay

Date: Thu Oct 22 2026 - 11:28:46 EST


From: Rodrigo Alencar <rodrigo.alencar@xxxxxxxxxx>

The AD9910 parallel data port allows high-speed modulation of the DDS
core parameters, which requires a data source such as an FPGA IP core
connected to the F[1:0] and D[15:0] pins. Add the io-backends property,
so that an IIO backend providing such interface can be referenced.

The property is optional as the parallel port is. The device remains
functional through the SPI control interface only, as other modes can
be used to drive the DDS core.

Acked-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
Signed-off-by: Rodrigo Alencar <rodrigo.alencar@xxxxxxxxxx>
---
.../bindings/iio/frequency/adi,ad9910.yaml | 38 ++++++++++++++++++++++
1 file changed, 38 insertions(+)

diff --git a/Documentation/devicetree/bindings/iio/frequency/adi,ad9910.yaml b/Documentation/devicetree/bindings/iio/frequency/adi,ad9910.yaml
index 4eebbd388b27..02fd49db93ff 100644
--- a/Documentation/devicetree/bindings/iio/frequency/adi,ad9910.yaml
+++ b/Documentation/devicetree/bindings/iio/frequency/adi,ad9910.yaml
@@ -120,6 +120,13 @@ properties:
items:
- const: drctl

+ io-backends:
+ maxItems: 1
+ description:
+ IIO backend that interfaces with the parallel data port, enabling data
+ streaming into the device. The backend may also drive the PROFILE[2:0]
+ and DRCTL pins, the latter being exposed as a PWM provider.
+
adi,pll-enable:
type: boolean
description:
@@ -206,4 +213,35 @@ examples:
adi,refclk-out-drive-strength = "disabled";
};
};
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ dds@0 {
+ compatible = "adi,ad9910";
+ reg = <0>;
+ spi-max-frequency = <1000000>;
+
+ #clock-cells = <1>;
+ clock-output-names = "sync_clk", "pdclk", "sync_out";
+
+ clocks = <&ad9910_refclk>;
+ clock-names = "ref_clk";
+
+ dvdd-io33-supply = <&vdd_io33>;
+ avdd33-supply = <&vdd_a33>;
+ dvdd18-supply = <&vdd_d18>;
+ avdd18-supply = <&vdd_a18>;
+
+ reset-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+ io-reset-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+ powerdown-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+ update-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
+
+ io-backends = <&ad9910_backend>;
+ pwms = <&ad9910_backend 0 1000000 0>;
+ pwm-names = "drctl";
+ };
+ };
...

--
2.43.0