diff options
Diffstat (limited to 'drivers/nvmem/vf610-ocotp.c')
-rw-r--r-- | drivers/nvmem/vf610-ocotp.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/nvmem/vf610-ocotp.c b/drivers/nvmem/vf610-ocotp.c index 5ae9e002f195..4662309489db 100644 --- a/drivers/nvmem/vf610-ocotp.c +++ b/drivers/nvmem/vf610-ocotp.c @@ -217,21 +217,13 @@ static const struct of_device_id ocotp_of_match[] = { }; MODULE_DEVICE_TABLE(of, ocotp_of_match); -static int vf610_ocotp_remove(struct platform_device *pdev) -{ - struct vf610_ocotp *ocotp_dev = platform_get_drvdata(pdev); - - return nvmem_unregister(ocotp_dev->nvmem); -} - static int vf610_ocotp_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct resource *res; struct vf610_ocotp *ocotp_dev; - ocotp_dev = devm_kzalloc(&pdev->dev, - sizeof(struct vf610_ocotp), GFP_KERNEL); + ocotp_dev = devm_kzalloc(dev, sizeof(struct vf610_ocotp), GFP_KERNEL); if (!ocotp_dev) return -ENOMEM; @@ -246,26 +238,20 @@ static int vf610_ocotp_probe(struct platform_device *pdev) PTR_ERR(ocotp_dev->clk)); return PTR_ERR(ocotp_dev->clk); } + ocotp_dev->dev = dev; + ocotp_dev->timing = vf610_ocotp_calculate_timing(ocotp_dev); ocotp_config.size = resource_size(res); ocotp_config.priv = ocotp_dev; ocotp_config.dev = dev; - ocotp_dev->nvmem = nvmem_register(&ocotp_config); - if (IS_ERR(ocotp_dev->nvmem)) - return PTR_ERR(ocotp_dev->nvmem); + ocotp_dev->nvmem = devm_nvmem_register(dev, &ocotp_config); - ocotp_dev->dev = dev; - platform_set_drvdata(pdev, ocotp_dev); - - ocotp_dev->timing = vf610_ocotp_calculate_timing(ocotp_dev); - - return 0; + return PTR_ERR_OR_ZERO(ocotp_dev->nvmem); } static struct platform_driver vf610_ocotp_driver = { .probe = vf610_ocotp_probe, - .remove = vf610_ocotp_remove, .driver = { .name = "vf610-ocotp", .of_match_table = ocotp_of_match, |