Re: [PATCH 4/7] USB chipidea: introduce dual role mode pdata flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter Chen <hzpeterchen@xxxxxxxxx> writes:

> On Tue, Jun 4, 2013 at 5:31 PM, Alexander Shishkin
> <alexander.shishkin@xxxxxxxxxxxxxxx> wrote:
>> Peter Chen <hzpeterchen@xxxxxxxxx> writes:
>>
>>> On Mon, Jun 3, 2013 at 8:37 PM, Alexander Shishkin
>>> <alexander.shishkin@xxxxxxxxxxxxxxx> wrote:
>>>> Michael Grzeschik <mgr@xxxxxxxxxxxxxx> writes:
>>>>
>>>>> From: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
>>>>>
>>>>> Even if a chipidea core is otg capable the board may not. This allows
>>>>
>>>> "may not be"
>>>>
>>>>> to explicitly set the core to host/peripheral mode. Without these
>>>>> flags the driver falls back to the old behaviour.
>>>>>
>>>>> Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
>>>>> ---
>>>>
>>>> [snip]
>>>>
>>>>> +     if (!ci->platdata->dr_mode)
>>>>> +             ci->platdata->dr_mode = of_usb_get_dr_mode(dev->of_node);
>>>>
>>>> same as previous one, let's keep it in the platform.
>>>
>>> Alex, have you made the conclusion with Felipe, whether we need DT support
>>> at core driver to handle such kinds of things or use platform data is ok?
>>> Last time, I remember he disagreed the way this patch uses.
>>
>> He wanted everything to be fetched from the core driver, I wanted
>> most things to be fetched from the platform driver, we never came to a
>> common denominator, though. This (and the other one) patch is made to
>> fetch phy_mode and dr_mode from the core if it's not passed from the
>> platform driver, so pretty much Felipe's idea. The more I think about it
>> now, the more it makes sense to me too. For instance, this way we can
>> avoid any extra boilerplate platform code.
>>
>> So, we're going to have it this way for now.
>>
>
> For this patch, there may be wrong since it wants get the phy_mode and dr_mode
> from the core DT node, but seems there is no core DT node at all, and the device
> tree binding doc add dr_mode is for gluy layer.

I don't follow. In the previous patch it sets core's of_node to that of
platform glue, so here the core fetches phy_mode and dr_mode from the
platform device's of_node.

Of course, if the core driver is taking care of some of the DT
properties, it might make sense to document them as such, as opposed to
documenting them for each and every platform device, but I'll leave that
up to DT savants.

> OK, so you have accepted the way we pass something from glue layer DT
> node, and using
> ci->platdata->xxx (dr_mode, phy_mode, vbus, force_full_speed, etc) at
> core driver, right?

Yes, let's do it this way.

Another related matter is ownership of phys and clocks.

Regards,
--
Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux