Commit 59a7f24f authored by Wolfram Sang's avatar Wolfram Sang Committed by Alexandre Belloni
Browse files

rtc: max77686: convert to devm_i2c_new_dummy_device()



I was about to simplify the call to i2c_unregister_device() when I
realized that converting to devm_i2c_new_dummy_device() will simplify
the driver a lot. So I took this approach.

Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://lore.kernel.org/r/20190830133124.21633-2-wsa+renesas@sang-engineering.com


Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 7ef66122
Loading
Loading
Loading
Loading
+4 −13
Original line number Diff line number Diff line
@@ -690,7 +690,7 @@ static int max77686_init_rtc_regmap(struct max77686_rtc_info *info)
		goto add_rtc_irq;
	}

	info->rtc = i2c_new_dummy_device(parent_i2c->adapter,
	info->rtc = devm_i2c_new_dummy_device(info->dev, parent_i2c->adapter,
					      info->drv_data->rtc_i2c_addr);
	if (IS_ERR(info->rtc)) {
		dev_err(info->dev, "Failed to allocate I2C device for RTC\n");
@@ -702,7 +702,7 @@ static int max77686_init_rtc_regmap(struct max77686_rtc_info *info)
	if (IS_ERR(info->rtc_regmap)) {
		ret = PTR_ERR(info->rtc_regmap);
		dev_err(info->dev, "Failed to allocate RTC regmap: %d\n", ret);
		goto err_unregister_i2c;
		return ret;
	}

add_rtc_irq:
@@ -712,15 +712,10 @@ add_rtc_irq:
				  &info->rtc_irq_data);
	if (ret < 0) {
		dev_err(info->dev, "Failed to add RTC irq chip: %d\n", ret);
		goto err_unregister_i2c;
		return ret;
	}

	return 0;

err_unregister_i2c:
	if (info->rtc)
		i2c_unregister_device(info->rtc);
	return ret;
}

static int max77686_rtc_probe(struct platform_device *pdev)
@@ -783,8 +778,6 @@ static int max77686_rtc_probe(struct platform_device *pdev)

err_rtc:
	regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data);
	if (info->rtc)
		i2c_unregister_device(info->rtc);

	return ret;
}
@@ -795,8 +788,6 @@ static int max77686_rtc_remove(struct platform_device *pdev)

	free_irq(info->virq, info);
	regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data);
	if (info->rtc)
		i2c_unregister_device(info->rtc);

	return 0;
}