On Mon, Apr 22, 2013 at 10:48 AM, Felipe Balbi <balbi@xxxxxx> wrote: > Hi, > > On Mon, Apr 22, 2013 at 10:18:20AM +0300, yehuda yitchak wrote: >> Hello everyone >> >> I want to ask your advice on the best approach for implementing a new >> XHCI host controller. >> I am going to add Linux support for a new XHCI host controller for Marvell SOCs. >> >> I looked around the latest XHCI support code in the kernel and found >> that a platform driver called “xhci-hcd” exists. >> >> And there is also one XHCI device (DRD dwc3 used by Samsung and TI) >> that bounds to this driver. >> >> My case is somewhat simpler than the dwc3 since it’s not a Dual Role Device. >> Basically I need to initialize some SOC level registers and then >> register an xhci-hcd device. Also I need to implement suspend/resume >> hooks to save and restore the SOC registers initialized at the probe >> function. >> >> I was thinking to take the following approach: >> >> 1. Under drivers/usb/host - Register a new platform driver called >> “xhci-mv” which will initialize the SOC specific stuff and register an >> “xhci-hcd” platform device. > > no new xhci-mv. Reuse xhci-plat.c which is supposed to be generic. Then where am i supposed to initialize the SOC specific stuff For example in the host controller we have some registers that map the access to the DRAM space. i need a probe, suspend and resume hook to initialize them to save and restore them among other stuff. > >> 2. In the machine code – Register an “xhci-mv” platform device and >> initialize its resources based on device tree. > > right, except that you should use xhci-plat. > > -- > balbi -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html