Lines Matching defs:serio
3 * GPIO based serio bus driver for bit banging the PS/2 protocol
11 #include <linux/serio.h>
73 struct serio *serio;
96 static int ps2_gpio_open(struct serio *serio)
98 struct ps2_gpio_data *drvdata = serio->port_data;
107 static void ps2_gpio_close(struct serio *serio)
109 struct ps2_gpio_data *drvdata = serio->port_data;
115 static int __ps2_gpio_write(struct serio *serio, unsigned char val)
117 struct ps2_gpio_data *drvdata = serio->port_data;
130 static int ps2_gpio_write(struct serio *serio, unsigned char val)
132 struct ps2_gpio_data *drvdata = serio->port_data;
137 __ps2_gpio_write(serio, val);
143 __ps2_gpio_write(serio, val);
247 serio_interrupt(drvdata->serio, byte, rxflags);
263 __ps2_gpio_write(drvdata->serio, PS2_CMD_RESEND);
358 __ps2_gpio_write(drvdata->serio, drvdata->tx.byte);
403 struct serio *serio;
408 serio = kzalloc(sizeof(struct serio), GFP_KERNEL);
409 if (!drvdata || !serio) {
439 /* Keep irq disabled until serio->open is called. */
442 serio->id.type = SERIO_8042;
443 serio->open = ps2_gpio_open;
444 serio->close = ps2_gpio_close;
449 serio->write = drvdata->write_enable ? ps2_gpio_write : NULL;
450 serio->port_data = drvdata;
451 serio->dev.parent = dev;
452 strscpy(serio->name, dev_name(dev), sizeof(serio->name));
453 strscpy(serio->phys, dev_name(dev), sizeof(serio->phys));
455 drvdata->serio = serio;
469 serio_register_port(serio);
475 kfree(serio);
483 serio_unregister_port(drvdata->serio);