linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v1] usb: phy: generic: migrate to gpio_desc
       [not found] ` <20141121154358.GF7508@saruman>
@ 2014-11-28 10:37   ` Linus Walleij
       [not found]     ` <CACRpkdZtwYb77ytGiadFnZAUOkr8y_HPQoM3vmXBc+N6dszAJw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Linus Walleij @ 2014-11-28 10:37 UTC (permalink / raw)
  To: Felipe Balbi
  Cc: Robert Jarzmik, linux-usb@vger.kernel.org, Alexandre Courbot,
	linux-gpio@vger.kernel.org

On Fri, Nov 21, 2014 at 4:43 PM, Felipe Balbi <balbi@ti.com> wrote:
> On Sun, Nov 09, 2014 at 01:23:07PM +0100, Robert Jarzmik wrote:
>>
>> Change internal gpio handling from integer gpios into gpio
>> descriptors. This change only addresses the internal API and
>> device-tree/ACPI, while the legacy platform data remains integer space
>> based.
>>
>> This change is only build compile tested, and very prone to error. I
>> leave this comment for now in the commit message so that this patch gets
>> some testing as I'm pretty sure it's buggy.
>>
>> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
>
> To my eyes, patch looks fine, but let's get a review from Linus W.
>
> Linus, can you have a look below ? Is this being used the way you
> intended ? BTW, we need support DT and pdata platforms here.

This definately make things better so:
Acked-by: Linus Walleij <linus.walleij@linaro.org>

One comment though:

>>       if (dev->of_node) {
(...)
>> +             nop->gpiod_reset = devm_gpiod_get(dev, "reset-gpios");
>> +             err = PTR_ERR(nop->gpiod_reset);
>>       } else if (pdata) {
(...)
>> +             err = devm_gpio_request_one(dev, pdata->gpio_reset, 0,
>> +                                         dev_name(dev));
>> +             if (!err)
>> +                     nop->gpiod_reset = gpio_to_desc(pdata->gpio_reset);
>> +     }

This construction implies that if we don't have a DT node, the
GPIO is passed as a fixed number in pdata->gpio_reset,
but it is actually possible to use descriptors in board files
by adding a fixed table.

So a next step would be to add support for getting the
devm_gpiod_get(dev, "reset-gpios"); outside of the if (dev->of_node)
clause, and possibly convert the board files for affected
platforms to use descriptors, if they will not be replaced by
device tree only.

I know this is a major work, so this patch is still a good start!
Using descriptors internally is always preferred.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] usb: phy: generic: migrate to gpio_desc
       [not found]     ` <CACRpkdZtwYb77ytGiadFnZAUOkr8y_HPQoM3vmXBc+N6dszAJw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2014-11-30 20:32       ` Robert Jarzmik
  2014-12-01  4:01         ` Alexandre Courbot
  0 siblings, 1 reply; 4+ messages in thread
From: Robert Jarzmik @ 2014-11-30 20:32 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Felipe Balbi, linux-usb@vger.kernel.org, Alexandre Courbot,
	linux-gpio@vger.kernel.org

Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> writes:

> This definately make things better so:
> Acked-by: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Thanks.

> One comment though:
>
>>>       if (dev->of_node) {
> (...)
>>> +             nop->gpiod_reset = devm_gpiod_get(dev, "reset-gpios");
>>> +             err = PTR_ERR(nop->gpiod_reset);
>>>       } else if (pdata) {
> (...)
>>> +             err = devm_gpio_request_one(dev, pdata->gpio_reset, 0,
>>> +                                         dev_name(dev));
>>> +             if (!err)
>>> +                     nop->gpiod_reset = gpio_to_desc(pdata->gpio_reset);
>>> +     }

> So a next step would be to add support for getting the
> devm_gpiod_get(dev, "reset-gpios"); outside of the if (dev->of_node)
> clause, and possibly convert the board files for affected
> platforms to use descriptors, if they will not be replaced by
> device tree only.

OK, if we were to do this, is there a way to build a static platform data with a
gpio descriptor ?
Ie. can I write something like :
struct generic_phy_pdata {
	struct gpio_desc *reset_gpio;
};

And in machine code :
static struct generic_phy_pdata usb_phy __initdata {
       .reset_gpio = XXX(19),
};

What should "XXX" be like to describe reset_gpio as a ACTIVE_HIGH gpio number 19
?

Cheers.

-- 
Robert
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] usb: phy: generic: migrate to gpio_desc
  2014-11-30 20:32       ` Robert Jarzmik
@ 2014-12-01  4:01         ` Alexandre Courbot
  2014-12-03 22:54           ` Robert Jarzmik
  0 siblings, 1 reply; 4+ messages in thread
From: Alexandre Courbot @ 2014-12-01  4:01 UTC (permalink / raw)
  To: Robert Jarzmik
  Cc: Linus Walleij, Felipe Balbi, linux-usb@vger.kernel.org,
	linux-gpio@vger.kernel.org

On Mon, Dec 1, 2014 at 5:32 AM, Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Linus Walleij <linus.walleij@linaro.org> writes:
>
>> This definately make things better so:
>> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> Thanks.
>
>> One comment though:
>>
>>>>       if (dev->of_node) {
>> (...)
>>>> +             nop->gpiod_reset = devm_gpiod_get(dev, "reset-gpios");
>>>> +             err = PTR_ERR(nop->gpiod_reset);
>>>>       } else if (pdata) {
>> (...)
>>>> +             err = devm_gpio_request_one(dev, pdata->gpio_reset, 0,
>>>> +                                         dev_name(dev));
>>>> +             if (!err)
>>>> +                     nop->gpiod_reset = gpio_to_desc(pdata->gpio_reset);
>>>> +     }
>
>> So a next step would be to add support for getting the
>> devm_gpiod_get(dev, "reset-gpios"); outside of the if (dev->of_node)
>> clause, and possibly convert the board files for affected
>> platforms to use descriptors, if they will not be replaced by
>> device tree only.
>
> OK, if we were to do this, is there a way to build a static platform data with a
> gpio descriptor ?
> Ie. can I write something like :
> struct generic_phy_pdata {
>         struct gpio_desc *reset_gpio;
> };
>
> And in machine code :
> static struct generic_phy_pdata usb_phy __initdata {
>        .reset_gpio = XXX(19),
> };
>
> What should "XXX" be like to describe reset_gpio as a ACTIVE_HIGH gpio number 19
> ?

I think what you want to do is explained in the "Platform Data"
section of Documentation/gpio/board.txt

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] usb: phy: generic: migrate to gpio_desc
  2014-12-01  4:01         ` Alexandre Courbot
@ 2014-12-03 22:54           ` Robert Jarzmik
  0 siblings, 0 replies; 4+ messages in thread
From: Robert Jarzmik @ 2014-12-03 22:54 UTC (permalink / raw)
  To: Alexandre Courbot
  Cc: Linus Walleij, Felipe Balbi, linux-usb@vger.kernel.org,
	linux-gpio@vger.kernel.org

Alexandre Courbot <gnurou@gmail.com> writes:

> I think what you want to do is explained in the "Platform Data"
> section of Documentation/gpio/board.txt
Ah yeah, already one year and I never checked again this documemtation.

Thanks.

-- 
Robert

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-12-03 22:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1415535787-21868-1-git-send-email-robert.jarzmik@free.fr>
     [not found] ` <20141121154358.GF7508@saruman>
2014-11-28 10:37   ` [PATCH v1] usb: phy: generic: migrate to gpio_desc Linus Walleij
     [not found]     ` <CACRpkdZtwYb77ytGiadFnZAUOkr8y_HPQoM3vmXBc+N6dszAJw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-30 20:32       ` Robert Jarzmik
2014-12-01  4:01         ` Alexandre Courbot
2014-12-03 22:54           ` Robert Jarzmik

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).