发布时间:2015-11-17 09:52:20
三大控制器已经分析一个啦,下面接着第一篇分析,这篇分析下usb主机控制器设备与驱动的注册: //代码路径Devices-msm8x60.c (arch\arm\mach-msm)//主机控制器平台设备的注册#define IORESOURCE_MEM 0x00000200#define IORESOURCE_IRQ 0x00000400 static u64 dma_mask = 0xffffffffULL;#ifdef CONFIG_USB_EHCI_MSM_72Kstatic struct resource resources_hsusb_host[] ......【阅读全文】
发布时间:2015-11-17 09:52:07
接着上一篇看,第三大设备控制器的注册: //Devices-msm8x60.c (arch\arm\mach-msm)//udc设备控制器注册static u64 dma_mask = 0xffffffffULL;struct platform_device msm_device_gadget_peripheral = {//usb设备控制器平台设备 .name = "msm_hsusb", .id = -1, .dev = { .dma_mask &......【阅读全文】
发布时间:2015-11-17 09:52:04
下面看下三大控制器的配合: /*在设备控制器注册的最后,调用了msm_otg_set_peripheral ()*/static int msm_otg_set_peripheral(struct otg_transceiver *xceiv, struct usb_gadget *gadget){ struct msm_otg *dev = container_of(xceiv, struct msm_otg, otg); .................... dev->otg.gadget = gadget;//初始化收发器 pr_i......【阅读全文】
发布时间:2015-11-17 09:52:01
下面继续看设备控制器,设备控制器的启动过程,以及枚举,充电的整个流程。//启动设备控制器msm_otg_start_peripheral(&dev->otg, 1);//启动设备控制器static void msm_otg_start_peripheral(struct otg_transceiver *xceiv, int on){ struct msm_otg *dev = container_of(xceiv, struct msm_otg, otg); struct msm_otg_platform_data *pdata = dev->pdat......【阅读全文】