diff mbox series

[v14,07/10] mfd: simple-mfd-i2c: Add MAX77705 support

Message ID 20250108-starqltechn_integration_upstream-v14-7-f6e84ec20d96@gmail.com (mailing list archive)
State New
Headers show
Series Add support for Maxim Integrated MAX77705 PMIC | expand

Commit Message

Dzmitry Sankouski Jan. 8, 2025, 2:13 p.m. UTC
Add MAX77705 support - fuel gauge and hwmon devices.
Hwmon provides charger input and system bus measurements.

Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
---
Changes in v13:
- remove compatible from cells
- change mfd compatible to match max77705 fuel gauge node
---
 drivers/mfd/simple-mfd-i2c.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Lee Jones Jan. 9, 2025, 12:01 p.m. UTC | #1
On Wed, 08 Jan 2025, Dzmitry Sankouski wrote:

> Add MAX77705 support - fuel gauge and hwmon devices.
> Hwmon provides charger input and system bus measurements.
> 
> Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
> ---
> Changes in v13:
> - remove compatible from cells
> - change mfd compatible to match max77705 fuel gauge node
> ---
>  drivers/mfd/simple-mfd-i2c.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c
> index 6eda79533208..22159913bea0 100644
> --- a/drivers/mfd/simple-mfd-i2c.c
> +++ b/drivers/mfd/simple-mfd-i2c.c
> @@ -83,11 +83,22 @@ static const struct simple_mfd_data maxim_max5970 = {
>  	.mfd_cell_size = ARRAY_SIZE(max5970_cells),
>  };
>  
> +static const struct mfd_cell max77705_sensor_cells[] = {
> +	{ .name = "max77705-battery" },
> +	{ .name = "max77705-hwmon", },
> +};
> +
> +static const struct simple_mfd_data maxim_mon_max77705 = {
> +	.mfd_cell = max77705_sensor_cells,
> +	.mfd_cell_size = ARRAY_SIZE(max77705_sensor_cells),
> +};
> +
>  static const struct of_device_id simple_mfd_i2c_of_match[] = {
>  	{ .compatible = "kontron,sl28cpld" },
>  	{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
>  	{ .compatible = "maxim,max5970", .data = &maxim_max5970},
>  	{ .compatible = "maxim,max5978", .data = &maxim_max5970},
> +	{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},

Drop the battery part from the MFD (group) name please.

>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match);
> 
> -- 
> 2.39.5
>
Lee Jones Jan. 9, 2025, 12:03 p.m. UTC | #2
On Thu, 09 Jan 2025, Lee Jones wrote:

> On Wed, 08 Jan 2025, Dzmitry Sankouski wrote:
> 
> > Add MAX77705 support - fuel gauge and hwmon devices.
> > Hwmon provides charger input and system bus measurements.
> > 
> > Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
> > ---
> > Changes in v13:
> > - remove compatible from cells
> > - change mfd compatible to match max77705 fuel gauge node
> > ---
> >  drivers/mfd/simple-mfd-i2c.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c
> > index 6eda79533208..22159913bea0 100644
> > --- a/drivers/mfd/simple-mfd-i2c.c
> > +++ b/drivers/mfd/simple-mfd-i2c.c
> > @@ -83,11 +83,22 @@ static const struct simple_mfd_data maxim_max5970 = {
> >  	.mfd_cell_size = ARRAY_SIZE(max5970_cells),
> >  };
> >  
> > +static const struct mfd_cell max77705_sensor_cells[] = {
> > +	{ .name = "max77705-battery" },
> > +	{ .name = "max77705-hwmon", },
> > +};

Why not register these from the proper MFD driver?

> > +static const struct simple_mfd_data maxim_mon_max77705 = {
> > +	.mfd_cell = max77705_sensor_cells,
> > +	.mfd_cell_size = ARRAY_SIZE(max77705_sensor_cells),
> > +};
> > +
> >  static const struct of_device_id simple_mfd_i2c_of_match[] = {
> >  	{ .compatible = "kontron,sl28cpld" },
> >  	{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
> >  	{ .compatible = "maxim,max5970", .data = &maxim_max5970},
> >  	{ .compatible = "maxim,max5978", .data = &maxim_max5970},
> > +	{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
> 
> Drop the battery part from the MFD (group) name please.
> 
> >  	{}
> >  };
> >  MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match);
Dzmitry Sankouski Jan. 9, 2025, 12:53 p.m. UTC | #3
чт, 9 янв. 2025 г. в 15:03, Lee Jones <lee@kernel.org>:
>
> On Thu, 09 Jan 2025, Lee Jones wrote:
>
> > On Wed, 08 Jan 2025, Dzmitry Sankouski wrote:
> >
> > > Add MAX77705 support - fuel gauge and hwmon devices.
> > > Hwmon provides charger input and system bus measurements.
> > >
> > > Signed-off-by: Dzmitry Sankouski <dsankouski@gmail.com>
> > > ---
> > > Changes in v13:
> > > - remove compatible from cells
> > > - change mfd compatible to match max77705 fuel gauge node
> > > ---
> > >  drivers/mfd/simple-mfd-i2c.c | 11 +++++++++++
> > >  1 file changed, 11 insertions(+)
> > >
> > > diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c
> > > index 6eda79533208..22159913bea0 100644
> > > --- a/drivers/mfd/simple-mfd-i2c.c
> > > +++ b/drivers/mfd/simple-mfd-i2c.c
> > > @@ -83,11 +83,22 @@ static const struct simple_mfd_data maxim_max5970 = {
> > >     .mfd_cell_size = ARRAY_SIZE(max5970_cells),
> > >  };
> > >
> > > +static const struct mfd_cell max77705_sensor_cells[] = {
> > > +   { .name = "max77705-battery" },
> > > +   { .name = "max77705-hwmon", },
> > > +};
>
> Why not register these from the proper MFD driver?
>

Because the fuel gauge address is different from the max77705 mfd device.
diff mbox series

Patch

diff --git a/drivers/mfd/simple-mfd-i2c.c b/drivers/mfd/simple-mfd-i2c.c
index 6eda79533208..22159913bea0 100644
--- a/drivers/mfd/simple-mfd-i2c.c
+++ b/drivers/mfd/simple-mfd-i2c.c
@@ -83,11 +83,22 @@  static const struct simple_mfd_data maxim_max5970 = {
 	.mfd_cell_size = ARRAY_SIZE(max5970_cells),
 };
 
+static const struct mfd_cell max77705_sensor_cells[] = {
+	{ .name = "max77705-battery" },
+	{ .name = "max77705-hwmon", },
+};
+
+static const struct simple_mfd_data maxim_mon_max77705 = {
+	.mfd_cell = max77705_sensor_cells,
+	.mfd_cell_size = ARRAY_SIZE(max77705_sensor_cells),
+};
+
 static const struct of_device_id simple_mfd_i2c_of_match[] = {
 	{ .compatible = "kontron,sl28cpld" },
 	{ .compatible = "silergy,sy7636a", .data = &silergy_sy7636a},
 	{ .compatible = "maxim,max5970", .data = &maxim_max5970},
 	{ .compatible = "maxim,max5978", .data = &maxim_max5970},
+	{ .compatible = "maxim,max77705-battery", .data = &maxim_mon_max77705},
 	{}
 };
 MODULE_DEVICE_TABLE(of, simple_mfd_i2c_of_match);