コード例 #1
0
static int __devexit rt5033_regulator_remove(struct platform_device *pdev)
{
	struct regulator_dev *rdev = platform_get_drvdata(pdev);
	const struct rt5033_pmic_irq_handler *irq_handler = NULL;
	int irq_handler_size = 0;
    switch (pdev->id)
    {
        case RT5033_ID_LDO_SAFE:
            irq_handler = rt5033_pmic_safeldo_irq_handlers;
            irq_handler_size = ARRAY_SIZE(rt5033_pmic_safeldo_irq_handlers);
            break;
        case RT5033_ID_LDO1:
            irq_handler = rt5033_pmic_ldo_irq_handlers;
            irq_handler_size = ARRAY_SIZE(rt5033_pmic_ldo_irq_handlers);
            break;
        case RT5033_ID_DCDC1:
            irq_handler = rt5033_pmic_buck_irq_handlers;
            irq_handler_size = ARRAY_SIZE(rt5033_pmic_buck_irq_handlers);
            break;
        default:
            pr_err("Error : invalid ID\n");
    }
    unregister_irq(pdev, rdev, irq_handler, irq_handler_size);
	platform_set_drvdata(pdev, NULL);
	regulator_unregister(rdev);
	return 0;
}
コード例 #2
0
static int rt5033_fled_remove(struct platform_device *pdev)
{
	struct rt5033_fled_info *fled_info;
	RT5033_FLED_INFO("Richtek RT5033 FlashLED driver removing...\n");
	fled_info = platform_get_drvdata(pdev);
	unregister_irq(pdev, fled_info);
	platform_device_unregister(&rt_fled_pdev);
	mutex_destroy(&fled_info->led_lock);
	kfree(fled_info);
	return 0;
}