From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Date: Sat, 04 Apr 2015 16:14:36 +0200 Subject: [U-Boot] [PATCH v2] sunxi: Avoid any assumption between musb gadget and host but fallback to host In-Reply-To: <1428156175.2418.13.camel@collins> References: <1427563584-25616-1-git-send-email-contact@paulk.fr> <5517DF87.1060904@redhat.com> <1428154971.2418.8.camel@collins> <551FEBA2.4090600@redhat.com> <1428156175.2418.13.camel@collins> Message-ID: <551FF1CC.3040307@redhat.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On 04-04-15 16:02, Paul Kocialkowski wrote: > Le samedi 04 avril 2015 ? 15:48 +0200, Hans de Goede a ?crit : >> Hi, >> >> On 04-04-15 15:42, Paul Kocialkowski wrote: >>> Le dimanche 29 mars 2015 ? 13:18 +0200, Hans de Goede a ?crit : >>>> Hi, >>>> >>>> On 28-03-15 18:26, Paul Kocialkowski wrote: >>>>> musb might be used in gadget mode on sunxi, so we don't want to assume anything >>>>> related to host mode, especially USB keyboard support. Thus, there is no reason >>>>> to keep USB_KEYBOARD always enabled and in Kconfig: it is much better fit to >>>>> enable it in the common sunxi config header, when needed (some devices also have >>>>> no USB support at all). >>>>> >>>>> In case gadget mode is not explicitly enabled, this will fallback to host mode. >>>>> >>>>> Signed-off-by: Paul Kocialkowski >>>> >>>> Nack, I'm not going to take any patch which removes config USB_KEYBOARD, >>>> having USB_KEYBOARD always enabled on devices with usb host capability >>>> causes a significant penalty in boot time, and some people may want to turn >>>> it off because of that. >>> >>> Actually, I said I would give up on this, but there are still parts of >>> that patch that I need for USB gadget (not related to USB keyboard). >>> >>> Regarding USB keyboard, the best solution IMO would be to set it >>> disabled by default in board/sunxi/Kconfig (both because of the boot >>> time penality and because it's not relevant when using gadget mode) and >>> have it enabled individually in each configs/*_defconfig that uses USB >>> in host mode. >> >> We try to offer the best ootb experience with the defconfigs and many >> users will not have serial consoles attached, so we really want >> usb-keyboard by default. Actually we can currently already use >> host mode on ehci and gadget mode on musb and then we still want >> usb-keyboard and that is how I expect the majority of the boards >> to eventually be configured ootb. > > I hadn't thought of that, it makes sense. > >> The only time when we do not want USB_KEYBOARD is when we've no >> usb hosts at all because that will cause linking errors, this >> should go away once we move over usb to the device model which >> will happen soon. > > Of course, the best solution would be to have USB keyboard enabled but > not used at run-time when there is no host available at all. > >> I'm happy to take patches you need to enable gadget mode, but I >> do not think it is a good idea to flip the the default and then >> add CONFIG_USB_KEYBOARD=y to pretty much every one of our 55 >> defconfig files. > > Well, the long way to do it without modifying each board would be to: > * switch USB_EHCI to Kconfig > * switch MUSB_HOST and MUSB_GADGET to Kconfig > * default MUSB_GADGET to n > * default MUSB_HOST to y if !MUSB_GADGET > * default USB_KEYBORAD to y if USB_EHCI || MUSB_HOST > > That way, we don't have to change the defconfigs and my problem is > solved. What do you think? > > This would also be one more step to eliminating > CONFIG_SYS_EXTRA_OPTIONS, which is not a bad thing. This sounds good to me, note there already is a USB_EHCI_HCD Kconfig which does what you want in drivers/usb/host/Kconfig (it automatically defines CONFIG_USB_EHCI to keep non converted boards working). So step 1 would be a patch moving sunxi over to stop setting USB_EHCI in CONFIG_SYS_EXTRA_OPTIONS and instead have it use define USB_ARCH_HAS_HCD and use USB_EHCI_HCD please set USB_EHCI_HCD by default in board/sunxi/Kconfig like how we also set a default for e.g. SYS_CLK_FREQ, I think in the initial patch it should have a default of: default y And then later be changed to: default y if !MUSB_HOST As for moving MUSB_HOST / GADGET to Kconfig please coordinate that with Marek. Regards, Hans