strncpy(info.type, type, sizeof(info.type));
        info.addr = addr;
-       newdev = i2c_new_device(adap, &info);
-       if (!newdev)
+       newdev = i2c_new_client_device(adap, &info);
+       if (IS_ERR(newdev))
                dev_err(&adap->dev,
                        "i2c-powermac: Failure to register missing %s\n",
                        type);
                info.irq = irq_of_parse_and_map(node, 0);
                info.of_node = of_node_get(node);
 
-               newdev = i2c_new_device(adap, &info);
-               if (!newdev) {
+               newdev = i2c_new_client_device(adap, &info);
+               if (IS_ERR(newdev)) {
                        dev_err(&adap->dev, "i2c-powermac: Failure to register"
                                " %pOF\n", node);
                        of_node_put(node);