| From 4c2327f88cd67c3fa8539c0af87dc29d120f8218 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 17 May 2021 12:51:12 +0200 |
| Subject: power: supply: rt5033_battery: Fix device tree enumeration |
| |
| From: Stephan Gerhold <stephan@gerhold.net> |
| |
| [ Upstream commit f3076cd8d1d5fa64b5e1fa5affc045c2fc123baa ] |
| |
| The fuel gauge in the RT5033 PMIC has its own I2C bus and interrupt |
| line. Therefore, it is not actually part of the RT5033 MFD and needs |
| its own of_match_table to probe properly. |
| |
| Also, given that it's independent of the MFD, there is actually |
| no need to make the Kconfig depend on MFD_RT5033. Although the driver |
| uses the shared <linux/mfd/rt5033.h> header, there is no compile |
| or runtime dependency on the RT5033 MFD driver. |
| |
| Cc: Beomho Seo <beomho.seo@samsung.com> |
| Cc: Chanwoo Choi <cw00.choi@samsung.com> |
| Fixes: b847dd96e659 ("power: rt5033_battery: Add RT5033 Fuel gauge device driver") |
| Signed-off-by: Stephan Gerhold <stephan@gerhold.net> |
| Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/power/supply/Kconfig | 3 ++- |
| drivers/power/supply/rt5033_battery.c | 7 +++++++ |
| 2 files changed, 9 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/power/supply/Kconfig b/drivers/power/supply/Kconfig |
| index 006b95eca673..5207beea9d23 100644 |
| --- a/drivers/power/supply/Kconfig |
| +++ b/drivers/power/supply/Kconfig |
| @@ -712,7 +712,8 @@ config BATTERY_GOLDFISH |
| |
| config BATTERY_RT5033 |
| tristate "RT5033 fuel gauge support" |
| - depends on MFD_RT5033 |
| + depends on I2C |
| + select REGMAP_I2C |
| help |
| This adds support for battery fuel gauge in Richtek RT5033 PMIC. |
| The fuelgauge calculates and determines the battery state of charge |
| diff --git a/drivers/power/supply/rt5033_battery.c b/drivers/power/supply/rt5033_battery.c |
| index f330452341f0..9ad0afe83d1b 100644 |
| --- a/drivers/power/supply/rt5033_battery.c |
| +++ b/drivers/power/supply/rt5033_battery.c |
| @@ -164,9 +164,16 @@ static const struct i2c_device_id rt5033_battery_id[] = { |
| }; |
| MODULE_DEVICE_TABLE(i2c, rt5033_battery_id); |
| |
| +static const struct of_device_id rt5033_battery_of_match[] = { |
| + { .compatible = "richtek,rt5033-battery", }, |
| + { } |
| +}; |
| +MODULE_DEVICE_TABLE(of, rt5033_battery_of_match); |
| + |
| static struct i2c_driver rt5033_battery_driver = { |
| .driver = { |
| .name = "rt5033-battery", |
| + .of_match_table = rt5033_battery_of_match, |
| }, |
| .probe = rt5033_battery_probe, |
| .remove = rt5033_battery_remove, |
| -- |
| 2.30.2 |
| |