All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@kernel.org>
To: Bhargav Raviprakash <bhargav.r@ltts.com>, linux-kernel@vger.kernel.org
Cc: m.nirmaladevi@ltts.com, lee@kernel.org, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
	jpanis@baylibre.com, devicetree@vger.kernel.org, arnd@arndb.de,
	gregkh@linuxfoundation.org, lgirdwood@gmail.com,
	broonie@kernel.org, linus.walleij@linaro.org,
	linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	nm@ti.com, vigneshr@ti.com, kristo@kernel.org,
	Bhargav Raviprakash <bhargav.r@ltts.com>
Subject: Re: [RESEND PATCH v1 05/13] mfd: tps6594-spi: Add TI TPS65224 PMIC SPI
Date: Wed, 14 Feb 2024 10:10:17 -0800	[thread overview]
Message-ID: <7hcysy6ho6.fsf@baylibre.com> (raw)
In-Reply-To: <20240208105343.1212902-6-bhargav.r@ltts.com>

Bhargav Raviprakash <bhargav.r@ltts.com> writes:

> Add support for TPS65224 PMIC in the TPS6594 driver as they share
> significant functional overlap.
>
> Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com>
> ---
>  drivers/mfd/tps6594-spi.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mfd/tps6594-spi.c b/drivers/mfd/tps6594-spi.c
> index 5afb1736f..7ec66d31b 100644
> --- a/drivers/mfd/tps6594-spi.c
> +++ b/drivers/mfd/tps6594-spi.c
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: GPL-2.0
>  /*
> - * SPI access driver for TI TPS6594/TPS6593/LP8764 PMICs
> + * SPI access driver for TI TPS65224/TPS6594/TPS6593/LP8764 PMICs
>   *
>   * Copyright (C) 2023 BayLibre Incorporated - https://www.baylibre.com/
>   */
> @@ -66,7 +66,7 @@ static int tps6594_spi_reg_write(void *context, unsigned int reg, unsigned int v
>  	return spi_write(spi, buf, count);
>  }
>  
> -static const struct regmap_config tps6594_spi_regmap_config = {
> +static struct regmap_config tps6594_spi_regmap_config = {
>  	.reg_bits = 16,
>  	.val_bits = 8,
>  	.max_register = TPS6594_REG_DWD_FAIL_CNT_REG,
> @@ -81,6 +81,7 @@ static const struct of_device_id tps6594_spi_of_match_table[] = {
>  	{ .compatible = "ti,tps6594-q1", .data = (void *)TPS6594, },
>  	{ .compatible = "ti,tps6593-q1", .data = (void *)TPS6593, },
>  	{ .compatible = "ti,lp8764-q1",  .data = (void *)LP8764,  },
> +	{ .compatible = "ti,tps65224-q1", .data = (void *)TPS65224, },
>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, tps6594_spi_of_match_table);
> @@ -101,15 +102,18 @@ static int tps6594_spi_probe(struct spi_device *spi)
>  	tps->reg = spi_get_chipselect(spi, 0);
>  	tps->irq = spi->irq;
>  
> -	tps->regmap = devm_regmap_init(dev, NULL, spi, &tps6594_spi_regmap_config);
> -	if (IS_ERR(tps->regmap))
> -		return dev_err_probe(dev, PTR_ERR(tps->regmap), "Failed to init regmap\n");
> -
>  	match = of_match_device(tps6594_spi_of_match_table, dev);
>  	if (!match)
>  		return dev_err_probe(dev, -EINVAL, "Failed to find matching chip ID\n");
>  	tps->chip_id = (unsigned long)match->data;
>  
> +	if (tps->chip_id == TPS65224)
> +		tps6594_spi_regmap_config.volatile_table = &tps65224_volatile_table;

Similar to my comment on the i2c series, but to be more specific:

Rather than use the .data pointer in the of_match_table as simply a
chip_id, instead make that into a struct that can contain chip-specific
values/pointers etc, and then each compatible can have a custom struct
(if needed.)

This way, at probe/match time, all the chip-specific data is setup using
that struct, so that at runtime, there doesn't need to be any "if
(chip_id)" checking.

Kevin

WARNING: multiple messages have this Message-ID (diff)
From: Kevin Hilman <khilman@kernel.org>
To: Bhargav Raviprakash <bhargav.r@ltts.com>, linux-kernel@vger.kernel.org
Cc: m.nirmaladevi@ltts.com, lee@kernel.org, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
	jpanis@baylibre.com, devicetree@vger.kernel.org, arnd@arndb.de,
	gregkh@linuxfoundation.org, lgirdwood@gmail.com,
	broonie@kernel.org, linus.walleij@linaro.org,
	linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	nm@ti.com, vigneshr@ti.com, kristo@kernel.org,
	Bhargav Raviprakash <bhargav.r@ltts.com>
Subject: Re: [RESEND PATCH v1 05/13] mfd: tps6594-spi: Add TI TPS65224 PMIC SPI
Date: Wed, 14 Feb 2024 10:10:17 -0800	[thread overview]
Message-ID: <7hcysy6ho6.fsf@baylibre.com> (raw)
In-Reply-To: <20240208105343.1212902-6-bhargav.r@ltts.com>

Bhargav Raviprakash <bhargav.r@ltts.com> writes:

> Add support for TPS65224 PMIC in the TPS6594 driver as they share
> significant functional overlap.
>
> Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com>
> ---
>  drivers/mfd/tps6594-spi.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mfd/tps6594-spi.c b/drivers/mfd/tps6594-spi.c
> index 5afb1736f..7ec66d31b 100644
> --- a/drivers/mfd/tps6594-spi.c
> +++ b/drivers/mfd/tps6594-spi.c
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: GPL-2.0
>  /*
> - * SPI access driver for TI TPS6594/TPS6593/LP8764 PMICs
> + * SPI access driver for TI TPS65224/TPS6594/TPS6593/LP8764 PMICs
>   *
>   * Copyright (C) 2023 BayLibre Incorporated - https://www.baylibre.com/
>   */
> @@ -66,7 +66,7 @@ static int tps6594_spi_reg_write(void *context, unsigned int reg, unsigned int v
>  	return spi_write(spi, buf, count);
>  }
>  
> -static const struct regmap_config tps6594_spi_regmap_config = {
> +static struct regmap_config tps6594_spi_regmap_config = {
>  	.reg_bits = 16,
>  	.val_bits = 8,
>  	.max_register = TPS6594_REG_DWD_FAIL_CNT_REG,
> @@ -81,6 +81,7 @@ static const struct of_device_id tps6594_spi_of_match_table[] = {
>  	{ .compatible = "ti,tps6594-q1", .data = (void *)TPS6594, },
>  	{ .compatible = "ti,tps6593-q1", .data = (void *)TPS6593, },
>  	{ .compatible = "ti,lp8764-q1",  .data = (void *)LP8764,  },
> +	{ .compatible = "ti,tps65224-q1", .data = (void *)TPS65224, },
>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, tps6594_spi_of_match_table);
> @@ -101,15 +102,18 @@ static int tps6594_spi_probe(struct spi_device *spi)
>  	tps->reg = spi_get_chipselect(spi, 0);
>  	tps->irq = spi->irq;
>  
> -	tps->regmap = devm_regmap_init(dev, NULL, spi, &tps6594_spi_regmap_config);
> -	if (IS_ERR(tps->regmap))
> -		return dev_err_probe(dev, PTR_ERR(tps->regmap), "Failed to init regmap\n");
> -
>  	match = of_match_device(tps6594_spi_of_match_table, dev);
>  	if (!match)
>  		return dev_err_probe(dev, -EINVAL, "Failed to find matching chip ID\n");
>  	tps->chip_id = (unsigned long)match->data;
>  
> +	if (tps->chip_id == TPS65224)
> +		tps6594_spi_regmap_config.volatile_table = &tps65224_volatile_table;

Similar to my comment on the i2c series, but to be more specific:

Rather than use the .data pointer in the of_match_table as simply a
chip_id, instead make that into a struct that can contain chip-specific
values/pointers etc, and then each compatible can have a custom struct
(if needed.)

This way, at probe/match time, all the chip-specific data is setup using
that struct, so that at runtime, there doesn't need to be any "if
(chip_id)" checking.

Kevin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2024-02-14 18:10 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-08 10:53 [RESEND PATCH v1 00/13] Add support for TI TPS65224 PMIC Bhargav Raviprakash
2024-02-08 10:53 ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 01/13] mfd: tps6594: Add register definitions " Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-09 17:35   ` Nishanth Menon
2024-02-09 17:35     ` Nishanth Menon
2024-02-14 12:02     ` Bhargav Raviprakash
2024-02-14 12:02       ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 02/13] mfd: tps6594: use volatile_table instead of volatile_reg Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 03/13] dt-bindings: mfd: ti,tps6594: Add TI TPS65224 PMIC Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-09 17:11   ` Conor Dooley
2024-02-09 17:11     ` Conor Dooley
2024-02-14  9:31     ` Bhargav Raviprakash
2024-02-14  9:31       ` Bhargav Raviprakash
2024-02-14  9:38       ` Conor Dooley
2024-02-14  9:38         ` Conor Dooley
2024-02-14 17:26         ` Kevin Hilman
2024-02-14 17:26           ` Kevin Hilman
2024-02-14 17:45           ` Conor Dooley
2024-02-14 17:45             ` Conor Dooley
2024-02-14 18:02             ` Kevin Hilman
2024-02-14 18:02               ` Kevin Hilman
2024-02-14 18:10               ` Conor Dooley
2024-02-14 18:10                 ` Conor Dooley
2024-02-16  9:08             ` Julien Panis
2024-02-16  9:08               ` Julien Panis
2024-02-16 11:47               ` Conor Dooley
2024-02-16 11:47                 ` Conor Dooley
2024-02-16 11:47   ` Conor Dooley
2024-02-16 11:47     ` Conor Dooley
2024-02-08 10:53 ` [RESEND PATCH v1 04/13] mfd: tps6594-i2c: Add TI TPS65224 PMIC I2C Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-14 17:04   ` Kevin Hilman
2024-02-14 17:04     ` Kevin Hilman
2024-02-08 10:53 ` [RESEND PATCH v1 05/13] mfd: tps6594-spi: Add TI TPS65224 PMIC SPI Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-14 18:10   ` Kevin Hilman [this message]
2024-02-14 18:10     ` Kevin Hilman
2024-02-22  8:43     ` Bhargav Raviprakash
2024-02-22  8:43       ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 06/13] mfd: tps6594-core: Add TI TPS65224 PMIC core Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 07/13] misc: tps6594-pfsm: Add TI TPS65224 PMIC PFSM Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 08/13] misc: tps6594-esm: reversion check limited to TPS6594 family Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 09/13] misc: tps6594-esm: use regmap_field Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 10/13] misc: tps6594-esm: Add TI TPS65224 PMIC ESM Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 11/13] regulator: tps6594-regulator: Add TI TPS65224 PMIC regulators Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 12/13] pinctrl: pinctrl-tps6594: Add TPS65224 PMIC pinctrl and GPIO Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
2024-02-08 10:53 ` [RESEND PATCH v1 13/13] arch: arm64: dts: ti: k3-am62p5-sk: Add TPS65224 PMIC support in AM62P dts Bhargav Raviprakash
2024-02-08 10:53   ` Bhargav Raviprakash
  -- strict thread matches above, loose matches on Subject: below --
2024-04-11 17:03 [PATCH v6 03/11] mfd: tps6594: add regmap config in match data Lee Jones
2024-04-15 13:10 ` [RESEND PATCH v1 05/13] mfd: tps6594-spi: Add TI TPS65224 PMIC SPI Bhargav Raviprakash
2024-04-15 13:10   ` Bhargav Raviprakash
2024-04-16 12:25   ` Lee Jones
2024-04-16 12:25     ` Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7hcysy6ho6.fsf@baylibre.com \
    --to=khilman@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bhargav.r@ltts.com \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jpanis@baylibre.com \
    --cc=kristo@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lee@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.nirmaladevi@ltts.com \
    --cc=nm@ti.com \
    --cc=robh+dt@kernel.org \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.