public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Vignesh R <vigneshr@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 06/13] drivers: usb: dwc3: add ti dwc3 peripheral driver with driver model support
Date: Thu, 22 Jun 2017 17:42:38 +0530	[thread overview]
Message-ID: <1759c686-2425-e58b-afcc-4a0fcc74c5b2@ti.com> (raw)
In-Reply-To: <20170621100901.035e3b6f@jawa>



On Wednesday 21 June 2017 01:39 PM, Lukasz Majewski wrote:
> Hi Vignesh,
> 
>> Hi,
>>
>> On Tuesday 20 June 2017 07:14 PM, Lukasz Majewski wrote:
>>> Hi Marek, Vignesh,
>> [...]
>>>>>
>>>>> All gadget drivers like ether.c or f_mass_storage.c call
>>>>> usb_gadget_handle_interrupts() just passing the index of the USB
>>>>> instance. This does not help at all in dm case. What we would need
>>>>> is usb_gadget_handle_interrupts() to provide at least the
>>>>> usb_gadget instance as parameter from which we could derive
>>>>> controller specific structure using container_of(). And then, we
>>>>> could call the SoC specific isr callback.
>>>>> This would require modifying all gadget driver like ether.c to
>>>>> call a different function instead of
>>>>> usb_gadget_handle_interrupts() when DM_USB is used.
>>>>
>>>> This is something to consult with Lukasz then.
>>>
>>> And it seems that we are heading to adding "gadget" infrastructure
>>> to DM.....
>>>
>>
>> Yes, U-Boot is moving to DM for good and this has cascading effect.
>> I was actually trying to enable DM_ETH on some TI platforms which
>> forced me to move USB_ETH to DM as well and therefore seems like USB
>> gadget framework needs tweaks to adapt to DM...
> 
> I've sketched following plan for gadget conversion:
> 
> 1. Each u-boot command (dfu, ums, thor and in the future rockchip I
> hope), which uses gadget goes through g_dnl_{register|unregister}, so
> the idea is to add this driver first to DM.
> 
> 2. Afterwards, we could add functions as children of g_dnl.
> 
> This would be easily modeled in Kconfig (to have g_dnl - gadget - menu
> with submenu to chose the USB function - e.g. f_dfu*).
> 

Wondering, if there is case where more than one functions may be used
like f_dfu and f_mass_storage? Like a single defconfig may want to have
both f_dfu and f_mass_storage enabled?

> However, we also need to take care of several UDC (USB device
> controller) drivers including also the "composite" usb layer.
> 
> This would be tougher to do since there are many udc drivers - but it
> should be possible to separate DM's UDC drivers and g_dnl/function
> code. 
> 
> Another problem is that some archs use gadgets (RNDIS?) without g_dnl
> and composite - on top of UDC driver (like musb).....
> 

Yes, rndis does not use g_dnl. Both MUSB and DWC3 gadget seem to use UDC
w/o g_dnl/composite. I guess, we will have to either support RNDIS
directly with UDC or convert MUSB/DWC3 gadget interface as well as
convert ether.c to g_dnl function.

> For example:
> 
> board/ti/beagle/beagle.c -> board_eth_init()
> 		|
> 	       \|/
> drivers/usb/gadget/ether.c -> usb_eth_initialize()
> [ether.c seems to partially support DM]
> 		|
> 	       \|/
> (also in the ether.c)
> 	_usb_eth_init() in which we loop on
> 	usb_gadget_handle_interrupts()
> 
> 
> From what I see, the ether.c now supports DM and legacy code, so some
> work has been already done for DM....
> 

Yeah, I think this was done as part of making MUSB DM conversion.
RNDIS boot is one the boot mode for many TI platforms and is used quite
often. Legacy code is what is largely in use, am335x has been recently
moved to use DM based RNDIS(although I feel its not complete and working
yet). I guess once UDC is moved DM, we can see how ether.c can be
integrated with it.

Thanks for looking into this!

-- 
Regards
Vignesh

  reply	other threads:[~2017-06-22 12:12 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-13 12:09 [U-Boot] [PATCH v2 00/13] driver model bring-up of dwc3 usb peripheral Vignesh R
2017-06-13 12:09 ` [U-Boot] [PATCH v2 01/13] drivers: usb: dwc3: remove devm_zalloc from linux_compact Vignesh R
2017-06-13 13:58   ` Marek Vasut
2017-06-14  9:05     ` Vignesh R
2017-06-15 16:55       ` Marek Vasut
2017-06-13 12:09 ` [U-Boot] [PATCH v2 02/13] drivers: usb: dwc3-omap: move usb_gadget_handle_interrupts from board files to drivers Vignesh R
2017-06-13 12:09 ` [U-Boot] [PATCH v2 03/13] am437x: board: do not register usb devices when CONFIG_DM_USB is defined Vignesh R
2017-06-13 12:10 ` [U-Boot] [PATCH v2 04/13] omap5/am57xx/dra7xx: " Vignesh R
2017-06-13 12:10 ` [U-Boot] [PATCH v2 05/13] drivers: usb: common: add support to get maximum speed from dt Vignesh R
2017-06-13 14:01   ` Marek Vasut
2017-06-14  9:16     ` Vignesh R
2017-06-15 17:07       ` Marek Vasut
2017-06-13 12:10 ` [U-Boot] [PATCH v2 06/13] drivers: usb: dwc3: add ti dwc3 peripheral driver with driver model support Vignesh R
2017-06-13 14:03   ` Marek Vasut
2017-06-14 12:25     ` Vignesh R
2017-06-15 16:57       ` Marek Vasut
2017-06-20 12:00         ` Vignesh R
2017-06-20 12:04           ` Marek Vasut
2017-06-20 13:44             ` Lukasz Majewski
2017-06-21  5:12               ` Vignesh R
2017-06-21  8:09                 ` Lukasz Majewski
2017-06-22 12:12                   ` Vignesh R [this message]
2017-06-22 13:00                     ` Lukasz Majewski
2017-06-27  9:08                       ` Vignesh R
2017-06-27  9:53                         ` Lukasz Majewski
2018-01-08 17:57                   ` Vignesh R
2017-06-13 12:10 ` [U-Boot] [PATCH v2 07/13] drivers: usb: dwc3: add ti dwc3 misc driver for wrapper Vignesh R
2017-06-13 14:05   ` Marek Vasut
2017-06-14 11:01     ` Vignesh R
2017-06-13 12:10 ` [U-Boot] [PATCH v2 08/13] usb: gadget: ether: Provide a way to read MAC address Vignesh R
2017-06-13 14:06   ` Marek Vasut
2017-06-14 12:24     ` Vignesh R
2017-06-15 16:58       ` Marek Vasut
2017-06-19 11:03         ` Vignesh R
2017-06-21  7:33           ` Lukasz Majewski
2017-07-06  4:48             ` Simon Glass
2017-06-13 12:10 ` [U-Boot] [PATCH v2 09/13] usb: gadget: ether: Populate DM_FLAG_PRE_RELOC flag Vignesh R
2017-06-17  3:42   ` Simon Glass
2017-06-13 12:10 ` [U-Boot] [PATCH v2 10/13] usb: gadget: add DWC3 USB gadget support Vignesh R
2017-06-17  3:42   ` Simon Glass
2017-06-13 12:10 ` [U-Boot] [PATCH v2 11/13] am43xx: Add USB device boot support Vignesh R
2017-06-17  3:42   ` Simon Glass
2017-06-13 12:10 ` [U-Boot] [PATCH v2 12/13] configs: am43xx: Enable configs to support USB device boot Vignesh R
2017-06-17  3:42   ` Simon Glass
2017-06-13 12:10 ` [U-Boot] [PATCH v2 13/13] ARM: am437x-gp-evm-u-boot.dtsi: Enable nodes for " Vignesh R
2017-06-13 13:03   ` Lokesh Vutla
2017-06-14  8:53     ` Vignesh R

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=1759c686-2425-e58b-afcc-4a0fcc74c5b2@ti.com \
    --to=vigneshr@ti.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