On Wed, Mar 16, 2011 at 10:47:21AM +0100, Alexander Holler wrote:------------
beagle linux # grep -i MUSB .config
CONFIG_USB_MUSB_HDRC=m
# CONFIG_USB_MUSB_TUSB6010 is not set
CONFIG_USB_MUSB_OMAP2PLUS=y
# CONFIG_USB_MUSB_AM35X is not set
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_PERIPHERAL is not set
CONFIG_USB_MUSB_OTG=y
CONFIG_USB_GADGET_MUSB_HDRC=y
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
CONFIG_USB_MUSB_DEBUG=y
beagle linux # modprobe musb_hdrc
FATAL: Error inserting musb_hdrc (/lib/modules/2.6.38-beagleboard-00002-g0017ea0-dirty/kernel/drivers/usb/musb/musb_hdrc.ko):
No such device
beagle linux # tail -n 1 /var/log/messages
Mar 16 10:37:51 beagle kernel: [ 177.302825] musb-hdrc: version 6.0,
musb-dma, otg (peripheral+host), debug=5
beagle linux # ls /sys/devices/platform/ | grep musb
musb-omap2430
------------
The problem in detail:
Through modprobe musb_core.c:musb_init() is called, and this calls
platform_driver_probe() with a pointer to a struct of platform_device
where the name is musb-hdrc.
drivers/base/platform.c:platform_driver_probe() fails with -ENODEV
because it doesn't find a platform device with the name musb-hdrc
(list_empty()) which is understandable because the platform-device
has the name musb-omap2430.
look further, omap2430.c allocates musb-hdrc platform_device. The
problem is a different one.
static int __init omap2430_probe(struct platform_device *pdev)