QUICC Engine USB Host controller

Guilherme Maciel Ferreira guilherme.maciel.ferreira at gmail.com
Wed Jun 13 08:26:10 EST 2012


Hi guys,

I'm struggling to make the QUICC engine USB host controller to work.
Thus, I came here in the hope to get some light =)

I am working on MPC8321 processor and kernel 2.6.32. Comparing against
the mainstream version, I applied some patches to fix some pŕoblems in
the FHCI driver, then it got running.

Now, it seems that the driver detects a new device, but is not able to
get its description. I'm aware that the driver uses the timer to
synchronize its packets exchange, but I couldn't find the proper timer
clock frequency. I've already tried every value I could derive from
the documentation, once as long as I am concerned there is no way to
measure it.

Here follows a relevant dmesg USB driver output, where there is a timeout error:

[   24.396373] usbcore: registered new interface driver usbfs
[   24.405860] usbcore: registered new interface driver hub
[   24.414642] usbcore: registered new device driver usb
[   24.706132] fsl,usb-fhci e01006c0.usb: at 0xcbaf66c0, irq 23
[   24.721953] fsl,usb-fhci e01006c0.usb: FHCI HOST Controller
[   24.734528] fsl,usb-fhci e01006c0.usb: new USB bus registered,
assigned bus number 1
[   24.745942] fsl,usb-fhci e01006c0.usb: irq 23, io mem 0x00000000
[   24.853738] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[   24.860623] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[   24.867902] usb usb1: Product: FHCI HOST Controller
[   24.872836] usb usb1: Manufacturer: Linux 2.6.32 fsl,usb-fhci
[   24.878633] usb usb1: SerialNumber: e01006c0.usb
[   24.937686] usb usb1: configuration #1 chosen from 1 choice
[   24.957830] hub 1-0:1.0: USB hub found
[   24.968867] hub 1-0:1.0: 1 port detected
[   25.367766] usb 1-1: new full speed USB device using fsl,usb-fhci
and address 2
[   25.531795] usb 1-1: device descriptor read/64, error -110
[   25.787864] usb 1-1: device descriptor read/64, error -110
[   26.024464] usb 1-1: new full speed USB device using fsl,usb-fhci
and address 3
[   26.199736] usb 1-1: device descriptor read/64, error -110
[   26.455838] usb 1-1: device descriptor read/64, error -110
[   26.688100] usb 1-1: new full speed USB device using fsl,usb-fhci
and address 4
[   27.123765] usb 1-1: device not accepting address 4, error -110
[   27.271797] usb 1-1: new full speed USB device using fsl,usb-fhci
and address 5
[   27.712333] usb 1-1: device not accepting address 5, error -110
[   27.735892] hub 1-0:1.0: unable to enumerate USB device on port 1


And here follows a snippet from my device tree:

qe at e0100000 {
	#address-cells = <1>;
	#size-cells    = <1>;
	device_type = "qe";
	compatible = "fsl,qe";
	reg = <0xe0100000 0x480>;
	ranges = <0x0 0xe0100000 0x100000>;
	brg-frequency = <0>;
	bus-frequency = <0>;

	timer at 440 {
		compatible = "fsl,mpc8321-qe-gtm",
			             "fsl,mpc8360-qe-gtm",
			             "fsl,qe-gtm", "fsl,gtm";
		reg = <0x440 0x40>; // 64 bytes @ offset 0x000440
		interrupts = <12 13 14 15>;
		interrupt-parent = <&qeic>;
		clock-frequency = <100000000>; // 100 MHz???
	};

	usb at 6C0 {
		#address-cells = <1>;
		#size-cells    = <0>;
		compatible = "fsl,mpc8321-qe-usb",
			             "fsl,mpc8323-qe-usb",
			             "fsl,mpc8360-qe-usb";
		reg = <0x6c0 0x40 0x700 0x100>;
		interrupts = <11>;
		interrupt-parent = <&qeic>;
		mode = "host";
		fsl,fullspeed-clock = "clk3";
		hub-power-budget = "100";
		gpios = <
			&qe_pio_a  8 0	// USBOE
			&qe_pio_a  1 0	// USBTXP
			&qe_pio_a  0 0	// USBTXN
			&qe_pio_a  4 0	// USBRXP
			&qe_pio_a  5 0	// USBRXN
			&qe_pio_d 21 1	// SPEED
			&qe_pio_d 25 0	// POWER/SUSPEND
		>;
	};
};

Thanks in advance for anyone willing to help me.

Best regards,

-- 
Guilherme Maciel Ferreira
Site: http://guilhermemacielferreira.com/


More information about the Linuxppc-dev mailing list