Re: [PATCH 0/5] usb: musb: am335x support

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

 



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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux