发布时间:2013-06-06 01:06:31
该系列博文是基于高通8260,android版本为相对较新的Android4.0.4,由于高通的整个android usb子系统是一个整体,所以有一个框架支撑着整个体系结构。下面先大致说下该框架的结构: 该框架有以下三部分组成: 1、otg控制器。 2、主机控制器。 3、设备控制器。 三个控制器中,其中otg控制器是核心,控制着整个的调度过程,决定在某个时候,是启动主机控制器还是设备控制器。 1、当启动主机控制器的时候,就是我们的设备作为主机,例如:我们的手机上面可以接U盘,数码相机等,直接可以读取U盘上面的数据。 2、当启动设备控制器的时候,就是我们的设备作为外设,例如: 我......【阅读全文】
发布时间:2013-06-06 01:06:26
三大控制器已经分析一个啦,下面接着第一篇分析,这篇分析下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[] ......【阅读全文】
发布时间:2013-06-06 01:06:21
接着上一篇看,第三大设备控制器的注册: //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 &......【阅读全文】
发布时间:2013-06-06 01:06:21
接着上一篇看,第三大设备控制器的注册: //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 &......【阅读全文】
发布时间:2013-06-06 01:06:15
下面看下三大控制器的配合: /*在设备控制器注册的最后,调用了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......【阅读全文】