-static int __devinit bpp_probe(struct of_device *dev, const struct of_device_id *match)
-{
- struct sbus_dev *sdev = to_sbus_device(&dev->dev);
-
- return init_one_port(sdev);
-}
-
-static int __devexit bpp_remove(struct of_device *dev)
-{
- struct parport *p = dev_get_drvdata(&dev->dev);
- struct parport_operations *ops = p->ops;
-
- parport_remove_port(p);
-
- if (p->irq != PARPORT_IRQ_NONE) {
- parport_sunbpp_disable_irq(p);
- free_irq(p->irq, p);
- }
-
- sbus_iounmap((void __iomem *) p->base, p->size);
- parport_put_port(p);
- kfree(ops);
-
- dev_set_drvdata(&dev->dev, NULL);
-
- return 0;
-}
-
-static struct of_device_id bpp_match[] = {
- {
- .name = "SUNW,bpp",
- },
- {},
-};
-
-MODULE_DEVICE_TABLE(of, bpp_match);
-
-static struct of_platform_driver bpp_sbus_driver = {
- .name = "bpp",
- .match_table = bpp_match,
- .probe = bpp_probe,
- .remove = __devexit_p(bpp_remove),
-};
-