All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Glass <sjg@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] dm: gpio: handle GPIO_ACTIVE_LOW flag in DT
Date: Mon, 11 Apr 2016 09:12:11 -0600	[thread overview]
Message-ID: <CAPnjgZ0roQRDKLvO=LZKuP90LMAiraSugG_mOoH5a91oyqtUXQ@mail.gmail.com> (raw)
In-Reply-To: <570BBE48.4020309@nelint.com>

Hi Eric,

On 11 April 2016 at 09:10, Eric Nelson <eric@nelint.com> wrote:
> Hi Simon,
>
> On 04/11/2016 07:59 AM, Simon Glass wrote:
>> On 11 April 2016 at 08:55, Eric Nelson <eric@nelint.com> wrote:
>>> On 04/11/2016 07:47 AM, Simon Glass wrote:
>>>> On 10 April 2016 at 08:48, Eric Nelson <eric@nelint.com> wrote:
>>>>> On 04/09/2016 11:33 AM, Simon Glass wrote:
>>>>>> On 4 April 2016 at 11:50, Stephen Warren <swarren@wwwdotorg.org> wrote:
>>>>>>> On 04/03/2016 08:07 AM, Eric Nelson wrote:
>>>>>>>> On 04/02/2016 08:37 PM, Stephen Warren wrote:
>>>>>>>>> On 04/02/2016 09:13 AM, Eric Nelson wrote:
>>>>>>>>>> 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.
>>>>>>>>>>>>>
>>>>>
>>>>> <snip>
>>>>>
>>>>>>>
>>>>>>> The intent of the change is good.
>>>>>>>
>>>>>>> I'm not sure why we need to remove gpio_find_and_xlate(); it provides an API
>>>>>>> for clients so they don't need to know how to access driver functionality
>>>>>>> through the ops pointer, which I think is an internal/private implementation
>>>>>>> detail. Is that detail exposed to clients in other places? If so, removing
>>>>>>> the wrapper seems fine. If not, I suspect it's a deliberate abstraction.
>>>>>>
>>>>>> This seems a bit pedantic, but since Linux does it this way I think we
>>>>>> should follow along.
>>>>>>
>>>>>> Eric you still get to remove the code from all the GPIO drivers - the
>>>>>> difference is just creating a common function to call when no xlate()
>>>>>> method is available.
>>>>>>
>>>>>> Can you please take a look at what Stephen suggests?
>>>>>>
>>>>>
>>>>> Got it. I'm just not sure about where to start (before or after
>>>>> the patch set you sent) and whether to also remove offset parsing
>>>>> from gpio_find_and_xlate().
>>>>>
>>>>
>>>> Which patch did I send? My understanding is:
>>>>
>>>
>>> At the time I sent this, you had just submitted the patch set adding
>>> more driver-model support for block devices.
>>>
>>>         http://lists.denx.de/pipermail/u-boot/2016-April/251095.html
>>>
>>>> - Add my review/ack tag to the patches as necessary
>>>> - Drop the tegra patch
>>>> - Update gpio_find_and_xlate() to call a default function if there is
>>>> no xlate() method
>>>> - Resend the series
>>>>
>>>> I'm not sure about removing the existing functionality from
>>>> gpio_find_and_xlate(), but my guess is that it is best to move it to
>>>> your default function, so that gpio_find_and_xlate() doesn't include
>>>> any default behaviour in the case where there is a xlate() method.
>>>>
>>>
>>> Reviewing the use of the offset field did yield some information about
>>> the broken sunxi support and also that Vybrid was also missing
>>> the xlate routine.
>>>
>>> Since reviewing your patch sets (driver model updates for blk and also
>>> driver model updates for mmc) will take some time, so I'll base an
>>> updated patch set on master. My guess is that any merge issues will
>>> be trivial.
>>
>> Yes, that's right.
>>>
>>> I'll remove your acks in the updated patch set, since the updates
>>> to the drivers won't drop the xlate field, but will connect them
>>> to the common (__maybe_unused) routine. This will prevent the code
>>> from leaking into machines like Tegra that don't need the common code.
>>
>> I'm pretty sure you can drop the xlate() implementations from the
>> functions, though, and those at the patches I acked.
>>
>> I don't think you need __maybe_unused
>>
>> static int gpio_find_and_xlate(...)
>> {
>>    get ops...
>>
>>    if (ops->xlate)
>>       return ops->xlate(....)
>>    else
>>       return gpio_default_xlate()...
>> }
>>
>> gpio_default_xlate() (or whatever name you use) should be exported so
>> drivers can use it.
>>
>
> This will leak gpio_default_xlate (locally named gpio_xlate_offs_flags)
> into machines that don't need it.
>
> I can go the route you suggest above, but it will cost the tegra
> and sandbox builds ~64 bytes ;)
>

Sure, but we can live with that.

Regards,
Simon

  reply	other threads:[~2016-04-11 15:12 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
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 [this message]
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='CAPnjgZ0roQRDKLvO=LZKuP90LMAiraSugG_mOoH5a91oyqtUXQ@mail.gmail.com' \
    --to=sjg@chromium.org \
    --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 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.