From: Tony Lindgren <tony@atomide.com>
To: Nishanth Menon <nm@ti.com>
Cc: t-kristo@ti.com, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
Peter Ujfalusi <peter.ujfalusi@ti.com>,
robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] arm64: dts: ti: k3-j7200-main: Add McASP nodes
Date: Tue, 27 Oct 2020 15:07:01 +0200 [thread overview]
Message-ID: <20201027130701.GE5639@atomide.com> (raw)
In-Reply-To: <20201026145031.ggfugctq65zvgwp2@dismiss>
* Nishanth Menon <nm@ti.com> [201026 14:58]:
> On 13:38-20201007, Peter Ujfalusi wrote:
> [...]
> > >>>> + status = "disabled";
> > >>>
> > >>> I see that there is inconsistent usage of "disabled" in our SoC.dts
> > >>>
> > >>> Our generic rule has been set them to disabled in board.dtsi
> > >>> McASP and DSS for existing SoC dts do not follow this.. which is a tad
> > >>> confusing.. (considering that not even all uarts come out on every board
> > >>> and every uart needs pinmux to function..)
> > >>
> > >> "keep them disabled because several required properties are not present
> > >> as they are board specific."
> > >>
> > >> In board file the enabled mcasp must be updated with options that is
> > >> required for operation. Without those option the McASP can not be
> > >> initialized.
> > >>
> > >> I think we have been revisiting the very same discussion every time we
> > >> have a new SoC with McASP...
> > >>
> > >
> > > Yep.. This doe'snt really follow the rest of the SoC definition. [1]
> > > came to mind. The McASP discussion is a variation in the debate of the
> > > same.
> >
> > Right, saying status = "okay" to a node which is missing required
> > properties (which can only be added by boards when the McASP is
> > connected up) does not sound a good solution.
> > How should the SW handle that? Fail the device probe and return with
> > -EINVAL or eat up the error and just probe with broken configuration.
> > Since the peripheral is not used, the broken configuration will not
> > cause much runtime errors as there will be no runtime use of the peripheral.
> >
> > status of fail or fail-sss is not a good one either, their definition is:
> > "Indicates that the device is not operational. A serious error was
> > detected in the device, and it is unlikely to become operational without
> > repair."
> >
> > The peripheral is fine, we are just trying to enable it without
> > providing the needed properties.
> >
> > > I'd argue Serdes, or for that matter any IP that has a link to
> > > outside-the-SoC world has the same discussion point.
> >
> > status = "disabled" is still the closest thing for everything which have
> > external dependencies. There is not much point to enable an i2c bus
> > without making sure that the signals are actually routed to the pins
> > where they supposed to go.
There is one reason to keep using the default status = "okay", for
i2c Linux can properly idle the device on boot without dependencies
to a certain boot loader version.
> > Or from other pow: a board design is not based on what is _not_
> > connected to outside world, but you actually _connect_ or _enable_
> > certain peripherals to external components, connectors.
>
> OK, I will buy the argument that the current status thingy is a bit
> overloaded and does'nt imply the correct state we need it to imply with
> "fail-sss" either - I remember an argument for "fail-incomplete", but
> that never happened anyways.
>
> Lets add this argument to the commit message and repost after testing
> on 5.10-rc1 please?
We should use status = "disabled" when the hardware is not accessible
to the SoC. That goes for things like secure world devices, and hardware
that relies on a missing external clock for example. For other things
we should just stick to the default which "okay" :)
Regards,
Tony
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Nishanth Menon <nm@ti.com>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>,
t-kristo@ti.com, devicetree@vger.kernel.org, robh+dt@kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] arm64: dts: ti: k3-j7200-main: Add McASP nodes
Date: Tue, 27 Oct 2020 15:07:01 +0200 [thread overview]
Message-ID: <20201027130701.GE5639@atomide.com> (raw)
In-Reply-To: <20201026145031.ggfugctq65zvgwp2@dismiss>
* Nishanth Menon <nm@ti.com> [201026 14:58]:
> On 13:38-20201007, Peter Ujfalusi wrote:
> [...]
> > >>>> + status = "disabled";
> > >>>
> > >>> I see that there is inconsistent usage of "disabled" in our SoC.dts
> > >>>
> > >>> Our generic rule has been set them to disabled in board.dtsi
> > >>> McASP and DSS for existing SoC dts do not follow this.. which is a tad
> > >>> confusing.. (considering that not even all uarts come out on every board
> > >>> and every uart needs pinmux to function..)
> > >>
> > >> "keep them disabled because several required properties are not present
> > >> as they are board specific."
> > >>
> > >> In board file the enabled mcasp must be updated with options that is
> > >> required for operation. Without those option the McASP can not be
> > >> initialized.
> > >>
> > >> I think we have been revisiting the very same discussion every time we
> > >> have a new SoC with McASP...
> > >>
> > >
> > > Yep.. This doe'snt really follow the rest of the SoC definition. [1]
> > > came to mind. The McASP discussion is a variation in the debate of the
> > > same.
> >
> > Right, saying status = "okay" to a node which is missing required
> > properties (which can only be added by boards when the McASP is
> > connected up) does not sound a good solution.
> > How should the SW handle that? Fail the device probe and return with
> > -EINVAL or eat up the error and just probe with broken configuration.
> > Since the peripheral is not used, the broken configuration will not
> > cause much runtime errors as there will be no runtime use of the peripheral.
> >
> > status of fail or fail-sss is not a good one either, their definition is:
> > "Indicates that the device is not operational. A serious error was
> > detected in the device, and it is unlikely to become operational without
> > repair."
> >
> > The peripheral is fine, we are just trying to enable it without
> > providing the needed properties.
> >
> > > I'd argue Serdes, or for that matter any IP that has a link to
> > > outside-the-SoC world has the same discussion point.
> >
> > status = "disabled" is still the closest thing for everything which have
> > external dependencies. There is not much point to enable an i2c bus
> > without making sure that the signals are actually routed to the pins
> > where they supposed to go.
There is one reason to keep using the default status = "okay", for
i2c Linux can properly idle the device on boot without dependencies
to a certain boot loader version.
> > Or from other pow: a board design is not based on what is _not_
> > connected to outside world, but you actually _connect_ or _enable_
> > certain peripherals to external components, connectors.
>
> OK, I will buy the argument that the current status thingy is a bit
> overloaded and does'nt imply the correct state we need it to imply with
> "fail-sss" either - I remember an argument for "fail-incomplete", but
> that never happened anyways.
>
> Lets add this argument to the commit message and repost after testing
> on 5.10-rc1 please?
We should use status = "disabled" when the hardware is not accessible
to the SoC. That goes for things like secure world devices, and hardware
that relies on a missing external clock for example. For other things
we should just stick to the default which "okay" :)
Regards,
Tony
next prev parent reply other threads:[~2020-10-27 13:07 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-05 7:48 [PATCH] arm64: dts: ti: k3-j7200-main: Add McASP nodes Peter Ujfalusi
2020-10-05 7:48 ` Peter Ujfalusi
2020-10-05 11:58 ` Nishanth Menon
2020-10-05 11:58 ` Nishanth Menon
2020-10-05 12:02 ` Peter Ujfalusi
2020-10-05 12:02 ` Peter Ujfalusi
2020-10-05 12:08 ` Nishanth Menon
2020-10-05 12:08 ` Nishanth Menon
2020-10-07 10:38 ` Peter Ujfalusi
2020-10-07 10:38 ` Peter Ujfalusi
2020-10-26 14:50 ` Nishanth Menon
2020-10-26 14:50 ` Nishanth Menon
2020-10-27 13:07 ` Tony Lindgren [this message]
2020-10-27 13:07 ` Tony Lindgren
2020-10-27 13:19 ` Nishanth Menon
2020-10-27 13:19 ` Nishanth Menon
2020-10-27 13:26 ` Peter Ujfalusi
2020-10-27 13:26 ` Peter Ujfalusi
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=20201027130701.GE5639@atomide.com \
--to=tony@atomide.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nm@ti.com \
--cc=peter.ujfalusi@ti.com \
--cc=robh+dt@kernel.org \
--cc=t-kristo@ti.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.