On 02.03.2013 17:05, Koen Kooi wrote: > On Fri, 2013-03-01 at 22:57 +0100, Daniel Mack wrote: >> Hi Afzal, everyone, >> >> On 03.11.2012 08:33, Mohammed, Afzal wrote: >>> * Daniel Mack, November 03, 2012 1:06 AM: >>> >>>> I'm testing these patches with an AM33xx board that has the first musb >>>> port wired to an USB type A plug, but it doesn't yet work for me. >>> >>>> So there is no host interface registered. I'm unsure on how to fix this, >>>> and I didn't get an answer yet to that question when I asked Felipe >>>> about how interface drivers like dsps are supposed to act in order to >>>> get host mode back after the recent musb cleanups. >>> >>>> What type of hardware do you test this with? Does host mode work for you? >>> >>> To add to those details mentioned by Ravi, >>> >>> This was tested on Beagle Bone with USB0 as usb-ethernet. >>> >>> For purely Kernel part, this series is sufficient (along with >>> dependency mentioned in cover letter), considering >>> the fact that dt node is strictly not a part of Kernel. >>> >>> To test this series, node for usbss should be present in dt. >>> Example in dt documentation can be pasted onto dtsi file >>> to get USB0 working. >> >> I have to pick up this old thread because I'm still having trouble >> understanding how the AM335x musb driver is meant to be used as HCD. >> >> I used to have it working based on 3.7 with a terrible hack that reverts >> a couple of old commits partly. Now I started over with a fresh setup >> based on Linus' current soon-to-be 3.9-rc tip, actually hoping that the >> issues are solved. >> >> On my board, the USB is purely used as host interface, with a type B >> plug soldered. In the DT, I'm using the following sniplet in accordance >> to the documentation of the bindings: >> >> usb_otg_hs: usb@47400000 { >> compatible = "ti,musb-am33xx"; >> reg = <0x47400000 0x1000 /* usbss */ >> 0x47401000 0x800 /* musb instance 0 */ >> 0x47401800 0x800>; /* musb instance 1 */ >> interrupt-parent = <&intc>; >> interrupts = <17 /* usbss */ >> 18 /* musb instance 0 */ >> 19>; /* musb instance 1 */ >> multipoint = <1>; >> num-eps = <16>; >> ram-bits = <12>; >> port0-mode = <3>; >> port1-mode = <3>; >> power = <250>; >> ti,hwmods = "usb_otg_hs"; >> }; >> >> The relevant config options are >> >> CONFIG_USB_MUSB_HDRC=y >> # CONFIG_USB_MUSB_TUSB6010 is not set >> # CONFIG_USB_MUSB_OMAP2PLUS is not set >> # CONFIG_USB_MUSB_AM35X is not set >> CONFIG_USB_MUSB_DSPS=y >> CONFIG_MUSB_PIO_ONLY=y >> CONFIG_USB_GADGET=y >> CONFIG_USB_GADGET_DEBUG=y >> CONFIG_USB_GADGET_DEBUG_FILES=y >> CONFIG_USB_GADGET_DEBUG_FS=y >> CONFIG_USB_GADGET_VBUS_DRAW=2 >> CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 >> CONFIG_USB_GADGET_MUSB_HDRC=y >> # CONFIG_USB_GADGETFS is not set >> # CONFIG_USB_MIDI_GADGET is not set >> CONFIG_USB_ZERO=m >> >> At boot time, I only see the following message: >> >> [ 1.534776] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host) >> >> And when g_zero.ko is loaded, I get: >> >> [ 12.137023] udc musb-hdrc.0.auto: registering UDC driver [zero] >> [ 12.196906] gadget: adding 'source/sink'/cec4e840 to config >> 'source/sink'/bf00d544 >> [ 12.205800] gadget: dual speed source/sink: IN/ep1in, OUT/ep1out, >> ISO-IN/ep13, ISO-OUT/ep14 >> [ 12.215862] gadget: adding 'loopback'/cec4e7c0 to config >> 'loopback'/bf00d5b8 >> [ 12.224321] gadget: dual speed loopback: IN/ep1in, OUT/ep1out >> [ 12.231323] gadget: Gadget Zero, version: Cinco de Mayo 2008 >> [ 12.238164] gadget: zero ready >> [ 12.242250] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver >> [ 12.249111] musb-hdrc musb-hdrc.0.auto: new USB bus registered, >> assigned bus number 1 >> [ 12.258151] musb-hdrc musb-hdrc.0.auto: supports USB remote wakeup >> [ 12.265507] usb usb1: default language 0x0409 >> [ 12.271007] usb usb1: udev 1, busnum 1, minor = 0 >> [ 12.276699] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 >> [ 12.284632] usb usb1: New USB device strings: Mfr=3, Product=2, >> SerialNumber=1 >> [ 12.292992] usb usb1: Product: MUSB HDRC host driver >> [ 12.298959] usb usb1: Manufacturer: Linux 3.8.0-10238-gbfbdcec-dirty >> musb-hcd >> [ 12.307166] usb usb1: SerialNumber: musb-hdrc.0.auto >> [ 12.323645] usb usb1: no of_node; not parsing pinctrl DT >> [ 12.330172] usb usb1: usb_probe_device >> [ 12.335181] usb usb1: configuration #1 chosen from 1 choice >> [ 12.342090] usb usb1: adding 1-0:1.0 (config #1, interface 0) >> [ 12.355237] hub 1-0:1.0: no of_node; not parsing pinctrl DT >> [ 12.361988] hub 1-0:1.0: usb_probe_interface >> [ 12.367497] hub 1-0:1.0: usb_probe_interface - got id >> [ 12.373774] hub 1-0:1.0: USB hub found >> [ 12.378631] hub 1-0:1.0: 1 port detected >> [ 12.383515] hub 1-0:1.0: standalone hub >> [ 12.388330] hub 1-0:1.0: individual port power switching >> [ 12.394599] hub 1-0:1.0: no over-current protection >> [ 12.400497] hub 1-0:1.0: Single TT >> [ 12.404770] hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns) >> [ 12.412203] hub 1-0:1.0: power on to power good time: 10ms >> [ 12.418776] hub 1-0:1.0: local power source is good >> [ 12.424812] hub 1-0:1.0: enabling power on all ports >> [ 12.527985] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000 >> [ 12.533836] hub 1-0:1.0: hub_suspend >> [ 12.537634] usb usb1: bus auto-suspend, wakeup 1 >> >> ... but lsusb only shows the root hub, not the device which is connected >> to the plug. >> >> Also, when statically compiled into the kernel, the zero gadget driver >> fails initialization with error code -2, but that's probably a whole >> different story. Eventually, what I need is USB host support without >> loading any module, as I boot the rootfs from USB under some circumstances. >> >> I'm not sure what I'm missing here. Is there anything that needs extra >> configuration to get this going? Is it worth debugging this deeper, or >> is anyone else facing the same problem? > > For 3.8 I use the following hack on beaglebone: > https://github.com/beagleboard/kernel/blob/3.8/patches/usb/0009-MUSB-Hack-around-to-make-host-port-to-work.patch > > It's only a partial solution but better than nothing :) Yeah, I've seen that, but that doesn't work as expected anymore on 3.9, and also I believe that there must be a clean solution to this ... Thanks, Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html