int ret;
 
        if (page > 1)
-               return -EINVAL;
+               return -ENXIO;
 
        /* Map READ_VAUX into READ_VOUT register on page 1 */
        if (page == 1) {
                        break;
                default:
                        /* No other valid registers on page 1 */
-                       ret = -EINVAL;
+                       ret = -ENXIO;
                        break;
                }
                goto done;
        int ret;
 
        if (page > 1)
-               return -EINVAL;
+               return -ENXIO;
 
        switch (reg) {
        case PMBUS_IIN_OC_WARN_LIMIT:
 static int lm25066_write_byte(struct i2c_client *client, int page, u8 value)
 {
        if (page > 1)
-               return -EINVAL;
+               return -ENXIO;
 
        if (page == 0)
                return pmbus_write_byte(client, 0, value);
 
                rv = i2c_smbus_write_byte_data(client, PMBUS_PAGE, page);
                newpage = i2c_smbus_read_byte_data(client, PMBUS_PAGE);
                if (newpage != page)
-                       rv = -EINVAL;
+                       rv = -EIO;
                else
                        data->currpage = page;
        }
                        return status;
        }
        if (reg >= PMBUS_VIRT_BASE)
-               return -EINVAL;
+               return -ENXIO;
        return pmbus_write_word_data(client, page, reg, word);
 }
 
                        return status;
        }
        if (reg >= PMBUS_VIRT_BASE)
-               return -EINVAL;
+               return -ENXIO;
        return pmbus_read_word_data(client, page, reg);
 }
 
        if (status < 0 || (status & PB_STATUS_CML)) {
                status2 = pmbus_read_byte_data(client, -1, PMBUS_STATUS_CML);
                if (status2 < 0 || (status2 & PB_CML_FAULT_INVALID_COMMAND))
-                       return -EINVAL;
+                       return -EIO;
        }
        return 0;
 }
        if (info->pages <= 0 || info->pages > PMBUS_PAGES) {
                dev_err(&client->dev, "Bad number of PMBus pages: %d\n",
                        info->pages);
-               ret = -EINVAL;
+               ret = -ENODEV;
                goto out_data;
        }
 
 
        switch (reg) {
        case PMBUS_FAN_CONFIG_12:
                if (page)
-                       return -EINVAL;
+                       return -ENXIO;
 
                ret = ucd9000_get_fan_config(client, 0);
                if (ret < 0)
                break;
        case PMBUS_FAN_CONFIG_34:
                if (page)
-                       return -EINVAL;
+                       return -ENXIO;
 
                ret = ucd9000_get_fan_config(client, 2);
                if (ret < 0)