[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ih3ykzxrnpbwg4bvkmpoo2tashcxidir4r4zofhlvrs7udkp7o@6qtqh6wtmkwd>
Date: Sat, 15 Mar 2025 16:49:55 +0100
From: Sebastian Reichel <sebastian.reichel@...labora.com>
To: David Heidelberg <david@...t.cz>
Cc: Sakari Ailus <sakari.ailus@...ux.intel.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>,
Pavel Machek <pavel@...nel.org>, Pavel Machek <pavel@....cz>, linux-media@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] media: dt-bindings: Convert Analog Devices ad5820 to
DT schema
Hello,
On Sat, Mar 15, 2025 at 02:18:40PM +0100, David Heidelberg wrote:
> On 14/03/2025 21:57, Sakari Ailus wrote:
> > Thanks for converting this to YAML.
> >
> > On Fri, Mar 14, 2025 at 08:58:27PM +0100, David Heidelberg via B4 Relay wrote:
> > > From: David Heidelberg <david@...t.cz>
> > >
> > > Convert the Analog Devices ad5820 to DT schema format.
> > >
> > > Add the previously undocumented io-channel-cells property,
> > > which can be omitted. If present, it must be set to 0,
> > > as the device provides only one channel.
> >
> > What's the purpose of this property? The driver doesn't use it nor I think
> > it provides any information on the hardware either. The above description
> > also appears to be saying it's redundant.
>
> Hello Sakari,
>
> from my understanding, you're right.
>
> I would prefer to drop it, see [1].
>
> Anyway from reading of documentation I understood it may be right to have
> the property empty, but also may be omitted. I saw both approaches in the
> code.
>
> If you choose not liking this redudancy, I push [1] and drop the property
> here.
>
> David
>
> [1] https://patchwork.kernel.org/project/linux-omap/patch/20250213203208.93316-1-david@ixit.cz/
Like all DT properties starting with #, this is not about hardware,
but about parsing the device tree itself and used by core DT code:
$ git grep io-channels drivers/of/property.c
drivers/of/property.c:DEFINE_SIMPLE_PROP(io_channels, "io-channels", "#io-channel-cells")
Have a look at the following example DT:
iio_device1: iio-provider1 {
#io-channel-cells = <2>;
};
iio_device2: iio-provider2 {
#io-channel-cells = <1>;
};
iio_device3: iio-provider3 {
#io-channel-cells = <0>;
};
example-iio-user {
my-iio-reference = <&iio_device1 AREA0 CHANNEL2>, <&iio_device3>, <&iio_device2 CHAN0>;
};
While you can easily understand that without the io-channel-cells,
please have a look what it looks like after sending it through the
DT compiler. You will get something like this:
iio-provider1 {
#io-channel-cells = <2>;
phandle = <23>;
};
iio-provider2 {
#io-channel-cells = <1>;
phandle = <10>;
};
iio-provider3 {
#io-channel-cells = <0>;
phandle = <37>;
};
example-iio-user {
my-iio-reference = <23 42 13 37 10 0>;
};
But you can safely drop it, when there are no references to the IIO
device. So it's obviously not required in all cases.
I hope I could explain the purpose well enough :)
Greetings,
-- Sebastian
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists