From: thierry.reding@gmail•com (Thierry Reding)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH 2/3] dt-bindings: allow child nodes inside the Tegra BPMP
Date: Fri, 29 Jul 2016 15:48:31 +0200 [thread overview]
Message-ID: <20160729134831.GA3864@ulmo.ba.sec> (raw)
In-Reply-To: <6db4ff47-974b-94ac-3739-e630b6d38c0e@wwwdotorg.org>
On Thu, Jul 28, 2016 at 03:24:22PM -0600, Stephen Warren wrote:
> On 07/28/2016 01:07 PM, Rob Herring wrote:
> > On Tue, Jul 26, 2016 at 11:21 AM, Stephen Warren <swarren@wwwdotorg•org> wrote:
> > > On 07/26/2016 04:03 AM, Thierry Reding wrote:
> > > >
> > > > On Tue, Jul 19, 2016 at 01:14:41PM -0600, Stephen Warren wrote:
> > > > >
> > > > > From: Stephen Warren <swarren@nvidia•com>
> > > > >
> > > > > The BPMP implements some services which must be represented by separate
> > > > > nodes. For example, it can provide access to certain I2C controllers, and
> > > > > the I2C bindings represent each I2C controller as a device tree node.
> > > > > Update the binding to describe how the BPMP supports this.
> > > > >
> > > > > Signed-off-by: Stephen Warren <swarren@nvidia•com>
> > > > > ---
> > > > > .../bindings/firmware/nvidia,tegra186-bpmp.txt | 23
> > > > > ++++++++++++++++++++++
> > > > > 1 file changed, 23 insertions(+)
> > > > >
> > > > > diff --git
> > > > > a/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt
> > > > > b/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt
> > > > > index 9a3864f56955..142d363406f6 100644
> > > > > --- a/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt
> > > > > +++ b/Documentation/devicetree/bindings/firmware/nvidia,tegra186-bpmp.txt
> > > > > @@ -38,6 +38,24 @@ implemented by this node:
> > > > > - .../reset/reset.txt
> > > > > - <dt-bindings/reset/tegra186-reset.h>
> > > > >
> > > > > +The BPMP implements some services which must be represented by separate
> > > > > nodes.
> > > > > +For example, it can provide access to certain I2C controllers, and the
> > > > > I2C
> > > > > +bindings represent each I2C controller as a device tree node. Such nodes
> > > > > should
> > > > > +be nested directly inside the main BPMP node.
> > > > > +
> > > > > +Software can determine whether a child node of the BPMP node represents
> > > > > a device
> > > > > +by checking for a compatible property. Any node with a compatible
> > > > > property
> > > > > +represents a device that can be instantiated. Nodes without a compatible
> > > > > +property may be used to provide configuration information regarding the
> > > > > BPMP
> > > > > +itself, although no such configuration nodes are currently defined by
> > > > > this
> > > > > +binding.
> > > > > +
> > > > > +The BPMP firmware defines no single global name-/numbering-space for
> > > > > such
> > > > > +services. Put another way, the numbering scheme for I2C buses is
> > > > > distinct from
> > > > > +the numbering scheme for any other service the BPMP may provide (e.g. a
> > > > > future
> > > > > +hypothetical SPI bus service). As such, child device nodes will have no
> > > > > reg
> > > > > +property, and the BPMP node will have no #address-cells or #size-cells
> > > > > property.
> > > >
> > > >
> > > > My understanding is that the I2C bus number is passed as part of the
> > > > request to the BPMP firmware. Does that not count as addressing? Could
> > > > we not represent that generically using a device tree hierarchy? I'm
> > > > thinking something along these lines:
> > > >
> > > > bpmp {
> > > > ...
> > > >
> > > > services {
> > > > i2c {
> > > > i2c at 0 {
> > > > reg = <0>;
> > >
> > >
> > > Technically, that is possible. However, Rob Herring rejected the idea of
> > > multiple levels of sub-nodes.
> >
> > I think I questioned the need, not rejected. What about the above, but
> > remove serivces level:
> >
> > bpmp {
> > ...
> >
> > i2c {
> > i2c at 0 {
> > reg = <0>;
>
> Sigh. Can you please talk to Thierry and work out what the binding would be
> (perhaps on IRC to expedite things?) and I'll just implement whatever you
> two agree upon. I don't really care much what the binding looks like any
> more; I just need something that will pass review. Thanks.
Like I said, I'm fine going with what you proposed. I'm sure by now the
BPMP has long been frozen and if the proposed binding works fine that's
good. No need to over-engineer.
If we ever need more than one I2C (or expose other busses) I'm sure we
can find a way to switch to something like the above later on. Like I
said, that's very unlikely to happen on Tegra186, so we'll have a new
compatible string (and hence an easy way to differentiate between these
bindings) anyway.
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160729/1209e25e/attachment.sig>
next prev parent reply other threads:[~2016-07-29 13:48 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-19 19:14 [PATCH 1/3] dt-bindings: add power domains to Tegra BPMP firmware Stephen Warren
2016-07-19 19:14 ` [PATCH 2/3] dt-bindings: allow child nodes inside the Tegra BPMP Stephen Warren
2016-07-20 13:16 ` Rob Herring
2016-07-20 15:57 ` Stephen Warren
2016-07-26 9:58 ` Jon Hunter
2016-07-26 10:03 ` Thierry Reding
2016-07-26 16:21 ` Stephen Warren
2016-07-27 21:50 ` Stephen Warren
2016-07-28 14:08 ` Thierry Reding
2016-07-28 19:07 ` Rob Herring
2016-07-28 21:24 ` Stephen Warren
2016-07-29 13:48 ` Thierry Reding [this message]
2016-07-29 16:06 ` Stephen Warren
2016-07-29 20:28 ` Rob Herring
2016-07-29 20:48 ` Stephen Warren
2016-11-15 15:42 ` Thierry Reding
2016-07-19 19:14 ` [PATCH 3/3] dt-bindings: add Tegra186 BPMP I2C binding Stephen Warren
2016-07-20 13:17 ` Rob Herring
2016-07-26 10:03 ` Jon Hunter
2016-07-26 16:24 ` Stephen Warren
2016-11-15 15:46 ` Thierry Reding
2016-07-20 12:46 ` [PATCH 1/3] dt-bindings: add power domains to Tegra BPMP firmware Rob Herring
2016-07-26 9:55 ` Jon Hunter
2016-11-15 15:39 ` Thierry Reding
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=20160729134831.GA3864@ulmo.ba.sec \
--to=thierry.reding@gmail$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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