All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/3] Support XDPE112
@ 2022-03-02  9:49 Marcello Sylvester Bauer
  2022-03-02  9:49 ` [PATCH v4 1/3] dt-bindings: trivial-devices: Add xdpe11280 Marcello Sylvester Bauer
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Marcello Sylvester Bauer @ 2022-03-02  9:49 UTC (permalink / raw)
  To: Guenter Roeck, Jean Delvare
  Cc: linux-kernel, linux-hwmon, Patrick Rudolph,
	Marcello Sylvester Bauer

Add support for Infineon Multi-phase XDPE112 family regulator. The main
difference to the XDPE122 family is it uses a different format for
voltage out. Add the required logic to the existing xdpe12284 driver
accordingly.

Changes in v4:
- move VOUT_MODE format detection into identify function

Changes in v3:
- detect VOUT_MODE during probing
- set xdpe122_identify/xdpe122_read_word_data only if VOUT is vid

Changes in v2:
- rebase on current hwmon-next branch

Marcello Sylvester Bauer (3):
  dt-bindings: trivial-devices: Add xdpe11280
  hwmon (xdpe12284): Add support for xdpe11280
  hwmon (xdpe12284): Add regulator support

 .../devicetree/bindings/trivial-devices.yaml  |  2 ++
 Documentation/hwmon/xdpe12284.rst             | 12 ++++---
 drivers/hwmon/pmbus/Kconfig                   |  6 ++++
 drivers/hwmon/pmbus/xdpe12284.c               | 32 +++++++++++++++++--
 4 files changed, 45 insertions(+), 7 deletions(-)

-- 
2.35.1


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

* [PATCH v4 1/3] dt-bindings: trivial-devices: Add xdpe11280
  2022-03-02  9:49 [PATCH v4 0/3] Support XDPE112 Marcello Sylvester Bauer
@ 2022-03-02  9:49 ` Marcello Sylvester Bauer
  2022-03-02  9:49 ` [PATCH v4 2/3] hwmon (xdpe12284): Add support for xdpe11280 Marcello Sylvester Bauer
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Marcello Sylvester Bauer @ 2022-03-02  9:49 UTC (permalink / raw)
  To: Guenter Roeck, Jean Delvare, Rob Herring
  Cc: linux-kernel, linux-hwmon, Patrick Rudolph,
	Marcello Sylvester Bauer, Rob Herring, devicetree

Add Infineon Multi-phase Digital Controller XDPE11280.

Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/trivial-devices.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 1c49bbc654ee..da929cb08463 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -137,6 +137,8 @@ properties:
           - infineon,slb9645tt
             # Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor
           - infineon,tlv493d-a1b6
+            # Infineon Multi-phase Digital VR Controller xdpe11280
+          - infineon,xdpe11280
             # Infineon Multi-phase Digital VR Controller xdpe12254
           - infineon,xdpe12254
             # Infineon Multi-phase Digital VR Controller xdpe12284
-- 
2.35.1


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

* [PATCH v4 2/3] hwmon (xdpe12284): Add support for xdpe11280
  2022-03-02  9:49 [PATCH v4 0/3] Support XDPE112 Marcello Sylvester Bauer
  2022-03-02  9:49 ` [PATCH v4 1/3] dt-bindings: trivial-devices: Add xdpe11280 Marcello Sylvester Bauer
@ 2022-03-02  9:49 ` Marcello Sylvester Bauer
  2022-03-02  9:49 ` [PATCH v4 3/3] hwmon (xdpe12284): Add regulator support Marcello Sylvester Bauer
  2022-03-02 17:52 ` [PATCH v4 0/3] Support XDPE112 Guenter Roeck
  3 siblings, 0 replies; 5+ messages in thread
From: Marcello Sylvester Bauer @ 2022-03-02  9:49 UTC (permalink / raw)
  To: Guenter Roeck, Jean Delvare, Jonathan Corbet
  Cc: linux-kernel, linux-hwmon, Patrick Rudolph,
	Marcello Sylvester Bauer, linux-doc

Add support for another Infineon Multi-phase controller chip. The
xdpe11280 uses linear instead of vid data format for VOUT. Detect
VOUT_MODE format during identification and skip the xdpe122 related
adaptions in case it is linear.

Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io>
---
 Documentation/hwmon/xdpe12284.rst | 12 ++++++++----
 drivers/hwmon/pmbus/xdpe12284.c   | 21 ++++++++++++++++++---
 2 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/Documentation/hwmon/xdpe12284.rst b/Documentation/hwmon/xdpe12284.rst
index 67d1f87808e5..a224dc74ad35 100644
--- a/Documentation/hwmon/xdpe12284.rst
+++ b/Documentation/hwmon/xdpe12284.rst
@@ -5,6 +5,10 @@ Kernel driver xdpe122
 
 Supported chips:
 
+  * Infineon XDPE11280
+
+    Prefix: 'xdpe11280'
+
   * Infineon XDPE12254
 
     Prefix: 'xdpe12254'
@@ -20,10 +24,10 @@ Authors:
 Description
 -----------
 
-This driver implements support for Infineon Multi-phase XDPE122 family
-dual loop voltage regulators.
-The family includes XDPE12284 and XDPE12254 devices.
-The devices from this family complaint with:
+This driver implements support for Infineon Multi-phase XDPE112 and XDPE122
+family dual loop voltage regulators.
+These families include XDPE11280, XDPE12284 and XDPE12254 devices.
+The devices from this family compliant with:
 
 - Intel VR13 and VR13HC rev 1.3, IMVP8 rev 1.2 and IMPVP9 rev 1.3 DC-DC
   converter specification.
diff --git a/drivers/hwmon/pmbus/xdpe12284.c b/drivers/hwmon/pmbus/xdpe12284.c
index b07da06a40c9..b979c88d2e87 100644
--- a/drivers/hwmon/pmbus/xdpe12284.c
+++ b/drivers/hwmon/pmbus/xdpe12284.c
@@ -76,7 +76,22 @@ static int xdpe122_identify(struct i2c_client *client,
 			    struct pmbus_driver_info *info)
 {
 	u8 vout_params;
-	int i, ret;
+	int i, ret, vout_mode;
+
+	vout_mode = pmbus_read_byte_data(client, 0, PMBUS_VOUT_MODE);
+	if (vout_mode >= 0 && vout_mode != 0xff) {
+		switch (vout_mode >> 5) {
+		case 0:
+			info->format[PSC_VOLTAGE_OUT] = linear;
+			return 0;
+		case 1:
+			info->format[PSC_VOLTAGE_OUT] = vid;
+			info->read_word_data = xdpe122_read_word_data;
+			break;
+		default:
+			return -ENODEV;
+		}
+	}
 
 	for (i = 0; i < XDPE122_PAGE_NUM; i++) {
 		/* Read the register with VOUT scaling value.*/
@@ -110,7 +125,6 @@ static int xdpe122_identify(struct i2c_client *client,
 static struct pmbus_driver_info xdpe122_info = {
 	.pages = XDPE122_PAGE_NUM,
 	.format[PSC_VOLTAGE_IN] = linear,
-	.format[PSC_VOLTAGE_OUT] = vid,
 	.format[PSC_TEMPERATURE] = linear,
 	.format[PSC_CURRENT_IN] = linear,
 	.format[PSC_CURRENT_OUT] = linear,
@@ -124,7 +138,6 @@ static struct pmbus_driver_info xdpe122_info = {
 		PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP |
 		PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT,
 	.identify = xdpe122_identify,
-	.read_word_data = xdpe122_read_word_data,
 };
 
 static int xdpe122_probe(struct i2c_client *client)
@@ -140,6 +153,7 @@ static int xdpe122_probe(struct i2c_client *client)
 }
 
 static const struct i2c_device_id xdpe122_id[] = {
+	{"xdpe11280", 0},
 	{"xdpe12254", 0},
 	{"xdpe12284", 0},
 	{}
@@ -148,6 +162,7 @@ static const struct i2c_device_id xdpe122_id[] = {
 MODULE_DEVICE_TABLE(i2c, xdpe122_id);
 
 static const struct of_device_id __maybe_unused xdpe122_of_match[] = {
+	{.compatible = "infineon,xdpe11280"},
 	{.compatible = "infineon,xdpe12254"},
 	{.compatible = "infineon,xdpe12284"},
 	{}
-- 
2.35.1


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

* [PATCH v4 3/3] hwmon (xdpe12284): Add regulator support
  2022-03-02  9:49 [PATCH v4 0/3] Support XDPE112 Marcello Sylvester Bauer
  2022-03-02  9:49 ` [PATCH v4 1/3] dt-bindings: trivial-devices: Add xdpe11280 Marcello Sylvester Bauer
  2022-03-02  9:49 ` [PATCH v4 2/3] hwmon (xdpe12284): Add support for xdpe11280 Marcello Sylvester Bauer
@ 2022-03-02  9:49 ` Marcello Sylvester Bauer
  2022-03-02 17:52 ` [PATCH v4 0/3] Support XDPE112 Guenter Roeck
  3 siblings, 0 replies; 5+ messages in thread
From: Marcello Sylvester Bauer @ 2022-03-02  9:49 UTC (permalink / raw)
  To: Guenter Roeck, Jean Delvare
  Cc: linux-kernel, linux-hwmon, Patrick Rudolph,
	Marcello Sylvester Bauer

Add simple on/off regulator support for xdpe12284 and
other pmbus parts supported by the xdpe12284 driver.

Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io>
---
 drivers/hwmon/pmbus/Kconfig     |  6 ++++++
 drivers/hwmon/pmbus/xdpe12284.c | 11 +++++++++++
 2 files changed, 17 insertions(+)

diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index 6552467c588d..a2ea1d5a8765 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -417,6 +417,12 @@ config SENSORS_XDPE122
 	  This driver can also be built as a module. If so, the module will
 	  be called xdpe12284.
 
+config SENSORS_XDPE122_REGULATOR
+	bool "Regulator support for XDPE122 and compatibles"
+	depends on SENSORS_XDPE122 && REGULATOR
+	help
+	  Uses the xdpe12284 or compatible as regulator.
+
 config SENSORS_ZL6100
 	tristate "Intersil ZL6100 and compatibles"
 	help
diff --git a/drivers/hwmon/pmbus/xdpe12284.c b/drivers/hwmon/pmbus/xdpe12284.c
index b979c88d2e87..18fffc5d749b 100644
--- a/drivers/hwmon/pmbus/xdpe12284.c
+++ b/drivers/hwmon/pmbus/xdpe12284.c
@@ -10,6 +10,8 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/regulator/driver.h>
+
 #include "pmbus.h"
 
 #define XDPE122_PROT_VR12_5MV		0x01 /* VR12.0 mode, 5-mV DAC */
@@ -122,6 +124,11 @@ static int xdpe122_identify(struct i2c_client *client,
 	return 0;
 }
 
+static const struct regulator_desc xdpe122_reg_desc[] = {
+	PMBUS_REGULATOR("vout", 0),
+	PMBUS_REGULATOR("vout", 1),
+};
+
 static struct pmbus_driver_info xdpe122_info = {
 	.pages = XDPE122_PAGE_NUM,
 	.format[PSC_VOLTAGE_IN] = linear,
@@ -138,6 +145,10 @@ static struct pmbus_driver_info xdpe122_info = {
 		PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP |
 		PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT,
 	.identify = xdpe122_identify,
+#if IS_ENABLED(CONFIG_SENSORS_XDPE122_REGULATOR)
+	.num_regulators = 2,
+	.reg_desc = xdpe122_reg_desc,
+#endif
 };
 
 static int xdpe122_probe(struct i2c_client *client)
-- 
2.35.1


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

* Re: [PATCH v4 0/3] Support XDPE112
  2022-03-02  9:49 [PATCH v4 0/3] Support XDPE112 Marcello Sylvester Bauer
                   ` (2 preceding siblings ...)
  2022-03-02  9:49 ` [PATCH v4 3/3] hwmon (xdpe12284): Add regulator support Marcello Sylvester Bauer
@ 2022-03-02 17:52 ` Guenter Roeck
  3 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2022-03-02 17:52 UTC (permalink / raw)
  To: Marcello Sylvester Bauer
  Cc: Jean Delvare, linux-kernel, linux-hwmon, Patrick Rudolph

On Wed, Mar 02, 2022 at 10:49:18AM +0100, Marcello Sylvester Bauer wrote:
> Add support for Infineon Multi-phase XDPE112 family regulator. The main
> difference to the XDPE122 family is it uses a different format for
> voltage out. Add the required logic to the existing xdpe12284 driver
> accordingly.
> 
> Changes in v4:
> - move VOUT_MODE format detection into identify function
> 
> Changes in v3:
> - detect VOUT_MODE during probing
> - set xdpe122_identify/xdpe122_read_word_data only if VOUT is vid
> 
> Changes in v2:
> - rebase on current hwmon-next branch
> 
> Marcello Sylvester Bauer (3):
>   dt-bindings: trivial-devices: Add xdpe11280
>   hwmon (xdpe12284): Add support for xdpe11280
>   hwmon (xdpe12284): Add regulator support
> 
>  .../devicetree/bindings/trivial-devices.yaml  |  2 ++
>  Documentation/hwmon/xdpe12284.rst             | 12 ++++---
>  drivers/hwmon/pmbus/Kconfig                   |  6 ++++
>  drivers/hwmon/pmbus/xdpe12284.c               | 32 +++++++++++++++++--
>  4 files changed, 45 insertions(+), 7 deletions(-)
> 

Series applied to hwmon-next.

Thanks,
Guenter


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

end of thread, other threads:[~2022-03-02 17:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-02  9:49 [PATCH v4 0/3] Support XDPE112 Marcello Sylvester Bauer
2022-03-02  9:49 ` [PATCH v4 1/3] dt-bindings: trivial-devices: Add xdpe11280 Marcello Sylvester Bauer
2022-03-02  9:49 ` [PATCH v4 2/3] hwmon (xdpe12284): Add support for xdpe11280 Marcello Sylvester Bauer
2022-03-02  9:49 ` [PATCH v4 3/3] hwmon (xdpe12284): Add regulator support Marcello Sylvester Bauer
2022-03-02 17:52 ` [PATCH v4 0/3] Support XDPE112 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.