/* Allocate and initialize serio structure for subsequent registration with serio core.  */
static int __devinit rpckbd_probe(struct platform_device *dev)
/* Allocate and initialize serio structure for subsequent registration with serio core.  */
static int __devinit rpckbd_probe(struct platform_device *dev)
{
	struct serio *serio;
	serio = kzalloc(sizeof(struct serio), GFP_KERNEL);
	if (!serio)
		return -ENOMEM;
	serio->id.type		= SERIO_8042;
	serio->write		= rpckbd_write;
	serio->open		= rpckbd_open;
	serio->close		= rpckbd_close;
	serio->dev.parent	= &dev->dev;
	strlcpy(serio->name, "RiscPC PS/2 kbd port", sizeof(serio->name));
	strlcpy(serio->phys, "rpckbd/serio0", sizeof(serio->phys));
	platform_set_drvdata(dev, serio);
	serio_register_port(serio);
	return 0;
}