cpcap->regulator_pdev[i] = pdev;
}
- for (i = 0; i < CPCAP_NUM_REGULATORS; i++) {
- /* vusb has to be added after sw5 so skip it for now,
- * it will be added from probe of sw5 */
- if (i == CPCAP_VUSB)
- continue;
+ for (i = 0; i < CPCAP_NUM_REGULATORS; i++)
platform_device_add(cpcap->regulator_pdev[i]);
- }
platform_add_devices(cpcap_devices, ARRAY_SIZE(cpcap_devices));
}
regulator_set_voltage(data->regulator, 3300000, 3300000);
- retval = cpcap_irq_register(data->cpcap, CPCAP_IRQ_CHRG_DET,
- whisper_int_handler, data);
+ retval = cpcap_irq_clear(data->cpcap, CPCAP_IRQ_CHRG_DET);
+ retval |= cpcap_irq_clear(data->cpcap, CPCAP_IRQ_IDFLOAT);
+ retval |= cpcap_irq_clear(data->cpcap, CPCAP_IRQ_IDGND);
+
+ retval |= cpcap_irq_register(data->cpcap, CPCAP_IRQ_CHRG_DET,
+ whisper_int_handler, data);
retval |= cpcap_irq_register(data->cpcap, CPCAP_IRQ_IDFLOAT,
whisper_int_handler, data);
retval |= cpcap_irq_register(data->cpcap, CPCAP_IRQ_IDGND,
/* this is ok since the cpcap is still reachable from the rdev */
platform_set_drvdata(pdev, rdev);
- if (pdev->id == CPCAP_SW5) {
- init = cpcap->regulator_pdev[CPCAP_VUSB]->dev.platform_data;
- init->supply_regulator_dev = rdev_get_dev(rdev);
- platform_device_add(cpcap->regulator_pdev[CPCAP_VUSB]);
- }
-
return 0;
}