Help getting USB keyboard active on MPC5200B&In-Reply-To=<GPECLCIGPLHEOMGPMCPAGENCFKAA.edjubenville at>

Michael Carey MCarey at
Tue Sep 9 07:35:17 EST 2008

Hi Ed,

I have duplicated your problem with the Dell keyboard.  
I then connected a Logitech keyboard and that worked.
I added a bunch of debug messages to track what was going on and I ended up in the function usb_find_interface_driver(...) in usb.c.

As far as I can tell, both keyboards are recognized by usb_match_id(...) in usb.c.

In the inner loop of that function;

728   id = usb_match_id(dev, interface, id);
729   if (id) {
730      down(&driver->serialize);
731      private = driver->probe(dev,ifnum,id);
732      up(&driver->serialize);
733      if (private != NULL)
734         Break;
735   }

For the Logitec keyboard, the usb_match_id(...) eventually finds a match and then calls driver->probe

- Result of Logitec probe -
keybdev_connect in drivers/usb/keybdev.c
keybdev.c: Adding keyboard: input1
input: USB HID v10.01 Keyboard [Logitech Logitech USB Keyboard] on usb1:4.0
usb:   usb_find_interface_driver in drivers/usb/usb.c

... and then claims the interface in usb_driver_claim_interface(...)

For the Dell keyboard,  the usb_match_id(...) eventually finds a match and then calls driver->probe.
But in this case, the probe function returns a null and the driver never claims an interface.

I got a little bit stuck after that.  I have not figured out how the probe function works so I was not able to dig deeper.

I do believe that in both cases, the driver name is 'hid' and the id is 0xC02315BC.

I was wondering if anyone else knows how to connect a Dell keyboard to this driver or why it is not accepted by this driver.
Until then, I'm off to 'Keyboards Etc.' to get a Logitech keyboard.

Michael Carey

More information about the Linuxppc-embedded mailing list