platform_set_drvdata(pdev, gpio);
 
-       err = gpiochip_add_data(&gpio->chip, gpio);
+       err = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio);
        if (err) {
                dev_err(&pdev->dev,
                        "failed to register gpiochip.\n");
        return err;
 }
 
-static int xgene_gpio_remove(struct platform_device *pdev)
-{
-       struct xgene_gpio *gpio = platform_get_drvdata(pdev);
-
-       gpiochip_remove(&gpio->chip);
-       return 0;
-}
-
 static const struct of_device_id xgene_gpio_of_match[] = {
        { .compatible = "apm,xgene-gpio", },
        {},
                .pm     = XGENE_GPIO_PM_OPS,
        },
        .probe = xgene_gpio_probe,
-       .remove = xgene_gpio_remove,
 };
 
 module_platform_driver(xgene_gpio_driver);