From: Jonathan Cameron <jic23@kernel.org>
To: Janani Sunil <jan.sun97@gmail.com>
Cc: "David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <noname.nuno@gmail.com>,
"Rodrigo Alencar" <455.rodrigo.alencar@gmail.com>,
"Conor Dooley" <conor@kernel.org>,
"Janani Sunil" <janani.sunil@analog.com>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Philipp Zabel" <p.zabel@pengutronix.de>,
"Jonathan Corbet" <corbet@lwn.net>,
"Shuah Khan" <skhan@linuxfoundation.org>,
linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
"Mark Brown" <broonie@kernel.org>
Subject: Re: [PATCH v3 1/2] dt-bindings: iio: dac: Add AD5529R
Date: Tue, 23 Jun 2026 15:55:51 +0100 [thread overview]
Message-ID: <20260623155551.6094388b@jic23-huawei> (raw)
In-Reply-To: <0f778d06-726f-4aec-ab3b-f6e091cc9421@gmail.com>
On Tue, 23 Jun 2026 12:07:52 +0200
Janani Sunil <jan.sun97@gmail.com> wrote:
> On 6/22/26 17:36, David Lechner wrote:
> > On 6/22/26 7:20 AM, Nuno Sá wrote:
> >> On Mon, Jun 22, 2026 at 12:51:20PM +0100, Rodrigo Alencar wrote:
> >>> On 22/06/26 11:29, Nuno Sá wrote:
> >>>> On Mon, Jun 22, 2026 at 10:24:05AM +0100, Rodrigo Alencar wrote:
> >>>>> On 21/06/26 15:33, Jonathan Cameron wrote:
> >>>>>> On Fri, 19 Jun 2026 16:54:11 +0100
> >>>>>> Nuno Sá <noname.nuno@gmail.com> wrote:
> >>>>>>
> >>>>>>> On Fri, Jun 19, 2026 at 03:12:07PM +0100, Conor Dooley wrote:
> >>>>>>>> On Fri, Jun 19, 2026 at 02:01:08PM +0100, Nuno Sá wrote:
> >>>>>>>>> On Fri, Jun 19, 2026 at 12:40:54PM +0100, Conor Dooley wrote:
> >>>>>>>>>> On Fri, Jun 19, 2026 at 12:36:55PM +0100, Conor Dooley wrote:
> >>>>>>>>>>> On Fri, Jun 19, 2026 at 12:33:11PM +0200, Janani Sunil wrote:
> >>>>>>>>>>>> On 6/14/26 21:44, Jonathan Cameron wrote:
> >>>>>>>>>>>>> On Tue, 9 Jun 2026 16:47:23 +0200
> >>>>>>>>>>>>> Janani Sunil <jan.sun97@gmail.com> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 5/26/26 15:11, Rodrigo Alencar wrote:
> >>>>>>>>>>>>>>> On 26/05/19 05:42PM, Janani Sunil wrote:
> >>>>>>>>>>>>>>>> Devicetree bindings for AD5529R 16 channel 12/16 bit high voltage,
> >>>>>>>>>>>>>>>> buffered voltage output digital-to-analog converter (DAC) with an
> >>>>>>>>>>>>>>>> integrated precision reference.
> >>>>>>>>>>>>>>> ...
> >>>>>>>>>>>>>>> Probably others may comment on that, but...
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> This parent node may support device addressing for multi-device support through
> >>>>>>>>>>>>>>> those ID pins. I suppose that each device may have its own power supplies or
> >>>>>>>>>>>>>>> other resources like the toggle pins or reset and enable.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> That way I suppose that an example would look like...
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> +patternProperties:
> >>>>>>>>>>>>>>>> + "^channel@([0-9]|1[0-5])$":
> >>>>>>>>>>>>>>>> + type: object
> >>>>>>>>>>>>>>>> + description: Child nodes for individual channel configuration
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + properties:
> >>>>>>>>>>>>>>>> + reg:
> >>>>>>>>>>>>>>>> + description: Channel number.
> >>>>>>>>>>>>>>>> + minimum: 0
> >>>>>>>>>>>>>>>> + maximum: 15
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + adi,output-range-microvolt:
> >>>>>>>>>>>>>>>> + description: |
> >>>>>>>>>>>>>>>> + Output voltage range for this channel as [min, max] in microvolts.
> >>>>>>>>>>>>>>>> + If not specified, defaults to 0V to 5V range.
> >>>>>>>>>>>>>>>> + oneOf:
> >>>>>>>>>>>>>>>> + - items:
> >>>>>>>>>>>>>>>> + - const: 0
> >>>>>>>>>>>>>>>> + - enum: [5000000, 10000000, 20000000, 40000000]
> >>>>>>>>>>>>>>>> + - items:
> >>>>>>>>>>>>>>>> + - const: -5000000
> >>>>>>>>>>>>>>>> + - const: 5000000
> >>>>>>>>>>>>>>>> + - items:
> >>>>>>>>>>>>>>>> + - const: -10000000
> >>>>>>>>>>>>>>>> + - const: 10000000
> >>>>>>>>>>>>>>>> + - items:
> >>>>>>>>>>>>>>>> + - const: -15000000
> >>>>>>>>>>>>>>>> + - const: 15000000
> >>>>>>>>>>>>>>>> + - items:
> >>>>>>>>>>>>>>>> + - const: -20000000
> >>>>>>>>>>>>>>>> + - const: 20000000
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + required:
> >>>>>>>>>>>>>>>> + - reg
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + additionalProperties: false
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> +required:
> >>>>>>>>>>>>>>>> + - compatible
> >>>>>>>>>>>>>>>> + - reg
> >>>>>>>>>>>>>>>> + - vdd-supply
> >>>>>>>>>>>>>>>> + - avdd-supply
> >>>>>>>>>>>>>>>> + - hvdd-supply
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> +dependencies:
> >>>>>>>>>>>>>>>> + spi-cpha: [ spi-cpol ]
> >>>>>>>>>>>>>>>> + spi-cpol: [ spi-cpha ]
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> +allOf:
> >>>>>>>>>>>>>>>> + - $ref: /schemas/spi/spi-peripheral-props.yaml#
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> +unevaluatedProperties: false
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> +examples:
> >>>>>>>>>>>>>>>> + - |
> >>>>>>>>>>>>>>>> + #include <dt-bindings/gpio/gpio.h>
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + spi {
> >>>>>>>>>>>>>>>> + #address-cells = <1>;
> >>>>>>>>>>>>>>>> + #size-cells = <0>;
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + dac@0 {
> >>>>>>>>>>>>>>>> + compatible = "adi,ad5529r-16";
> >>>>>>>>>>>>>>>> + reg = <0>;
> >>>>>>>>>>>>>>>> + spi-max-frequency = <25000000>;
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + vdd-supply = <&vdd_regulator>;
> >>>>>>>>>>>>>>>> + avdd-supply = <&avdd_regulator>;
> >>>>>>>>>>>>>>>> + hvdd-supply = <&hvdd_regulator>;
> >>>>>>>>>>>>>>>> + hvss-supply = <&hvss_regulator>;
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + reset-gpios = <&gpio0 87 GPIO_ACTIVE_LOW>;
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + #address-cells = <1>;
> >>>>>>>>>>>>>>>> + #size-cells = <0>;
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + channel@0 {
> >>>>>>>>>>>>>>>> + reg = <0>;
> >>>>>>>>>>>>>>>> + adi,output-range-microvolt = <0 5000000>;
> >>>>>>>>>>>>>>>> + };
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + channel@1 {
> >>>>>>>>>>>>>>>> + reg = <1>;
> >>>>>>>>>>>>>>>> + adi,output-range-microvolt = <(-10000000) 10000000>;
> >>>>>>>>>>>>>>>> + };
> >>>>>>>>>>>>>>>> +
> >>>>>>>>>>>>>>>> + channel@2 {
> >>>>>>>>>>>>>>>> + reg = <2>;
> >>>>>>>>>>>>>>>> + adi,output-range-microvolt = <0 40000000>;
> >>>>>>>>>>>>>>>> + };
> >>>>>>>>>>>>>>>> + };
> >>>>>>>>>>>>>>>> + };
> >>>>>>>>>>>>>>> ...
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> spi {
> >>>>>>>>>>>>>>> #address-cells = <1>;
> >>>>>>>>>>>>>>> #size-cells = <0>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> multi-dac@0 {
> >>>>>>>>>>>>>>> compatible = "adi,ad5529r-16";
> >>>>>>>>>>>>>>> reg = <0>;
> >>>>>>>>>>>>>>> spi-max-frequency = <25000000>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> #address-cells = <1>;
> >>>>>>>>>>>>>>> #size-cells = <0>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> dac@0 {
> >>>>>>>>>>>>>>> reg = <0>;
> >>>>>>>>>>>>>>> vdd-supply = <&vdd_regulator>;
> >>>>>>>>>>>>>>> avdd-supply = <&avdd_regulator>;
> >>>>>>>>>>>>>>> hvdd-supply = <&hvdd_regulator>;
> >>>>>>>>>>>>>>> hvss-supply = <&hvss_regulator>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> reset-gpios = <&gpio0 87 GPIO_ACTIVE_LOW>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> #address-cells = <1>;
> >>>>>>>>>>>>>>> #size-cells = <0>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> channel@0 {
> >>>>>>>>>>>>>>> reg = <0>;
> >>>>>>>>>>>>>>> adi,output-range-microvolt = <0 5000000>;
> >>>>>>>>>>>>>>> };
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> channel@1 {
> >>>>>>>>>>>>>>> reg = <1>;
> >>>>>>>>>>>>>>> adi,output-range-microvolt = <(-10000000) 10000000>;
> >>>>>>>>>>>>>>> };
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> channel@2 {
> >>>>>>>>>>>>>>> reg = <2>;
> >>>>>>>>>>>>>>> adi,output-range-microvolt = <0 40000000>;
> >>>>>>>>>>>>>>> };
> >>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> dac@1 {
> >>>>>>>>>>>>>>> reg = <1>;
> >>>>>>>>>>>>>>> vdd-supply = <&vdd_regulator>;
> >>>>>>>>>>>>>>> avdd-supply = <&avdd_regulator>;
> >>>>>>>>>>>>>>> hvdd-supply = <&hvdd_regulator>;
> >>>>>>>>>>>>>>> hvss-supply = <&hvss_regulator>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> reset-gpios = <&gpio0 88 GPIO_ACTIVE_LOW>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> #address-cells = <1>;
> >>>>>>>>>>>>>>> #size-cells = <0>;
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> channel@0 {
> >>>>>>>>>>>>>>> reg = <0>;
> >>>>>>>>>>>>>>> adi,output-range-microvolt = <0 5000000>;
> >>>>>>>>>>>>>>> };
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> channel@1 {
> >>>>>>>>>>>>>>> reg = <1>;
> >>>>>>>>>>>>>>> adi,output-range-microvolt = <(-10000000) 10000000>;
> >>>>>>>>>>>>>>> };
> >>>>>>>>>>>>>>> }
> >>>>>>>>>>>>>>> };
> >>>>>>>>>>>>>>> };
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> then you might need something like:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> patternProperties:
> >>>>>>>>>>>>>>> "^dac@[0-3]$":
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> and put most of the things under this node pattern.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> So the main driver that you're putting together might need to handle up to four instances.
> >>>>>>>>>>>>>>> Even if your current driver cannot handle this, the dt-bindings might need cover that.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Need to double check if each dac node needs a separate compatible, so you would maybe populate
> >>>>>>>>>>>>>>> a platform data to be shared with the child nodes, which would be a separate driver.
> >>>>>>>>>>>>>>> (not sure if it would make sense to mix and match ad5529r-16 and ad5529r-12).
> >>>>>>>>>>>>>> Hi Rodrigo,
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Thank you for looking at this.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> For now, I would prefer to keep the binding scoped to a single AD5529R device instance. The current
> >>>>>>>>>>>>>> hardware/use case we have only needs one device node and the driver is written around that model as well.
> >>>>>>>>>>>>>> While the device addressing pins could allow multi-device topology, we do not have an actual platform using
> >>>>>>>>>>>>>> that configuration at the moment, so I would prefer not to introduce an extra parent/child binding structure
> >>>>>>>>>>>>>> speculatively without a validating use case.
> >>>>>>>>>>>>> Interesting feature - kind of similar to address control on a typical i2c bus device, or
> >>>>>>>>>>>>> looking at it another way a kind of distributed SPI mux.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Challenge of a binding is we need to anticipate the future. So I think we do need something
> >>>>>>>>>>>>> like Rodrigo is suggesting even if we only (for now) support a single instance in the driver.
> >>>>>>>>>>>>> That would leave the path open to supporting the addressing at a later date.
> >>>>>>>>>>>>> An alternative might be to look at it like a chained device setup. In those we pretend there
> >>>>>>>>>>>>> is just one device with a lot of channels etc. The snag is that here things are more loosely
> >>>>>>>>>>>>> coupled whereas for those devices it tends to be you have to read / write the same register
> >>>>>>>>>>>>> in all devices in the chain as one big SPI message.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> +CC Mark Brown as he may know of some precedence for this feature. For his reference..
> >>>>>>>>>>>>> - Each of these device has 2 ID pins. The SPI transfers have to contain the 2 bit
> >>>>>>>>>>>>> value that matches that or they are ignored. Thus a single bus + 1 chip select can
> >>>>>>>>>>>>> be used to talk to 4 devices. Question is what that looks like in device tree + I guess
> >>>>>>>>>>>>> longer term how to support it cleanly in SPI.
> >>>>>>>>>>> I'd swear I have seen this before, from some Microchip devices. Let me
> >>>>>>>>>>> see if I can find what I am thinking of...
> >>>>>>>>>>
> >>>>>>>>>> microchip,mcp3911 and microchip,mcp3564 both seem to do this with
> >>>>>>>>>> slightly different properties.
> >>>>>>>>>>
> >>>>>>>>>> microchip,device-addr:
> >>>>>>>>>> description: Device address when multiple MCP3911 chips are present on the same SPI bus.
> >>>>>>>>>> $ref: /schemas/types.yaml#/definitions/uint32
> >>>>>>>>>> enum: [0, 1, 2, 3]
> >>>>>>>>>> default: 0
> >>>>>>>>>>
> >>>>>>>>>> and
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> microchip,hw-device-address:
> >>>>>>>>>> $ref: /schemas/types.yaml#/definitions/uint32
> >>>>>>>>>> minimum: 0
> >>>>>>>>>> maximum: 3
> >>>>>>>>>> description:
> >>>>>>>>>> The address is set on a per-device basis by fuses in the factory,
> >>>>>>>>>> configured on request. If not requested, the fuses are set for 0x1.
> >>>>>>>>>> The device address is part of the device markings to avoid
> >>>>>>>>>> potential confusion. This address is coded on two bits, so four possible
> >>>>>>>>>> addresses are available when multiple devices are present on the same
> >>>>>>>>>> SPI bus with only one Chip Select line for all devices.
> >>>>>>>>>> Each device communication starts by a CS falling edge, followed by the
> >>>>>>>>>> clocking of the device address (BITS[7:6] - top two bits of COMMAND BYTE
> >>>>>>>>>> which is first one on the wire).
> >>>>>>>>>>
> >>>>>>>>>> This sounds exactly like the sort of feature that you're dealing with
> >>>>>>>>>> here?
> >>>>>>>>>>
> >>>>>>>>> The core idea yes but for this chip, things are a bit more annoying (but
> >>>>>>>>> Janani can correct me if I'm wrong). Here, each device can, in theory,
> >>>>>>>>> have it's own supplies, pins and at the very least, channels with maybe
> >>>>>>>>> different scales. That is why Janani is proposing dac nodes. Given I
> >>>>>>>>> honestly don't like much of that "adi,ad5529r-bus" compatible I wondered
> >>>>>>>>> about solving this at the spi level.
> >>>>>>>>>
> >>>>>>>>> Ah and to make it more annoying, we can also mix 12 and 16 bits variants
> >>>>>>>>> together in the same bus.
> >>>>>>>> I'm definitely missing something, because that property for the
> >>>>>>>> microchip devices is not impacted what else is on the bus. AFAICT, you
> >>>>>>>> could have an mcp3911 and an mcp3564 on the same bus even though both
> >>>>>>>> are completely different devices with different drivers. They have
> >>>>>>>> individual device nodes and their own supplies etc etc. These aren't
> >>>>>>>> per-channel properties on an adc or dac, they're per child device on a
> >>>>>>>> spi bus.
> >>>>>>> Maybe I'm the one missing something :). IIRC, spi would not allow two
> >>>>>>> devices on the same CS right? Because for this chip we would need
> >>>>>>> something like:
> >>>>>>>
> >>>>>>> spi {
> >>>>>>> dac@0 {
> >>>>>>> reg = <0>;
> >>>>>>> adi,pin-id = <0>;
> >>>>>>> };
> >>>>>>>
> >>>>>>> dac@1 {
> >>>>>>> reg = <0>; // which seems already problematic?
> >>>>>>> adi,pin-id <1>;
> >>>>>>> };
> >>>>>>>
> >>>>>>> ...
> >>>>>>>
> >>>>>>> //up to 4
> >>>>>>> };
> >>>>>> Yeah. It's not clear to me how that works for the microchip devices
> >>>>>> (I suspect it doesn't!)
> >>>>>>
> >>>>>> Just thinking as I type, but could we do something a bit nasty with
> >>>>>> a gpio mux that doesn't actually switch but represents the GPIO being
> >>>>>> shared? Given this is all tied to the spi bus that should all happen
> >>>>>> under serializing locks.
> >>>>>>
> >>>>>> Agreed though that this would be nicer as an SPI thing that let
> >>>>>> us specify that a single CS is share by multiple devices and their
> >>>>>> is some other signal acting to select which one we are talking to.
> >>>>>>
> >>>>> If the device-addressing on the same chip-select is to be handled
> >>>>> by the spi framework, wouldn't we lose device-specific features?
> >>>>>
> >>>>> I understand that this multi-device feature is there mostly to extend the
> >>>>> channel count from 16 to 32, 48 or 64. I suppose the command:
> >>>>>
> >>>>> "MULTI DEVICE SW LDAC MODE"
> >>>>>
> >>>>> exists so that software can update channel values accross multiple devices.
> >>>> Right! You do have a point! I agree the main driver for a feature like
> >>>> this is likely to extend the channel count and effectively "aggregate"
> >>>> devices.
> >>>>
> >>>> But I would say that even with the spi solution the MULTI DEVICE stuff
> >>>> should be doable (as we still need a sort of adi,pin-id property).
> >>> I don't think we can have something like an IIO buffer shared by multiple
> >>> devices. Synchronizing separate devices would be doable with proper hardware
> >>> support for this (probably involving an FGPA).
> >> True!
> >>
> >>>
> >>>> But yes, I do feel that the whole feature is for aggregation so seeing
> >>>> one device with 32 channels is the expectation here? Rather than seeing
> >>>> two devices with 16 channels.
> >>> Yes, I think aggregation is the whole point there... so that the IIO driver
> >>> is multi-device-aware.
> >> Which makes me feel that different pins per device might be possible
> >> from an HW point of view but does not make much sense. For example, for
> >> the buffer example I would expect LDAC to be shared between all the
> >> devices.
> >>
> >> - Nuno Sá
> > I think I mentioned this on a previous revision, but I still think the
> > simplest way to go about it would be to assume that all chips treated
> > as an aggregate device have everything wired in parallel and just add
> > support for per-chip wiring on an as-needed basis. This is how we have
> > handled daisy-chained devices so far.
>
> Hi David,
>
> One thing about this approach is that is does not cover a combination of 12 and 16 bit parts in the chain,
> since the compatible string would be at the top level and apply to all chips. To handle this without per chip child nodes or per-chip compatible,
> I propose an "adi, resolution" property as an integer array, indexed by the device position:
>
To me mixed parts, smells like a case that we will probably never see. If
a customer actually has a design doing that we can add optional dt
bindings at that time.
So I'd stick to separate compatibles.
>
> dac@0 {
> compatible = "adi,ad5529r";
> reg = <0>;
> adi,device-addrs = <0 1>;
> adi,resolution = <16 12>; /* per-chip, indexed by position */
> reset-gpios = <&gpio0 87 GPIO_ACTIVE_LOW>;
> vdd-supply = <&vdd_reg>;
> hvdd-supply = <&hvdd_reg>;
>
> channel@0 { reg = <0>; adi,output-range-microvolt = <0 5000000>; };
> channel@16 { reg = <16>; adi,output-range-microvolt = <0 40000000>; };
> };
>
>
> 1) This follows the daisy-chain/aggregated model as you suggested, exposing N*16 channels as a single IIO device.
> 2) Keeps the binding flat- no phantom compatible at a parent bus node, no per-chip child nodes.
> 3) Enables a 12 bit + 16 bit device combination in the chain, without needing a per-chip compatible.
> 4) adi, device-addrs specifies the HW address, allowing the driver to encode it into the SPI frame.
> 5) Supplies and GPIOs remain simple- assuming parallel wiring across all chips.
>
> Jonathan, you had earlier suggested using separate compatibles
> (adi,ad5529r-16 and adi,ad5529r-12) to handle the
> resolution difference.
> However, with the aggregated flat binding model,
> separate per-chip compatibles would require child nodes which brings
> back the phantom compatible problem at the parent level. The
> adi,resolution array is intended as an alternative that achieves the
> same goal-expressing per-chip resolution, without needing a per-chip
> compatible or child node structure.
>
> Does this look reasonable?
>
> Best Regards,
> Janani Sunil
>
>
next prev parent reply other threads:[~2026-06-23 14:56 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-19 15:42 [PATCH v3 0/2] iio: dac: Add support for AD5529R DAC Janani Sunil
2026-05-19 15:42 ` [PATCH v3 1/2] dt-bindings: iio: dac: Add AD5529R Janani Sunil
2026-05-19 15:55 ` sashiko-bot
2026-05-22 17:02 ` Jonathan Cameron
2026-05-25 16:30 ` Conor Dooley
2026-05-26 12:35 ` Jonathan Cameron
2026-05-26 13:11 ` Rodrigo Alencar
2026-06-09 14:47 ` Janani Sunil
2026-06-14 19:44 ` Jonathan Cameron
2026-06-19 10:33 ` Janani Sunil
2026-06-19 11:31 ` Nuno Sá
2026-06-19 11:36 ` Conor Dooley
2026-06-19 11:40 ` Conor Dooley
2026-06-19 13:01 ` Nuno Sá
2026-06-19 14:12 ` Conor Dooley
2026-06-19 15:54 ` Nuno Sá
2026-06-21 14:33 ` Jonathan Cameron
2026-06-21 18:35 ` Conor Dooley
2026-06-22 9:07 ` Nuno Sá
2026-06-22 9:27 ` Jonathan Cameron
2026-06-22 10:17 ` Nuno Sá
2026-06-22 11:54 ` Janani Sunil
2026-06-22 12:14 ` Conor Dooley
2026-06-22 12:39 ` Janani Sunil
2026-06-22 12:50 ` Conor Dooley
2026-06-22 16:24 ` Jonathan Cameron
2026-06-22 9:24 ` Rodrigo Alencar
2026-06-22 10:29 ` Nuno Sá
2026-06-22 11:51 ` Rodrigo Alencar
2026-06-22 12:20 ` Nuno Sá
2026-06-22 15:36 ` David Lechner
2026-06-23 10:07 ` Janani Sunil
2026-06-23 14:55 ` Jonathan Cameron [this message]
2026-06-23 8:09 ` Rodrigo Alencar
2026-06-23 14:57 ` Jonathan Cameron
2026-06-24 15:01 ` Janani Sunil
2026-06-24 15:13 ` David Lechner
2026-06-24 16:32 ` Conor Dooley
2026-06-24 16:35 ` Conor Dooley
2026-06-22 16:29 ` Jonathan Cameron
2026-06-22 18:39 ` Conor Dooley
2026-06-23 15:08 ` Jonathan Cameron
2026-05-19 15:42 ` [PATCH v3 2/2] iio: dac: Add AD5529R DAC driver support Janani Sunil
2026-05-19 16:22 ` sashiko-bot
2026-05-22 17:24 ` Jonathan Cameron
2026-06-22 9:12 ` Philipp Zabel
2026-06-22 9:31 ` Jonathan Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260623155551.6094388b@jic23-huawei \
--to=jic23@kernel.org \
--cc=455.rodrigo.alencar@gmail.com \
--cc=Michael.Hennerich@analog.com \
--cc=andy@kernel.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=conor@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dlechner@baylibre.com \
--cc=jan.sun97@gmail.com \
--cc=janani.sunil@analog.com \
--cc=krzk+dt@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-doc@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=noname.nuno@gmail.com \
--cc=nuno.sa@analog.com \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=skhan@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox