Messages in this thread | | | Date | Tue, 19 Jun 2007 14:59:34 -0400 | From | "Dmitry Torokhov" <> | Subject | Re: Writing a driver for a legacy serial device |
| |
Hi Jean,
On 6/19/07, Jean Delvare <khali@linux-fr.org> wrote: > Hi all, > > I want to write a Linux kernel driver for a device which connects to > the legacy serial port. I started writing a driver, however I am > already stuck at the very beginning. The .connect function of my serial > driver is never called, and I just don't get why. I couldn't find any > documentation about writing such a legacy driver in Documentation nor > in LDD3. Is there anyone out there which could lend a helping hand? > > I know that the device and my serial port both work. I can talk to the > device using minicom just fine. I have the following drivers loaded: > > $ lsmod | grep 8250 > 8250_pnp 11648 0 > 8250 23464 1 8250_pnp > serial_core 19392 1 8250 > > Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled > 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A > > But I need to implement my driver in kernel space. My code looks like > this: > > static struct serio_device_id taos_serio_ids[] = { > { > .type = SERIO_RS232, > .proto = SERIO_ANY, > .id = SERIO_ANY, > .extra = SERIO_ANY, > }, > { 0 } > }; > MODULE_DEVICE_TABLE(serio, taos_serio_ids); > > static struct serio_driver taos_drv = { > .driver = { > .name = "taos-evm", > }, > .description = "TAOS evaluation module driver", > .id_table = taos_serio_ids, > .connect = taos_connect, > .disconnect = taos_disconnect, > .interrupt = taos_interrupt, > }; > > static int __init taos_init(void) > { > return serio_register_driver(&taos_drv); > } > > static void __exit taos_exit(void) > { > serio_unregister_driver(&taos_drv); > } > > The problem is that taos_connect is never called. I suppose that I need > different values for .type, .proto or .id, except that I just don't > know what to put there. I tried a few random values without success. > What's the trick? >
You need to load serport modue and play with inputattach utility.
-- Dmitry - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |