mfd: 88pm800: Initialize mask_invert
[deliverable/linux.git] / drivers / mfd / 88pm800.c
index 582bda543520dcbde0f6baaae86d5f9b626787f0..cca63f255d53de66965cc49d7053ee934c80a297 100644 (file)
@@ -362,6 +362,7 @@ static struct regmap_irq_chip pm800_irq_chip = {
        .status_base = PM800_INT_STATUS1,
        .mask_base = PM800_INT_ENA_1,
        .ack_base = PM800_INT_STATUS1,
+       .mask_invert = 1,
 };
 
 static int pm800_pages_init(struct pm80x_chip *chip)
@@ -528,24 +529,26 @@ static int pm800_probe(struct i2c_client *client,
        subchip->gpadc_page_addr = pdata->gpadc_page_addr;
        chip->subchip = subchip;
 
-       ret = device_800_init(chip, pdata);
-       if (ret) {
-               dev_err(chip->dev, "%s id 0x%x failed!\n", __func__, chip->id);
-               goto err_subchip_alloc;
-       }
-
        ret = pm800_pages_init(chip);
        if (ret) {
                dev_err(&client->dev, "pm800_pages_init failed!\n");
                goto err_page_init;
        }
 
+       ret = device_800_init(chip, pdata);
+       if (ret) {
+               dev_err(chip->dev, "%s id 0x%x failed!\n", __func__, chip->id);
+               goto err_device_init;
+       }
+
        if (pdata->plat_config)
                pdata->plat_config(chip, pdata);
 
+       return 0;
+
+err_device_init:
+       pm800_pages_exit(chip);
 err_page_init:
-       mfd_remove_devices(chip->dev);
-       device_irq_exit_800(chip);
 err_subchip_alloc:
        pm80x_deinit();
 out_init:
@@ -567,7 +570,7 @@ static int pm800_remove(struct i2c_client *client)
 
 static struct i2c_driver pm800_driver = {
        .driver = {
-               .name = "88PM80X",
+               .name = "88PM800",
                .owner = THIS_MODULE,
                .pm = &pm80x_pm_ops,
                },
This page took 0.048948 seconds and 5 git commands to generate.