CH35X的Linux驱动

手上有一块CH350L的PCI转串口卡,最近想写一个CH350L的驱动,但是在网站上找不到CH350的资料,只有CH352的,不知道两者是否兼容?

兼容的 驱动就用CH35XDRV 中的 LINUX 驱动


I bought a cheap CH350 based PCI to parallel port card (CH3501P) I found driver from this thread http://wch.cn/bbs/View.asp?S=102&I=37200 and then download here http://wch.cn/download/list.asp?id=112

Unfortunately this driver is not fully functional, because it only support serial port.

The following thread could get the parallel port card work without driver. http://ubuntuforums.org/showthread.php?t=1233589 The side effect is it caused serious interrupt strom(中断风暴). When pin 10 (ACK pin) got a assert signal (from low to high TTL value), the card generates infinit interrupts, just as described in the following two thread: http://lists.nongnu.org/archive/html/avrdude-dev/2010-08/msg00009.html http://lists.infradead.org/pipermail/linux-parport/2010-August/000711.html

Disable the parport interrupt by set status register (with address base +1) bit 4 (Enable IRQ Via Ack Line bit) to 0 or just call parport_pc_disable_irq(p) does not really work, because the infinit interrupts immediately come again when set this bit to 1. My workaround is to read the status register once, and the interrupts just stops.

--- a/DRV_1P/LINUX/driver/wch_main.c 2011-03-23 09:17:44.000000000 +0800 +++ b/DRV_1P/LINUX/driver/wch_main.c 2012-03-24 16:12:22.340370693 +0800 @@ -174,8 +202,30 @@ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) int handled = IRQ_NONE; #endif + if ((inb(0xc801) & 4) != 0) {//This inb()stops the irq storm, 0xc800 is the base addr + return handled; + } for (i = 0; i < WCH_BOARDS_MAX; i++) { if (dev_id == &(wch_board_table[i]))

This just stops the interrupt, but did not really bring interrupt handle. parport_irq()should be called here. Hope official driver could support it.


没有提供并口驱动,该驱动只支持异步串口!


请问,DRV-1P不是并口驱动吗?


请问并口驱动到哪里下载?


Linux 相关问题可以直接联系 Linux工程师 Email : szk@wch.cn Phone : 025-52638363


只有登录才能回复,可以选择微信账号登录