static int keywest_attach_adapter(struct i2c_adapter *adapter)
 {
        struct i2c_board_info info;
+       struct i2c_client *client;
 
        if (! keywest_ctx)
                return -EINVAL;
        memset(&info, 0, sizeof(struct i2c_board_info));
        strlcpy(info.type, "keywest", I2C_NAME_SIZE);
        info.addr = keywest_ctx->addr;
-       keywest_ctx->client = i2c_new_device(adapter, &info);
-       if (!keywest_ctx->client)
-               return -ENODEV;
+       client = i2c_new_client_device(adapter, &info);
+       if (IS_ERR(client))
+               return PTR_ERR(client);
+       keywest_ctx->client = client;
+
        /*
         * We know the driver is already loaded, so the device should be
         * already bound. If not it means binding failed, and then there