All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/4] Add support for mpq2286 PMIC IC
@ 2023-10-11 16:47 Saravanan Sekar
  2023-10-11 16:47 ` [PATCH v4 1/4] hwmon: (pmbus/mpq7932) Get page count based on chip info Saravanan Sekar
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Saravanan Sekar @ 2023-10-11 16:47 UTC (permalink / raw
  To: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, linux, jdelvare
  Cc: linux-kernel, devicetree, linux-hwmon, Saravanan Sekar

changes in v4:
 - dt-binding changed regulator node and name from 'buck0' to 'buck'
 - added new pmbus regulator helper to define single regulator and used in mpq2286 driver

changes in v3:
 - dt-binding commit message updated the reason for 'buck0' is used instead of 'buck'

changes in v2:
 - fix dt check warnings
 - fix compiler warning on cast device_get_match_data and lexicological order of compatible



The MPQ2286 is a programmable, high frequency synchronous buck regulator with
integrated internal high side and low side power MOSFET. Application in
Automotive compenents such as ADAS, Infotainment, SOC System core, DDR memory.



Saravanan Sekar (4):
  hwmon: (pmbus/mpq7932) Get page count based on chip info
  regulator: dt-bindings: Add mps,mpq2286 power-management IC
  hwmon: (pmbus/core) Add helper macro to define single pmbus regulator
  hwmon: (pmbus/mpq2286) Add a support for mpq2286 Power Management IC

 .../bindings/regulator/mps,mpq2286.yaml       | 59 +++++++++++++++++++
 drivers/hwmon/pmbus/mpq7932.c                 | 19 ++++--
 drivers/hwmon/pmbus/pmbus.h                   | 15 +++++
 3 files changed, 89 insertions(+), 4 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/regulator/mps,mpq2286.yaml

-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v4 1/4] hwmon: (pmbus/mpq7932) Get page count based on chip info
  2023-10-11 16:47 [PATCH v4 0/4] Add support for mpq2286 PMIC IC Saravanan Sekar
@ 2023-10-11 16:47 ` Saravanan Sekar
  2023-10-26  0:49   ` Guenter Roeck
  2023-10-11 16:47 ` [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC Saravanan Sekar
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Saravanan Sekar @ 2023-10-11 16:47 UTC (permalink / raw
  To: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, linux, jdelvare
  Cc: linux-kernel, devicetree, linux-hwmon, Saravanan Sekar

Get page count using compatible match to support the series of chipsets
which differs in number of regualator/page.

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
---
 drivers/hwmon/pmbus/mpq7932.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/hwmon/pmbus/mpq7932.c b/drivers/hwmon/pmbus/mpq7932.c
index 6c62f01da7c6..723c314a57a2 100644
--- a/drivers/hwmon/pmbus/mpq7932.c
+++ b/drivers/hwmon/pmbus/mpq7932.c
@@ -105,7 +105,7 @@ static int mpq7932_probe(struct i2c_client *client)
 		return -ENOMEM;
 
 	info = &data->info;
-	info->pages = MPQ7932_NUM_PAGES;
+	info->pages = (int)(unsigned long)device_get_match_data(&client->dev);
 	info->format[PSC_VOLTAGE_OUT] = direct;
 	info->m[PSC_VOLTAGE_OUT] = 160;
 	info->b[PSC_VOLTAGE_OUT] = -33;
@@ -115,7 +115,7 @@ static int mpq7932_probe(struct i2c_client *client)
 	}
 
 #if IS_ENABLED(CONFIG_SENSORS_MPQ7932_REGULATOR)
-	info->num_regulators = ARRAY_SIZE(mpq7932_regulators_desc);
+	info->num_regulators = info->pages;
 	info->reg_desc = mpq7932_regulators_desc;
 #endif
 
@@ -129,7 +129,7 @@ static int mpq7932_probe(struct i2c_client *client)
 }
 
 static const struct of_device_id mpq7932_of_match[] = {
-	{ .compatible = "mps,mpq7932"},
+	{ .compatible = "mps,mpq7932", .data = (void *)MPQ7932_NUM_PAGES },
 	{},
 };
 MODULE_DEVICE_TABLE(of, mpq7932_of_match);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC
  2023-10-11 16:47 [PATCH v4 0/4] Add support for mpq2286 PMIC IC Saravanan Sekar
  2023-10-11 16:47 ` [PATCH v4 1/4] hwmon: (pmbus/mpq7932) Get page count based on chip info Saravanan Sekar
@ 2023-10-11 16:47 ` Saravanan Sekar
  2023-10-11 18:22   ` Mark Brown
                     ` (2 more replies)
  2023-10-11 16:47 ` [PATCH v4 3/4] hwmon: (pmbus/core) Add helper macro to define single pmbus regulator Saravanan Sekar
  2023-10-11 16:47 ` [PATCH v4 4/4] hwmon: (pmbus/mpq2286) Add a support for mpq2286 Power Management IC Saravanan Sekar
  3 siblings, 3 replies; 11+ messages in thread
From: Saravanan Sekar @ 2023-10-11 16:47 UTC (permalink / raw
  To: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, linux, jdelvare
  Cc: linux-kernel, devicetree, linux-hwmon, Saravanan Sekar

Document mpq2286 power-management IC.

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
---
 .../bindings/regulator/mps,mpq2286.yaml       | 59 +++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/regulator/mps,mpq2286.yaml

diff --git a/Documentation/devicetree/bindings/regulator/mps,mpq2286.yaml b/Documentation/devicetree/bindings/regulator/mps,mpq2286.yaml
new file mode 100644
index 000000000000..1296f9b30862
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/mps,mpq2286.yaml
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/mps,mpq2286.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Monolithic Power System MPQ2286 PMIC
+
+maintainers:
+  - Saravanan Sekar <saravanan@linumiz.com>
+
+properties:
+  compatible:
+    enum:
+      - mps,mpq2286
+
+  reg:
+    maxItems: 1
+
+  regulators:
+    type: object
+
+    properties:
+      buck:
+        type: object
+        $ref: regulator.yaml#
+
+        unevaluatedProperties: false
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - regulators
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic@3 {
+            compatible = "mps,mpq2286";
+            reg = <0x3>;
+
+            regulators {
+                buck {
+                    regulator-name = "buck";
+                    regulator-min-microvolt = <1600000>;
+                    regulator-max-microvolt = <1800000>;
+                    regulator-boot-on;
+                };
+            };
+        };
+    };
+...
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 3/4] hwmon: (pmbus/core) Add helper macro to define single pmbus regulator
  2023-10-11 16:47 [PATCH v4 0/4] Add support for mpq2286 PMIC IC Saravanan Sekar
  2023-10-11 16:47 ` [PATCH v4 1/4] hwmon: (pmbus/mpq7932) Get page count based on chip info Saravanan Sekar
  2023-10-11 16:47 ` [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC Saravanan Sekar
@ 2023-10-11 16:47 ` Saravanan Sekar
  2023-10-26  0:51   ` Guenter Roeck
  2023-10-11 16:47 ` [PATCH v4 4/4] hwmon: (pmbus/mpq2286) Add a support for mpq2286 Power Management IC Saravanan Sekar
  3 siblings, 1 reply; 11+ messages in thread
From: Saravanan Sekar @ 2023-10-11 16:47 UTC (permalink / raw
  To: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, linux, jdelvare
  Cc: linux-kernel, devicetree, linux-hwmon, Saravanan Sekar

The bindings for single instance regulator should be named with no instance
(e.g., buck not buck0). Introduce a new helper macro to define the single pmbus
regulator.

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
---
 drivers/hwmon/pmbus/pmbus.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/hwmon/pmbus/pmbus.h b/drivers/hwmon/pmbus/pmbus.h
index b0832a4c690d..f4df3d6a41df 100644
--- a/drivers/hwmon/pmbus/pmbus.h
+++ b/drivers/hwmon/pmbus/pmbus.h
@@ -480,6 +480,21 @@ extern const struct regulator_ops pmbus_regulator_ops;
 
 #define PMBUS_REGULATOR(_name, _id)   PMBUS_REGULATOR_STEP(_name, _id, 0, 0, 0)
 
+#define PMBUS_REGULATOR_STEP_ONE(_name, _voltages, _step, _min_uV)  \
+	{							\
+		.name = (_name),				\
+		.of_match = of_match_ptr(_name),		\
+		.regulators_node = of_match_ptr("regulators"),	\
+		.ops = &pmbus_regulator_ops,			\
+		.type = REGULATOR_VOLTAGE,			\
+		.owner = THIS_MODULE,				\
+		.n_voltages = _voltages,			\
+		.uV_step = _step,				\
+		.min_uV = _min_uV,				\
+	}
+
+#define PMBUS_REGULATOR_ONE(_name)   PMBUS_REGULATOR_STEP_ONE(_name, 0, 0, 0)
+
 /* Function declarations */
 
 void pmbus_clear_cache(struct i2c_client *client);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v4 4/4] hwmon: (pmbus/mpq2286) Add a support for mpq2286 Power Management IC
  2023-10-11 16:47 [PATCH v4 0/4] Add support for mpq2286 PMIC IC Saravanan Sekar
                   ` (2 preceding siblings ...)
  2023-10-11 16:47 ` [PATCH v4 3/4] hwmon: (pmbus/core) Add helper macro to define single pmbus regulator Saravanan Sekar
@ 2023-10-11 16:47 ` Saravanan Sekar
  2023-10-26  0:52   ` Guenter Roeck
  3 siblings, 1 reply; 11+ messages in thread
From: Saravanan Sekar @ 2023-10-11 16:47 UTC (permalink / raw
  To: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, linux, jdelvare
  Cc: linux-kernel, devicetree, linux-hwmon, Saravanan Sekar

The MPQ2286 is a programmable, high frequency synchronous buck regulator
designed to power a variety of Automotive system peripherals. Single buck
converters with hardware monitoring capability is configurable over PMBus
interface.

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
---
 drivers/hwmon/pmbus/mpq7932.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/hwmon/pmbus/mpq7932.c b/drivers/hwmon/pmbus/mpq7932.c
index 723c314a57a2..67487867c70f 100644
--- a/drivers/hwmon/pmbus/mpq7932.c
+++ b/drivers/hwmon/pmbus/mpq7932.c
@@ -21,6 +21,7 @@
 #define MPQ7932_N_VOLTAGES		256
 #define MPQ7932_VOUT_MAX		0xFF
 #define MPQ7932_NUM_PAGES		6
+#define MPQ2286_NUM_PAGES		1
 
 #define MPQ7932_TON_DELAY		0x60
 #define MPQ7932_VOUT_STARTUP_SLEW	0xA3
@@ -48,6 +49,11 @@ static struct regulator_desc mpq7932_regulators_desc[] = {
 	PMBUS_REGULATOR_STEP("buck", 5, MPQ7932_N_VOLTAGES,
 			     MPQ7932_UV_STEP, MPQ7932_BUCK_UV_MIN),
 };
+
+static const struct regulator_desc mpq7932_regulators_desc_one[] = {
+	PMBUS_REGULATOR_STEP_ONE("buck", MPQ7932_N_VOLTAGES,
+				 MPQ7932_UV_STEP, MPQ7932_BUCK_UV_MIN),
+};
 #endif
 
 static int mpq7932_write_word_data(struct i2c_client *client, int page, int reg,
@@ -116,7 +122,10 @@ static int mpq7932_probe(struct i2c_client *client)
 
 #if IS_ENABLED(CONFIG_SENSORS_MPQ7932_REGULATOR)
 	info->num_regulators = info->pages;
-	info->reg_desc = mpq7932_regulators_desc;
+	if (info->num_regulators == 1)
+		info->reg_desc = mpq7932_regulators_desc_one;
+	else
+		info->reg_desc = mpq7932_regulators_desc;
 #endif
 
 	info->read_word_data = mpq7932_read_word_data;
@@ -129,12 +138,14 @@ static int mpq7932_probe(struct i2c_client *client)
 }
 
 static const struct of_device_id mpq7932_of_match[] = {
+	{ .compatible = "mps,mpq2286", .data = (void *)MPQ2286_NUM_PAGES },
 	{ .compatible = "mps,mpq7932", .data = (void *)MPQ7932_NUM_PAGES },
 	{},
 };
 MODULE_DEVICE_TABLE(of, mpq7932_of_match);
 
 static const struct i2c_device_id mpq7932_id[] = {
+	{ "mpq2286", },
 	{ "mpq7932", },
 	{ },
 };
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC
  2023-10-11 16:47 ` [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC Saravanan Sekar
@ 2023-10-11 18:22   ` Mark Brown
  2023-10-11 18:23   ` Krzysztof Kozlowski
  2023-10-26  0:50   ` Guenter Roeck
  2 siblings, 0 replies; 11+ messages in thread
From: Mark Brown @ 2023-10-11 18:22 UTC (permalink / raw
  To: Saravanan Sekar
  Cc: sravanhome, lgirdwood, robh+dt, krzysztof.kozlowski+dt, conor+dt,
	linux, jdelvare, linux-kernel, devicetree, linux-hwmon

[-- Attachment #1: Type: text/plain, Size: 148 bytes --]

On Wed, Oct 11, 2023 at 10:17:52PM +0530, Saravanan Sekar wrote:
> Document mpq2286 power-management IC.

Acked-by: Mark Brown <broonie@kernel.org>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC
  2023-10-11 16:47 ` [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC Saravanan Sekar
  2023-10-11 18:22   ` Mark Brown
@ 2023-10-11 18:23   ` Krzysztof Kozlowski
  2023-10-26  0:50   ` Guenter Roeck
  2 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2023-10-11 18:23 UTC (permalink / raw
  To: Saravanan Sekar, sravanhome, lgirdwood, broonie, robh+dt,
	krzysztof.kozlowski+dt, conor+dt, linux, jdelvare
  Cc: linux-kernel, devicetree, linux-hwmon

On 11/10/2023 18:47, Saravanan Sekar wrote:
> Document mpq2286 power-management IC.
> 
> Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
> ---

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 1/4] hwmon: (pmbus/mpq7932) Get page count based on chip info
  2023-10-11 16:47 ` [PATCH v4 1/4] hwmon: (pmbus/mpq7932) Get page count based on chip info Saravanan Sekar
@ 2023-10-26  0:49   ` Guenter Roeck
  0 siblings, 0 replies; 11+ messages in thread
From: Guenter Roeck @ 2023-10-26  0:49 UTC (permalink / raw
  To: Saravanan Sekar
  Cc: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, jdelvare, linux-kernel, devicetree, linux-hwmon

On Wed, Oct 11, 2023 at 10:17:51PM +0530, Saravanan Sekar wrote:
> Get page count using compatible match to support the series of chipsets
> which differs in number of regualator/page.
> 
> Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>

Applied.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC
  2023-10-11 16:47 ` [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC Saravanan Sekar
  2023-10-11 18:22   ` Mark Brown
  2023-10-11 18:23   ` Krzysztof Kozlowski
@ 2023-10-26  0:50   ` Guenter Roeck
  2 siblings, 0 replies; 11+ messages in thread
From: Guenter Roeck @ 2023-10-26  0:50 UTC (permalink / raw
  To: Saravanan Sekar
  Cc: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, jdelvare, linux-kernel, devicetree, linux-hwmon

On Wed, Oct 11, 2023 at 10:17:52PM +0530, Saravanan Sekar wrote:
> Document mpq2286 power-management IC.
> 
> Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
> Acked-by: Mark Brown <broonie@kernel.org>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Applied.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 3/4] hwmon: (pmbus/core) Add helper macro to define single pmbus regulator
  2023-10-11 16:47 ` [PATCH v4 3/4] hwmon: (pmbus/core) Add helper macro to define single pmbus regulator Saravanan Sekar
@ 2023-10-26  0:51   ` Guenter Roeck
  0 siblings, 0 replies; 11+ messages in thread
From: Guenter Roeck @ 2023-10-26  0:51 UTC (permalink / raw
  To: Saravanan Sekar
  Cc: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, jdelvare, linux-kernel, devicetree, linux-hwmon

On Wed, Oct 11, 2023 at 10:17:53PM +0530, Saravanan Sekar wrote:
> The bindings for single instance regulator should be named with no instance
> (e.g., buck not buck0). Introduce a new helper macro to define the single pmbus
> regulator.
> 
> Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>

Applied.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v4 4/4] hwmon: (pmbus/mpq2286) Add a support for mpq2286 Power Management IC
  2023-10-11 16:47 ` [PATCH v4 4/4] hwmon: (pmbus/mpq2286) Add a support for mpq2286 Power Management IC Saravanan Sekar
@ 2023-10-26  0:52   ` Guenter Roeck
  0 siblings, 0 replies; 11+ messages in thread
From: Guenter Roeck @ 2023-10-26  0:52 UTC (permalink / raw
  To: Saravanan Sekar
  Cc: sravanhome, lgirdwood, broonie, robh+dt, krzysztof.kozlowski+dt,
	conor+dt, jdelvare, linux-kernel, devicetree, linux-hwmon

On Wed, Oct 11, 2023 at 10:17:54PM +0530, Saravanan Sekar wrote:
> The MPQ2286 is a programmable, high frequency synchronous buck regulator
> designed to power a variety of Automotive system peripherals. Single buck
> converters with hardware monitoring capability is configurable over PMBus
> interface.
> 
> Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>

Applied, after fixing the subject. Its tag needs to reference
the driver, not the added chip.

Guenter

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-10-26  0:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-11 16:47 [PATCH v4 0/4] Add support for mpq2286 PMIC IC Saravanan Sekar
2023-10-11 16:47 ` [PATCH v4 1/4] hwmon: (pmbus/mpq7932) Get page count based on chip info Saravanan Sekar
2023-10-26  0:49   ` Guenter Roeck
2023-10-11 16:47 ` [PATCH v4 2/4] regulator: dt-bindings: Add mps,mpq2286 power-management IC Saravanan Sekar
2023-10-11 18:22   ` Mark Brown
2023-10-11 18:23   ` Krzysztof Kozlowski
2023-10-26  0:50   ` Guenter Roeck
2023-10-11 16:47 ` [PATCH v4 3/4] hwmon: (pmbus/core) Add helper macro to define single pmbus regulator Saravanan Sekar
2023-10-26  0:51   ` Guenter Roeck
2023-10-11 16:47 ` [PATCH v4 4/4] hwmon: (pmbus/mpq2286) Add a support for mpq2286 Power Management IC Saravanan Sekar
2023-10-26  0:52   ` Guenter Roeck

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.