From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.10]) by ozlabs.org (Postfix) with ESMTP id CBF27B7122 for ; Sat, 19 Feb 2011 19:53:00 +1100 (EST) Date: Sat, 19 Feb 2011 09:52:53 +0100 From: Anatolij Gustschin To: "Matthew L. Creech" Subject: Re: fsl_udc_core not initializing properly? Message-ID: <20110219095253.39540a57@wker> In-Reply-To: References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Cc: linuxppc-dev@lists.ozlabs.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hi, On Fri, 18 Feb 2011 17:03:12 -0500 "Matthew L. Creech" wrote: ... > I'm upgrading from 2.6.36 to 2.6.37 on a MPC8313 ERDB-like board. On > the new kernel, it seems like the USB gadget driver (fsl_usb2_udc) is > never initialized, so USB no longer works. > > Adding some printks to the code shows that udc_init() is being run, > which calls platform_driver_probe(). However, fsl_udc_probe() is > never actually called afterward. As a result, 'udc_controller' is > left NULL, and the subsequent call to usb_gadget_probe_driver() > returns -ENODEV. Look at the USB node in the device tree for your board. Does it contain the "dr_mode" property? For USB gadget the value of this property should be "peripheral". The device tree for MPC8313 ERDB in mainline tree doesn't specify this property, so the host mode is the default operation mode here. Therefore the platform device "fsl-usb2-udc" won't be created while booting and since there is no appropriate platform device, the probing is not done. This might be the case on your board, too. Try with dr_mode = "peripheral"; in the usb node in your device tree. Anatolij