* [PATCH 1/3] dt-bindings: power: supply: Add DT schema for richtek,rt5033-battery
2021-05-17 10:35 [PATCH 0/3] Fix RT5033 battery device tree probing Stephan Gerhold
@ 2021-05-17 10:35 ` Stephan Gerhold
2021-05-17 10:35 ` [PATCH 2/3] power: supply: rt5033_battery: Fix device tree enumeration Stephan Gerhold
2021-05-17 10:35 ` [PATCH 3/3] mfd: rt5033: Drop rt5033-battery sub-device Stephan Gerhold
2 siblings, 0 replies; 5+ messages in thread
From: Stephan Gerhold @ 2021-05-17 10:35 UTC (permalink / raw)
To: Sebastian Reichel, Lee Jones
Cc: Rob Herring, linux-pm, devicetree, linux-kernel, Beomho Seo,
Chanwoo Choi, Stephan Gerhold
The RT5033 PMIC provides a simple fuel gauge via I2C.
Add a DT schema to describe how to set it up in the device tree.
Note that although RT5033 is a MFD with lots of functionality
(also charger, regulator, LEDs, ...) the fuel gauge has a separate
I2C bus and is not part of the MFD.
Cc: Beomho Seo <beomho.seo@samsung.com>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
---
.../power/supply/richtek,rt5033-battery.yaml | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml
diff --git a/Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml b/Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml
new file mode 100644
index 000000000000..ae647d3355a2
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/richtek,rt5033-battery.yaml
@@ -0,0 +1,54 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/power/supply/richtek,rt5033-battery.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Richtek RT5033 PMIC Fuel Gauge
+
+maintainers:
+ - Stephan Gerhold <stephan@gerhold.net>
+
+allOf:
+ - $ref: power-supply.yaml#
+
+properties:
+ compatible:
+ const: richtek,rt5033-battery
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ battery@35 {
+ compatible = "richtek,rt5033-battery";
+ reg = <0x35>;
+ };
+ };
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ battery@35 {
+ compatible = "richtek,rt5033-battery";
+ reg = <0x35>;
+ interrupt-parent = <&msmgpio>;
+ interrupts = <121 IRQ_TYPE_EDGE_FALLING>;
+ };
+ };
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] power: supply: rt5033_battery: Fix device tree enumeration
2021-05-17 10:35 [PATCH 0/3] Fix RT5033 battery device tree probing Stephan Gerhold
2021-05-17 10:35 ` [PATCH 1/3] dt-bindings: power: supply: Add DT schema for richtek,rt5033-battery Stephan Gerhold
@ 2021-05-17 10:35 ` Stephan Gerhold
2021-05-17 10:46 ` Stephan Gerhold
2021-05-17 10:35 ` [PATCH 3/3] mfd: rt5033: Drop rt5033-battery sub-device Stephan Gerhold
2 siblings, 1 reply; 5+ messages in thread
From: Stephan Gerhold @ 2021-05-17 10:35 UTC (permalink / raw)
To: Sebastian Reichel, Lee Jones
Cc: Rob Herring, linux-pm, devicetree, linux-kernel, Beomho Seo,
Chanwoo Choi, Stephan Gerhold
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>
---
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 e696364126f1..20a2f93252f9 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..11eb9ad66ea9 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_dt_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.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/3] power: supply: rt5033_battery: Fix device tree enumeration
2021-05-17 10:35 ` [PATCH 2/3] power: supply: rt5033_battery: Fix device tree enumeration Stephan Gerhold
@ 2021-05-17 10:46 ` Stephan Gerhold
0 siblings, 0 replies; 5+ messages in thread
From: Stephan Gerhold @ 2021-05-17 10:46 UTC (permalink / raw)
To: Sebastian Reichel, Lee Jones
Cc: Rob Herring, linux-pm, devicetree, linux-kernel, Beomho Seo,
Chanwoo Choi
On Mon, May 17, 2021 at 12:35:53PM +0200, Stephan Gerhold wrote:
> 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>
> ---
> 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 e696364126f1..20a2f93252f9 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..11eb9ad66ea9 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_dt_match);
s/dt_match/of_match
Ugh, I shouldn't do any last-minute renames and then only compile-test
with modules disabled. :(
Sorry, please ignore this one, will send a v2 shortly...
Stephan
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/3] mfd: rt5033: Drop rt5033-battery sub-device
2021-05-17 10:35 [PATCH 0/3] Fix RT5033 battery device tree probing Stephan Gerhold
2021-05-17 10:35 ` [PATCH 1/3] dt-bindings: power: supply: Add DT schema for richtek,rt5033-battery Stephan Gerhold
2021-05-17 10:35 ` [PATCH 2/3] power: supply: rt5033_battery: Fix device tree enumeration Stephan Gerhold
@ 2021-05-17 10:35 ` Stephan Gerhold
2 siblings, 0 replies; 5+ messages in thread
From: Stephan Gerhold @ 2021-05-17 10:35 UTC (permalink / raw)
To: Sebastian Reichel, Lee Jones
Cc: Rob Herring, linux-pm, devicetree, linux-kernel, Beomho Seo,
Chanwoo Choi, Stephan Gerhold
The fuel gauge in the RT5033 PMIC (rt5033-battery) has its own I2C bus
and interrupt lines. Therefore, it is not part of the MFD device
and needs to be specified separately in the device tree.
Cc: Beomho Seo <beomho.seo@samsung.com>
Cc: Chanwoo Choi <cw00.choi@samsung.com>
Fixes: 0b271258544b ("mfd: rt5033: Add Richtek RT5033 driver core.")
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
---
drivers/mfd/rt5033.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/mfd/rt5033.c b/drivers/mfd/rt5033.c
index f1236a9acf30..df095e91e266 100644
--- a/drivers/mfd/rt5033.c
+++ b/drivers/mfd/rt5033.c
@@ -41,9 +41,6 @@ static const struct mfd_cell rt5033_devs[] = {
{
.name = "rt5033-charger",
.of_compatible = "richtek,rt5033-charger",
- }, {
- .name = "rt5033-battery",
- .of_compatible = "richtek,rt5033-battery",
}, {
.name = "rt5033-led",
.of_compatible = "richtek,rt5033-led",
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread