完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
该技术点实现的功能:
在rk3288 android5.1平台上,一个USB固定一个ttyUSB节点,例如有4个USB口,则USB0/1/2/3分别固定ttyUSB6/7/8/9. 实现思路: 根据USB的设备名去识别USB串口插入的是哪个U口,再不同的U口给他分配一个不同的节点,具体内容如下 当USB转串设备插入U口,驱动会识别到设备插入到的是哪个口,并把对应口的字符串保存到dev结构体里,对应保存的字符串的内容,可以在插拔USB串口的打印信息中看到: USB转串设备插入第一个USB口,dev名字为2-1,插入第二个USB口名字为4-1.1 ,第三个为4-1.2,第四个为4-1.3 (第一个USB口为原生口,后三个为HUB扩出的口) 在u***-serial.c文件中的get_free_serial函数下,传入dev的name,根据这个name,给串口分配固定的节点: diff --git a/kernel/drivers/u***/serial/u***-serial.c b/kernel/drivers/u***/serial/u***-serial.c index 80d689f0fd..0b17b3e7cd 100644 --- a/kernel/drivers/u***/serial/u***-serial.c +++ b/kernel/drivers/u***/serial/u***-serial.c @@ -79,7 +79,7 @@ struct u***_serial *u***_serial_get_by_index(unsigned index) } static struct u***_serial *get_free_serial(struct u***_serial *serial, - int num_ports, unsigned int *minor) + int num_ports, unsigned int *minor, char * dev_name) { unsigned int i, j; int good_spot; @@ -101,7 +101,23 @@ static struct u***_serial *get_free_serial(struct u***_serial *serial, } if (good_spot == 0) continue; - + + if(!strcmp(dev_name,"2-1")) //USB0 + { + i = 6; + } + else if(!strcmp(dev_name,"4-1.1")) + { + i = 7; + } + else if(!strcmp(dev_name,"4-1.2")) + { + i = 8; + } + else if(!strcmp(dev_name,"4-1.3")) + { + i = 9; + } *minor = i; j = 0; dev_dbg(&serial->interface->dev, "%s - minor base = %dn", __func__, *minor); @@ -1055,8 +1071,9 @@ static int u***_serial_probe(struct u***_interface *interface, * registered. */ serial->disconnected = 1; + - if (get_free_serial(serial, num_ports, &minor) == NULL) { + if (get_free_serial(serial, num_ports, &minor,dev_name(&port->serial->dev->dev)) == NULL) { dev_err(ddev, "No more free serial devicesn"); goto probe_error; } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
739 浏览 0 评论
968 浏览 1 评论
856 浏览 1 评论
2075 浏览 1 评论
3322 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 14:40 , Processed in 0.557275 second(s), Total 41, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号