From: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
To: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: Pinmux with device tree
Date: Wed, 25 May 2011 20:43:27 -0700 [thread overview]
Message-ID: <BANLkTi=ws+018nu6egtufCgr_tFCDamQng@mail.gmail.com> (raw)
In-Reply-To: <20110519171029.GH3085-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
On Thu, May 19, 2011 at 10:10 AM, Grant Likely
<grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org> wrote:
> On Thu, May 19, 2011 at 07:30:52PM +0800, Haojian Zhuang wrote:
>> On Thu, May 19, 2011 at 3:33 AM, Mitch Bradley <wmb-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org> wrote:
>> > On 5/18/2011 6:34 AM, Simon Glass wrote:
>> >>
>> >> Hi,
>> >>
>> >> I see a new pinmux system in the LKML. Has anyone looked at how to
>> >> represent pinmux settings in the device tree?
>> >>
>> >> On a related topic, the examples that are used for GPIOs assume a
>> >> flags word which describes things like pull-ups, direction, etc. This
>> >> seems pretty cumbersome and gets worse with pinmuxes. People editing
>> >> the device trees want to see symbolic information rather than a coded
>> >> number, a bit like a #define. I can see this can be done with strings
>> >> but this is inefficient in time and space, and is error-prone. Is
>> >> there support for this in device trees that I have missed?
>
> Why is it error prone? It is probably less error prone than using
> magic integer values. :-) As for time and space inefficiencies,
> we're talking about tiny amounts of data and processors now in the GHz
> range with GBs of memory. The time and space required is pretty much
> in the noise.
It strikes me that for a pinmux I want to say:
<&pingroup_gaa spi2 pullup normal>
<&pingroup_gab spi2 pullup tristatel>
or similar, with some definitions something like:
spi2: #4
pullup: #1
normal: #0
tristate: #0
The same for GPIOs since specifying an integer with bitflags is not
great for humans.
>
> A bigger issue is the fact that a GPIO binding has already been
> established using integers. To change it to something else must be
> done in such a way as to not break existing users.
Well we could support bitfields:
bitfield gpio 0:0 {input, output}
bitfield pull 2:1 {normal, reserved, pulldown, pullup}
bitfield tristate 3:3 {tristate, normal}
then some magic could piece it together into a cell:
<&gpio32> <gpio:input, pulldown, tristate>
if you really want to go that far!
>
> However, pinmux description is entirely orthogonal to GPIO
> controllers. The gpio binding is about matching gpio consumers to
> gpio providers. It says nothing about how the gpios are actually
> routed on the chip.
>
> A pinmux binding is more about the specific configuration of the
> chip, and is very likely going to be something chip specific,
> although there may be some common infrastructure and patterns for
> describing the functionality. I have no problem with defining a new
> binding for describing pinmux.
>
> I'll be very nervous if I see any implementation that tries to encode
> pinmux information into the gpio binding.
Yes they are completely separate. I feel that numbers are almost good
enough for GPIOs but are a bit of a stretch for pinmuxes. What sort of
symbolic support is actually available in FDT?
>
>> >
>> > Open Firmware deals with this by defining both a numerical representation
>> > and a text representation. The numerical representation appears in memory
>> > in device tree property values, and the corresponding text representation is
>> > for display and human input.
>> >
>> Could it be supported by flattened device tree? It seems that open firmware
>> isn't popular in ARM system.
>
> The flat tree is directly derived from the Open Firmware design. Yes,
> this could be expressed by device tree, however we don't have any
> syntax for the dt compiler right now to support the use case. Plus,
> I want to tread carefully here since it may also be possible that
> firmware will want to modify the data, and it becomes a lot more
> complex if it needs to keep two separate representations within the
> same tree in sync.
>
> One option would be to allow interrupt controllers to have a static
> lookup property which matches bitfields in the interrupt specifier
> with human readable names.
>
> g.
>
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
>
prev parent reply other threads:[~2011-05-26 3:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-18 16:34 Pinmux with device tree Simon Glass
[not found] ` <BANLkTin5wBtR4zkgsQ6dw1jQP8yQGCDS2Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-05-18 19:33 ` Mitch Bradley
[not found] ` <4DD41F02.4050108-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2011-05-19 11:30 ` Haojian Zhuang
[not found] ` <BANLkTim94SKgWvUF6_PWb9O5YsuNk120Bw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-05-19 17:10 ` Grant Likely
[not found] ` <20110519171029.GH3085-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-05-19 17:24 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF0498A47BFF-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-05-19 17:42 ` Grant Likely
2011-05-19 19:59 ` Mitch Bradley
[not found] ` <4DD576BD.7090307-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2011-05-19 20:36 ` Nicolas Pitre
[not found] ` <alpine.LFD.2.00.1105191625050.14430-QuJgVwGFrdf/9pzu0YdTqQ@public.gmane.org>
2011-05-19 20:54 ` Mitch Bradley
[not found] ` <4DD5839C.2020809-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2011-05-20 2:23 ` Nicolas Pitre
[not found] ` <alpine.LFD.2.00.1105192217350.14430-QuJgVwGFrdf/9pzu0YdTqQ@public.gmane.org>
2011-05-20 2:31 ` Mitch Bradley
2011-05-26 3:43 ` Simon Glass [this message]
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='BANLkTi=ws+018nu6egtufCgr_tFCDamQng@mail.gmail.com' \
--to=sjg-f7+t8e8rja9g9huczpvpmw@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.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;
as well as URLs for NNTP newsgroup(s).