天嵌 ARM开发社区

 找回密码
 注册
查看: 1877|回复: 2

usb pl2303 驱动求教

[复制链接]
薄荷叶 发表于 2013-9-17 13:38:23 | 显示全部楼层 |阅读模式

Dear All:
           
          学习usb 的驱动,看了一下Pl2303 usb转串口的驱动 文件为:drivers\usb\serial\pl2303.c,其中 在pl2303_startup()中有:

        pl2303_vendor_read(0x8484, 0, serial, buf);
        pl2303_vendor_write(0x0404, 0, serial);
        pl2303_vendor_read(0x8484, 0, serial, buf);
        pl2303_vendor_read(0x8383, 0, serial, buf);
        pl2303_vendor_read(0x8484, 0, serial, buf);
        pl2303_vendor_write(0x0404, 1, serial);
        pl2303_vendor_read(0x8484, 0, serial, buf);
        pl2303_vendor_read(0x8383, 0, serial, buf);
        pl2303_vendor_write(0, 1, serial);
        pl2303_vendor_write(1, 0, serial);

其中 static int pl2303_vendor_read(__u16 value, __u16 index,
                struct usb_serial *serial, unsigned char *buf)
{
        int res = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
                        VENDOR_READ_REQUEST, VENDOR_READ_REQUEST_TYPE,
                        value, index, buf, 1, 100);
        dbg("0x%x:0x%x:0x%x:0x%x  %d - %x", VENDOR_READ_REQUEST_TYPE,
                        VENDOR_READ_REQUEST, value, index, res, buf[0]);
        return res;
}

这些代码,小弟深深的陷入进来不明白了,      pl2303_vendor_read(0x8484, 0, serial, buf); 是一个清除请求,0x8484,这个value值 是怎么得来的?是初始化硬件?还是USB设备请求 规定的?
亚瑟王 发表于 2013-9-17 14:09:38 | 显示全部楼层
估计是用来初始化硬件的.
285775113 发表于 2013-9-27 15:11:16 | 显示全部楼层
本帖最后由 285775113 于 2013-9-27 17:16 编辑

楼主,USB驱动怎么学啊,工作一年了没接触USB,USB协议倒是会一点点,有资料提供一下把。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-10-4 14:29 , Processed in 1.017617 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表