public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Eric Nelson <eric@nelint.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] dm: gpio: handle GPIO_ACTIVE_LOW flag in DT
Date: Sat, 2 Apr 2016 08:13:55 -0700	[thread overview]
Message-ID: <56FFE1B3.6070608@nelint.com> (raw)
In-Reply-To: <20160402054612.GA27255@linux-7smt.suse>

Hi Peng,

On 04/01/2016 10:46 PM, Peng Fan wrote:
> On Thu, Mar 31, 2016 at 01:41:04PM -0700, Eric Nelson wrote:
>> On 03/28/2016 09:57 PM, Peng Fan wrote:
>>> On Fri, Mar 25, 2016 at 01:12:11PM -0700, Eric Nelson wrote:
>>>> Device tree parsing of GPIO nodes is currently ignoring flags.
>>>>
>>>> Add support for GPIO_ACTIVE_LOW by checking for the presence
>>>> of the flag and setting the desc->flags field to the driver
>>>> model constant GPIOD_ACTIVE_LOW.
>>>
>>> You may need to try this: https://patchwork.ozlabs.org/patch/597363/
>>>
>> Thanks for pointing this out.
>>
>> This patch also works, but it has me confused.
>>
>> How/why is parsing the ACTIVE_LOW flag specific to MXC?
>>
>> This is a general-purpose flag in the kernel, not something machine-
>> specific.
>>
>> It also appears that there are a bunch of other copies
>> of this same bit of code in the various mach_xlate() routines:
>>
>> desc->flags = args->args[1] & GPIO_ACTIVE_LOW ? GPIOD_ACTIVE_LOW : 0;
>>
>> If it's done in gpio-uclass, this isn't needed and xlate can
>> be removed from mxc-gpio and quite a few other architectures.
>>
>> Please advise,
> 
> I saw you have posted a patch set to convert other gpio drivers.
> But actually the translation of gpio property should be done by
> each gpio driver. Alought we have gpio-cells=<2> for most gpio
> drivers, but if there is one case that gpio-cells=<3>, and it have
> different meaning for each cell from other most drivers?
> 

Which case has gpio-cells=<3>?

As far as I can tell, only tegra and sandbox have something other
than parsing of offset and the GPIO_ACTIVE_LOW flag.

Tegra seems to have gpio-cells=<2> and sandbox has either 0 or 1.

> So I suggest we follow the linux way,
> 
> 434         if (!chip->of_xlate) {                                                  
> 435                 chip->of_gpio_n_cells = 2;                                      
> 436                 chip->of_xlate = of_gpio_simple_xlate;                          
> 437         }
> 
> If gpio drivers does not provide xlate function, then use a simple xlate
> function. If gpio drivers have their own xlate function, then use their
> own way.
>
The recommendation in device-tree-bindings/gpio/gpio.txt is to have
the GPIO_ACTIVE_LOW/HIGH flag in the second cell, so parsing that
directly in gpio_find_and_xlate() seems right.

That way, driver-specific parsing only needs to handle additional
flags or needs as is the case with tegra.

> Also I do no think delete the xlate implementation is not a good idea.
> 

Which xlate routine? All of those that my patch set removes?

Since none of them do anything besides parsing the offset and
GPIO_ACTIVE_LOW flag, this seems like code bloat.

Please advise,


Eric

  reply	other threads:[~2016-04-02 15:13 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-25 20:12 [U-Boot] [PATCH] dm: gpio: handle GPIO_ACTIVE_LOW flag in DT Eric Nelson
2016-03-29  4:57 ` Peng Fan
2016-03-31 20:41   ` Eric Nelson
2016-04-01 15:47     ` [U-Boot] [PATCH 0/7] Handle GPIO_ACTIVE_LOW in gpio-uclass Eric Nelson
2016-04-01 15:47       ` [U-Boot] [PATCH 1/7] dm: gpio: handle GPIO_ACTIVE_LOW flag in DT Eric Nelson
2016-04-01 15:47       ` [U-Boot] [PATCH 2/7] gpio: intel_broadwell: remove gpio_xlate routine Eric Nelson
2016-04-09 18:33         ` Simon Glass
2016-04-01 15:47       ` [U-Boot] [PATCH 3/7] gpio: omap: " Eric Nelson
2016-04-09 18:33         ` Simon Glass
2016-04-01 15:47       ` [U-Boot] [PATCH 4/7] gpio: pic32: " Eric Nelson
2016-04-09 18:33         ` Simon Glass
2016-04-01 15:47       ` [U-Boot] [PATCH 5/7] gpio: rk: " Eric Nelson
2016-04-09 18:33         ` Simon Glass
2016-04-01 15:47       ` [U-Boot] [PATCH 6/7] gpio: exynos(s5p): " Eric Nelson
2016-04-09 18:34         ` Simon Glass
2016-04-01 15:47       ` [U-Boot] [PATCH 7/7] gpio: tegra: remove flags parsing in xlate routine Eric Nelson
2016-04-05 22:09         ` Stephen Warren
2016-04-09 18:34           ` Simon Glass
2016-04-10 14:45             ` Eric Nelson
2016-04-10 15:55               ` Eric Nelson
2016-04-11 17:00       ` [U-Boot] [PATCH V2 0/6] Handle GPIO_ACTIVE_LOW in gpio-uclass Eric Nelson
2016-04-11 17:00         ` [U-Boot] [PATCH V2 1/6] dm: gpio: add a default gpio xlate routine Eric Nelson
2016-04-11 17:16           ` Stephen Warren
2016-04-11 17:18             ` Eric Nelson
2016-04-11 17:31             ` [U-Boot] [PATCH V3 " Eric Nelson
2016-04-12  3:49               ` Purna Chandra Mandal
2016-04-11 17:00         ` [U-Boot] [PATCH V2 2/6] gpio: intel_broadwell: remove gpio_xlate routine Eric Nelson
2016-04-11 17:00         ` [U-Boot] [PATCH V2 3/6] gpio: omap: " Eric Nelson
2016-04-11 17:00         ` [U-Boot] [PATCH V2 4/6] gpio: pic32: " Eric Nelson
2016-04-12  3:49           ` Purna Chandra Mandal
2016-04-11 17:00         ` [U-Boot] [PATCH V2 5/6] gpio: rk: " Eric Nelson
2016-04-11 17:00         ` [U-Boot] [PATCH V2 6/6] gpio: exynos(s5p): " Eric Nelson
2016-04-12  3:56           ` Minkyu Kang
2016-04-02  5:46     ` [U-Boot] [PATCH] dm: gpio: handle GPIO_ACTIVE_LOW flag in DT Peng Fan
2016-04-02 15:13       ` Eric Nelson [this message]
2016-04-03  3:37         ` Stephen Warren
2016-04-03 14:07           ` Eric Nelson
2016-04-04 17:50             ` Stephen Warren
2016-04-09 18:33               ` Simon Glass
2016-04-10 14:48                 ` Eric Nelson
2016-04-11 14:47                   ` Simon Glass
2016-04-11 14:55                     ` Eric Nelson
2016-04-11 14:59                       ` Simon Glass
2016-04-11 15:10                         ` Eric Nelson
2016-04-11 15:12                           ` Simon Glass
2016-04-11 16:10                             ` Stephen Warren
2016-04-11 16:53                               ` Simon Glass
2016-04-11 17:17                                 ` Eric Nelson
2016-04-20 14:40                                   ` Simon Glass
2016-04-20 15:23                                     ` Eric Nelson
2016-04-20 15:37                                     ` [U-Boot] [RESEND PATCH 0/6] Handle GPIO_ACTIVE_LOW in gpio-uclass Eric Nelson
2016-04-20 15:37                                       ` [U-Boot] [RESEND PATCH V3 1/6] dm: gpio: add a default gpio xlate routine Eric Nelson
2016-04-21 17:03                                         ` Stephen Warren
2016-04-24 23:32                                           ` Eric Nelson
2016-04-24 23:32                                           ` [U-Boot] [PATCH V4, " Eric Nelson
2016-04-27 15:12                                             ` Simon Glass
2016-05-07 19:03                                               ` Simon Glass
2016-04-20 15:37                                       ` [U-Boot] [RESEND PATCH V2 2/6] gpio: intel_broadwell: remove gpio_xlate routine Eric Nelson
2016-05-07 19:03                                         ` Simon Glass
2016-04-20 15:37                                       ` [U-Boot] [RESEND PATCH V2 3/6] gpio: omap: " Eric Nelson
2016-05-07 19:03                                         ` Simon Glass
2016-04-20 15:37                                       ` [U-Boot] [RESEND PATCH V2 4/6] gpio: pic32: " Eric Nelson
2016-05-07 19:03                                         ` Simon Glass
2016-04-20 15:37                                       ` [U-Boot] [RESEND PATCH V2 5/6] gpio: rk: " Eric Nelson
2016-05-07 19:03                                         ` Simon Glass
2016-04-20 15:37                                       ` [U-Boot] [RESEND PATCH V2 6/6] gpio: exynos(s5p): " Eric Nelson
2016-05-07 19:03                                         ` 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=56FFE1B3.6070608@nelint.com \
    --to=eric@nelint.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