public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@nvidia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 04/17] fdt: Add basic support for decoding GPIO definitions
Date: Mon, 05 Dec 2011 16:03:03 -0700	[thread overview]
Message-ID: <4EDD4DA7.6070902@nvidia.com> (raw)
In-Reply-To: <CAPnjgZ03+tfMhkqo4=uarcAf1E8hTfvSF_Y0=V70tuqP866QQQ@mail.gmail.com>

On 12/05/2011 03:52 PM, Simon Glass wrote:
> Hi Stephen,
> 
> On Mon, Dec 5, 2011 at 2:22 PM, Stephen Warren <swarren@nvidia.com> wrote:
>> On 12/05/2011 02:56 PM, Simon Glass wrote:
>>> Hi Stephen,
>>>
>>> On Mon, Dec 5, 2011 at 1:46 PM, Stephen Warren <swarren@nvidia.com> wrote:
>>>> On 12/02/2011 07:11 PM, Simon Glass wrote:
>>>>> This adds some support into fdtdec for reading GPIO definitions from
>>>>> the fdt. We permit up to FDT_GPIO_MAX GPIOs in the system. Each GPIO
>>>>> is of the form:
>>>>>
>>>>> gpio-function-name = <phandle gpio_num flags>;
>>>>>
>>>>> where:
>>>>>
>>>>> phandle is a pointer to the GPIO node
>>>>> gpio_num is the number of the GPIO (0 to 223)
>>>>> flags is some flags, proposed as follows:
>>>>>
>>>>>    bit    meaning
>>>>>    0      0=input, 1=output
>>>>>    1      for output only: inital value of output
>>>>>    2      0=polarity normal, 1=active low (inverted)
>>>>
>>>> The meaning of the flags (and even whether there are any flags any if so
>>>> how many cells there are to contain them) is defined by the GPIO
>>>> controller's binding. It's not something that can be interpreted in
>>>> isolation by a generic DT parsing function. See for example #gpio-cells
>>>> in tegra20.dtsi's gpio node and kernel file
>>>> Documentation/devicetree/bindings/gpio/gpio_nvidia.txt.
>>>
>>> I see this in my version:
>>>
>>> Required properties:
>>> - compatible : "nvidia,tegra20-gpio"
>>> - #gpio-cells : Should be two. The first cell is the pin number and the
>>>   second cell is used to specify optional parameters:
>>>   - bit 0 specifies polarity (0 for normal, 1 for inverted)
>>> - gpio-controller : Marks the device node as a GPIO controller.
>>>
>>> so how do I go about adding the other two bits?
>>
>> I don't think you would. Input vs. output and output value are set up by
>> APIs such as gpio_direction_input/output based on what the driver wants
>> to do with the GPIOs.
> 
> Fair enough. I am wanting to create a way for more information to be
> provided about a GPIO so that it can be set up automatically ready for
> use (reduces code size).

At least in this case, I don't think it makes sense to do that. The FDT
is about representing that a particular GPIO is a VBUS GPIO. That
doesn't mean the GPIO /has/ to be an output driven high; that's only
true if the driver is enabled and chooses to configure that port as a
host port, not a device port.

If you wanted to represent GPIOs that were always configured to a
specific output value in DT, I think that'd be an unrelated binding
somewhere other than the USB bus's vbus-gpios property, since it'd have
a completely different semantic meaning.

>> include/asm-generic/gpio.h seems to use an int to represent a GPIO. I'd
>> suggest these APIs do the same, rather than use a u8.
> 
> Do you mean the fdt_gpio_state structure?

Yes.

> I have not used u8 for any
> function calls and would not.
> 
> This adds 3 bytes for every entry. What is the benefit? People get
> upset when we waste memory!

Well, U-boot has already chosen to use an int to represent a GPIO ID.
Given that, I assert that all places that store a GPIO ID should use the
same type. And realistically, we're only talking about a handful of
instances here, and any bloat is completely limited to those platforms
that use this feature, and linear with the number of GPIOs.

-- 
nvpublic

  reply	other threads:[~2011-12-05 23:03 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-03  2:11 [U-Boot] [PATCH v2 0/17] tegra: Add fdt definitions and USB driver Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 01/17] fdt: Tidy up a few fdtdec problems Simon Glass
2011-12-05 21:27   ` Stephen Warren
2011-12-05 21:40     ` Simon Glass
2011-12-05 22:07       ` Stephen Warren
2011-12-05 22:11         ` Simon Glass
2011-12-05 22:18           ` Scott Wood
2011-12-05 22:25             ` Stephen Warren
2011-12-05 22:53               ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 02/17] fdt: Add functions to access phandles, arrays and bools Simon Glass
2011-12-05 21:59   ` Stephen Warren
2011-12-05 22:07     ` Simon Glass
2011-12-05 22:36       ` Stephen Warren
2011-12-05 23:56         ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 03/17] Add gpio_request() to asm-generic header Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 04/17] fdt: Add basic support for decoding GPIO definitions Simon Glass
2011-12-05 21:46   ` Stephen Warren
2011-12-05 21:56     ` Simon Glass
2011-12-05 22:22       ` Stephen Warren
2011-12-05 22:52         ` Simon Glass
2011-12-05 23:03           ` Stephen Warren [this message]
2011-12-05 23:29             ` Simon Glass
2011-12-06  3:55           ` Mike Frysinger
2011-12-07  1:21             ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 05/17] arm: fdt: Ensure that an embedded fdt is word-aligned Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 06/17] arm: fdt: Add skeleton device tree file from kernel Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 07/17] tegra: fdt: Add Tegra2x " Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 08/17] tegra: fdt: Add device tree file for Tegra2 Seaboard " Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 09/17] tegra: usb: fdt: Add additional device tree definitions for USB ports Simon Glass
2011-12-05 23:25   ` Stephen Warren
2011-12-06  0:55     ` Simon Glass
2011-12-06 20:28       ` Stephen Warren
2011-12-06 21:09         ` Simon Glass
2011-12-07 23:36           ` Stephen Warren
2011-12-08 21:10             ` Simon Glass
2011-12-12 18:13               ` Stephen Warren
2011-12-12 18:53                 ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 10/17] tegra: usb: fdt: Add USB definitions for Tegra2 Seaboard Simon Glass
2011-12-05 23:26   ` Stephen Warren
2011-12-03  2:11 ` [U-Boot] [PATCH v2 11/17] usb: Add support for data alignment Simon Glass
2011-12-04 11:13   ` Remy Bohmer
2011-12-06  2:38     ` Simon Glass
2011-12-10 16:04       ` Remy Bohmer
2011-12-10 18:58         ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 12/17] usb: Add support for txfifo threshold Simon Glass
2011-12-05 23:32   ` Stephen Warren
2011-12-06  2:03     ` Simon Glass
2011-12-06 18:58       ` Stephen Warren
2011-12-06 19:24         ` Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 13/17] tegra: usb: Add support for Tegra USB peripheral Simon Glass
2011-12-04 11:12   ` Remy Bohmer
2011-12-03  2:11 ` [U-Boot] [PATCH v2 14/17] tegra: usb: Add USB support to nvidia boards Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 15/17] tegra: usb: Add common USB defines for tegra2 boards Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 16/17] tegra: usb: Enable USB on Seaboard Simon Glass
2011-12-03  2:11 ` [U-Boot] [PATCH v2 17/17] tegra: fdt: Enable FDT support for Seaboard Simon Glass

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=4EDD4DA7.6070902@nvidia.com \
    --to=swarren@nvidia.com \
    --cc=u-boot@lists.denx.de \
    /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