#define DRIVER "i2c-pca-isa"
 #define IO_SIZE 4
 
-static unsigned long base   = 0x330;
-static int irq           = 10;
+static unsigned long base;
+static int irq = -1;
 
 /* Data sheet recommends 59kHz for 100kHz operation due to variation
  * in the actual clock rate */
        .timeout        = 100,
 };
 
+static int __devinit pca_isa_match(struct device *dev, unsigned int id)
+{
+       int match = base != 0;
+
+       if (match) {
+               if (irq <= -1)
+                       dev_warn(dev, "Using polling mode (specify irq)\n");
+       } else
+               dev_err(dev, "Please specify I/O base\n");
+
+       return match;
+}
+
 static int __devinit pca_isa_probe(struct device *dev, unsigned int id)
 {
        init_waitqueue_head(&pca_wait);
 {
        i2c_del_adapter(&pca_isa_ops);
 
-       if (irq > 0) {
+       if (irq > -1) {
                disable_irq(irq);
                free_irq(irq, &pca_isa_ops);
        }
 }
 
 static struct isa_driver pca_isa_driver = {
+       .match          = pca_isa_match,
        .probe          = pca_isa_probe,
        .remove         = __devexit_p(pca_isa_remove),
        .driver = {