Re: fwnode_for_each_child_node() and OF backend discrepancy

From: Andy Shevchenko
Date: Tue Jun 28 2022 - 16:29:41 EST


On Tue, Jun 28, 2022 at 5:17 PM Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
> On 28/06/2022 17:09, Michael Walle wrote:

...

> > Mh. Assume a SoC with an integrated ethernet switch. Some ports
> > are externally connected, some don't. I'd think they should be disabled,
> > no? Until now, all bindings I know, treat them as disabled. But OTOH
> > you still need to do some configurations on them, like disable port
> > forwarding, disable them or whatever. So the hardware is present, but
> > it is not connected to anything.
>
> I see your point and the meaning is okay... except that drivers don't
> touch disabled nodes. If a device (with some address space) is disabled,
> you do not write there "please be power off". Here the case is a bit
> different, because I think ports do not have their own address space.
> Yet it contradicts the logic - something is disabled in DT and you
> expect to perform actual operations on it.

You beat me up to this comment, I also see a contradiction of what
"disabled" means in your, Michael, case and what it should be.

If you need to perform an operation on some piece of HW, it has not to
be disabled.

Or, you may deduce them by knowing how many ports in hardware (this is
usually done not by counting the nodes, but by a property) and do
whatever you want on ones, you have not listed (by port_num) in the
array of parsed children.

--
With Best Regards,
Andy Shevchenko