* [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730
@ 2026-05-29 5:42 ASHISH YADAV
2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV
2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV
0 siblings, 2 replies; 5+ messages in thread
From: ASHISH YADAV @ 2026-05-29 5:42 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-hwmon, devicetree, linux-kernel, Ashish Yadav
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 2197 bytes --]
From: Ashish Yadav <ashish.yadav@infineon.com>
Hi,
These patches add support for Infineon XDP720/XDP730 Digital eFuse
Controllers.
The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers
with an integrated current sensor.They provide accurate system
telemetry (V, I, P, T) and report analog current at the IMON pin for
post-processing.
Both parts share the same PMBus register map and direct-format
coefficients; they differ in the GIMON gain step exposed via the
TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number
(XDP720: pin 9, XDP730: pin 20).
The Current and Power measurement depends on the RIMON and GIMON values.
The GIMON (microA/A) depends on the 10th bit of TELEMETRY_AVG PMBUS Register.
The value of RIMON (kohm) can be provided by the user through device tree using
infineon,rimon-micro-ohms property.
Datasheets:
- XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf
- XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf
With Best Regards,
Ashish Yadav
---
Changes in v2:
- Link to v1:
https://lore.kernel.org/all/20260519075558.91466-1-Ashish.Yadav@infineon.com/
- Integrated XDP720/XDP730 drivers into one driver.
https://lore.kernel.org/all/51133193-57fb-4a22-bf9e-9817f1f52ad5@roeck-us.net/
Ashish Yadav (2):
dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730
hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730
.../bindings/hwmon/pmbus/infineon,xdp720.yaml | 59 -------
.../bindings/hwmon/pmbus/infineon,xdp730.yaml | 80 +++++++++
drivers/hwmon/pmbus/Kconfig | 8 +-
drivers/hwmon/pmbus/Makefile | 2 +-
drivers/hwmon/pmbus/xdp720.c | 128 --------------
drivers/hwmon/pmbus/xdp730.c | 159 ++++++++++++++++++
6 files changed, 244 insertions(+), 192 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml
delete mode 100644 drivers/hwmon/pmbus/xdp720.c
create mode 100644 drivers/hwmon/pmbus/xdp730.c
--
2.39.5
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730
2026-05-29 5:42 [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730 ASHISH YADAV
@ 2026-05-29 5:42 ` ASHISH YADAV
2026-05-29 6:00 ` sashiko-bot
2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV
1 sibling, 1 reply; 5+ messages in thread
From: ASHISH YADAV @ 2026-05-29 5:42 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-hwmon, devicetree, linux-kernel, Ashish Yadav
From: Ashish Yadav <ashish.yadav@infineon.com>
Add documentation for the device tree binding of the XDP720/XDP730
eFuse Controllers.
Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com>
---
.../bindings/hwmon/pmbus/infineon,xdp720.yaml | 59 --------------
.../bindings/hwmon/pmbus/infineon,xdp730.yaml | 80 +++++++++++++++++++
2 files changed, 80 insertions(+), 59 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml
create mode 100644 Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml
diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml
deleted file mode 100644
index 72bc3a5e7139..000000000000
--- a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp720.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-
-$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp720.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Infineon XDP720 Digital eFuse Controller
-
-maintainers:
- - Ashish Yadav <ashish.yadav@infineon.com>
-
-description: |
- The XDP720 is an eFuse with integrated current sensor and digital
- controller. It provides accurate system telemetry (V, I, P, T) and
- reports analog current at the IMON pin for post-processing.
-
- Datasheet:
- https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf
-
-properties:
- compatible:
- enum:
- - infineon,xdp720
-
- reg:
- maxItems: 1
-
- infineon,rimon-micro-ohms:
- description:
- The value of the RIMON resistor, in micro ohms, required to enable
- the system overcurrent protection.
-
- vdd-vin-supply:
- description:
- Supply for the VDD_VIN pin (pin 9), the IC controller power supply.
- Typically connected to the input bus (VIN) through a 100 ohm / 100 nF
- RC filter.
-
-required:
- - compatible
- - reg
- - vdd-vin-supply
-
-additionalProperties: false
-
-examples:
- - |
- i2c {
- #address-cells = <1>;
- #size-cells = <0>;
-
- hwmon@11 {
- compatible = "infineon,xdp720";
- reg = <0x11>;
- vdd-vin-supply = <&vdd_vin>;
- infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */
- };
- };
diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml
new file mode 100644
index 000000000000..fdbc577bccdd
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,xdp730.yaml
@@ -0,0 +1,80 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp730.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Infineon XDP720 / XDP730 Digital eFuse Controllers
+
+maintainers:
+ - Ashish Yadav <ashish.yadav@infineon.com>
+
+description: |
+ The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers
+ with an integrated current sensor. They provide accurate system
+ telemetry (V, I, P, T) and report analog current at the IMON pin for
+ post-processing.
+
+ Both parts share the same PMBus register map and direct-format
+ coefficients; they differ in the GIMON gain step exposed via the
+ TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number
+ (XDP720: pin 9, XDP730: pin 20).
+
+ Datasheets:
+ - XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf
+ - XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf
+
+properties:
+ compatible:
+ enum:
+ - infineon,xdp720
+ - infineon,xdp730
+
+ reg:
+ maxItems: 1
+
+ infineon,rimon-micro-ohms:
+ description:
+ The value of the RIMON resistor, in micro ohms, required to enable
+ the system overcurrent protection.
+
+ vdd-vin-supply:
+ description:
+ Supply for the VDD_VIN pin (XDP720 pin 9, XDP730 pin 20), the IC
+ controller power supply. Typically connected to the input bus
+ (VIN) through a 100 ohm / 100 nF RC filter.
+
+required:
+ - compatible
+ - reg
+ - vdd-vin-supply
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ efuse@11 {
+ compatible = "infineon,xdp720";
+ reg = <0x11>;
+ vdd-vin-supply = <&vdd_vin>;
+ infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */
+ };
+ };
+
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ efuse@12 {
+ compatible = "infineon,xdp730";
+ reg = <0x12>;
+ vdd-vin-supply = <&vdd_vin>;
+ infineon,rimon-micro-ohms = <1098000000>; /* 1.098k ohm */
+ };
+ };
--
2.39.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730
2026-05-29 5:42 [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730 ASHISH YADAV
2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV
@ 2026-05-29 5:42 ` ASHISH YADAV
2026-05-29 6:29 ` sashiko-bot
1 sibling, 1 reply; 5+ messages in thread
From: ASHISH YADAV @ 2026-05-29 5:42 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-hwmon, devicetree, linux-kernel, Ashish Yadav
From: Ashish Yadav <ashish.yadav@infineon.com>
Add the pmbus driver for Infineon XDP720/XDP730 Digital eFuse
Controllers.
Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com>
---
XDP720/XDP730 Digital eFuse Controllers provides accurate system telemetry
(V, I, P, T) and reports analog current at the IMON pin for post-processing.
The Current and Power measurement depends on the RIMON and GIMON values.
The GIMON (microA/A) depends on the 10th bit of TELEMETRY_AVG PMBUS Register.
The value of RIMON (kohm) can be provided by the user through device tree using
infineon,rimon-micro-ohms property.
---
drivers/hwmon/pmbus/Kconfig | 8 +-
drivers/hwmon/pmbus/Makefile | 2 +-
drivers/hwmon/pmbus/xdp720.c | 128 ----------------------------
drivers/hwmon/pmbus/xdp730.c | 159 +++++++++++++++++++++++++++++++++++
4 files changed, 164 insertions(+), 133 deletions(-)
delete mode 100644 drivers/hwmon/pmbus/xdp720.c
create mode 100644 drivers/hwmon/pmbus/xdp730.c
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index 8f4bff375ecb..eb3ed41c6fdc 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -711,14 +711,14 @@ config SENSORS_XDP710
This driver can also be built as a module. If so, the module will
be called xdp710.
-config SENSORS_XDP720
- tristate "Infineon XDP720 family"
+config SENSORS_XDP730
+ tristate "Infineon XDP730 family"
help
If you say yes here you get hardware monitoring support for Infineon
- XDP720.
+ XDP720 and XDP730 Digital eFuse Controllers.
This driver can also be built as a module. If so, the module will
- be called xdp720.
+ be called xdp730.
config SENSORS_XDPE152
tristate "Infineon XDPE152 family"
diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
index 7129b62bc00f..6d31082aa91f 100644
--- a/drivers/hwmon/pmbus/Makefile
+++ b/drivers/hwmon/pmbus/Makefile
@@ -69,7 +69,7 @@ obj-$(CONFIG_SENSORS_TPS546D24) += tps546d24.o
obj-$(CONFIG_SENSORS_UCD9000) += ucd9000.o
obj-$(CONFIG_SENSORS_UCD9200) += ucd9200.o
obj-$(CONFIG_SENSORS_XDP710) += xdp710.o
-obj-$(CONFIG_SENSORS_XDP720) += xdp720.o
+obj-$(CONFIG_SENSORS_XDP730) += xdp730.o
obj-$(CONFIG_SENSORS_XDPE122) += xdpe12284.o
obj-$(CONFIG_SENSORS_XDPE152) += xdpe152c4.o
obj-$(CONFIG_SENSORS_XDPE1A2G7B) += xdpe1a2g7b.o
diff --git a/drivers/hwmon/pmbus/xdp720.c b/drivers/hwmon/pmbus/xdp720.c
deleted file mode 100644
index 8729a771f216..000000000000
--- a/drivers/hwmon/pmbus/xdp720.c
+++ /dev/null
@@ -1,128 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Hardware monitoring driver for Infineon XDP720 Digital eFuse Controller
- *
- * Copyright (c) 2026 Infineon Technologies. All rights reserved.
- */
-
-#include <linux/i2c.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/of_device.h>
-#include <linux/bitops.h>
-#include <linux/math64.h>
-#include "pmbus.h"
-
-/*
- * The IMON resistor required to generate the system overcurrent protection.
- * Arbitrary default Rimon value: 2k Ohm
- */
-#define XDP720_DEFAULT_RIMON 2000000000 /* 2k ohm */
-#define XDP720_TELEMETRY_AVG 0xE9
-
-static struct pmbus_driver_info xdp720_info = {
- .pages = 1,
- .format[PSC_VOLTAGE_IN] = direct,
- .format[PSC_VOLTAGE_OUT] = direct,
- .format[PSC_CURRENT_OUT] = direct,
- .format[PSC_POWER] = direct,
- .format[PSC_TEMPERATURE] = direct,
-
- .m[PSC_VOLTAGE_IN] = 4653,
- .b[PSC_VOLTAGE_IN] = 0,
- .R[PSC_VOLTAGE_IN] = -2,
- .m[PSC_VOLTAGE_OUT] = 4653,
- .b[PSC_VOLTAGE_OUT] = 0,
- .R[PSC_VOLTAGE_OUT] = -2,
- /*
- * Current and Power measurement depends on the RIMON (kOhm) and
- * GIMON(microA/A) values.
- */
- .m[PSC_CURRENT_OUT] = 24668,
- .b[PSC_CURRENT_OUT] = 0,
- .R[PSC_CURRENT_OUT] = -4,
- .m[PSC_POWER] = 4486,
- .b[PSC_POWER] = 0,
- .R[PSC_POWER] = -1,
- .m[PSC_TEMPERATURE] = 54,
- .b[PSC_TEMPERATURE] = 22521,
- .R[PSC_TEMPERATURE] = -1,
-
- .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_PIN |
- PMBUS_HAVE_TEMP | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_INPUT |
- PMBUS_HAVE_STATUS_TEMP,
-};
-
-static int xdp720_probe(struct i2c_client *client)
-{
- struct pmbus_driver_info *info;
- int ret;
- u32 rimon;
- int gimon;
-
- info = devm_kmemdup(&client->dev, &xdp720_info, sizeof(*info),
- GFP_KERNEL);
- if (!info)
- return -ENOMEM;
-
- ret = devm_regulator_get_enable(&client->dev, "vdd-vin");
- if (ret)
- return dev_err_probe(&client->dev, ret,
- "failed to enable vdd-vin supply\n");
-
- ret = i2c_smbus_read_word_data(client, XDP720_TELEMETRY_AVG);
- if (ret < 0) {
- dev_err(&client->dev, "Can't get TELEMETRY_AVG\n");
- return ret;
- }
-
- ret >>= 10; /* 10th bit of TELEMETRY_AVG REG for GIMON Value */
- ret &= GENMASK(0, 0);
- if (ret == 1)
- gimon = 18200; /* output gain 18.2 microA/A */
- else
- gimon = 9100; /* output gain 9.1 microA/A */
-
- if (of_property_read_u32(client->dev.of_node,
- "infineon,rimon-micro-ohms", &rimon))
- rimon = XDP720_DEFAULT_RIMON; /* Default if not set via DT */
- if (rimon == 0)
- return -EINVAL;
-
- /* Adapt the current and power scale for each instance */
- info->m[PSC_CURRENT_OUT] = DIV64_U64_ROUND_CLOSEST((u64)
- info->m[PSC_CURRENT_OUT] * rimon * gimon, 1000000000000ULL);
- info->m[PSC_POWER] = DIV64_U64_ROUND_CLOSEST((u64)
- info->m[PSC_POWER] * rimon * gimon, 1000000000000000ULL);
-
- return pmbus_do_probe(client, info);
-}
-
-static const struct of_device_id xdp720_of_match[] = {
- { .compatible = "infineon,xdp720" },
- {}
-};
-MODULE_DEVICE_TABLE(of, xdp720_of_match);
-
-static const struct i2c_device_id xdp720_id[] = {
- { "xdp720" },
- {}
-};
-MODULE_DEVICE_TABLE(i2c, xdp720_id);
-
-static struct i2c_driver xdp720_driver = {
- .driver = {
- .name = "xdp720",
- .of_match_table = xdp720_of_match,
- },
- .probe = xdp720_probe,
- .id_table = xdp720_id,
-};
-
-module_i2c_driver(xdp720_driver);
-
-MODULE_AUTHOR("Ashish Yadav <ashish.yadav@infineon.com>");
-MODULE_DESCRIPTION("PMBus driver for Infineon XDP720 Digital eFuse Controller");
-MODULE_LICENSE("GPL");
-MODULE_IMPORT_NS("PMBUS");
diff --git a/drivers/hwmon/pmbus/xdp730.c b/drivers/hwmon/pmbus/xdp730.c
new file mode 100644
index 000000000000..3d6cb0614fe7
--- /dev/null
+++ b/drivers/hwmon/pmbus/xdp730.c
@@ -0,0 +1,159 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Hardware monitoring driver for Infineon XDP720 / XDP730 Digital
+ * eFuse Controllers.
+ *
+ * Both parts share the same PMBus register map and direct-format
+ * coefficients; they differ in the GIMON gain step exposed via
+ * the TELEMETRY_AVG register and in the VDD_VIN pin number.
+ *
+ * Copyright (c) 2026 Infineon Technologies. All rights reserved.
+ */
+
+#include <linux/bitops.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/math64.h>
+#include <linux/module.h>
+#include <linux/of_device.h>
+#include <linux/property.h>
+#include <linux/regulator/consumer.h>
+#include "pmbus.h"
+
+/*
+ * The IMON resistor required to generate the system overcurrent
+ * protection. Arbitrary default Rimon value: 2 kOhm (in micro-ohms).
+ */
+#define XDP730_DEFAULT_RIMON 2000000000U /* 2 kohm */
+#define XDP730_TELEMETRY_AVG 0xE9
+#define XDP730_TELEMETRY_AVG_GIMON BIT(10) /* high/low GIMON select */
+
+/* Chip identifiers carried in OF match-data and i2c_device_id->driver_data. */
+enum xdp730_chip_id {
+ CHIP_XDP720 = 0,
+ CHIP_XDP730,
+};
+
+struct xdp730_data {
+ enum xdp730_chip_id id;
+ struct pmbus_driver_info info;
+};
+
+static const struct pmbus_driver_info xdp730_info = {
+ .pages = 1,
+ .format[PSC_VOLTAGE_IN] = direct,
+ .format[PSC_VOLTAGE_OUT] = direct,
+ .format[PSC_CURRENT_OUT] = direct,
+ .format[PSC_POWER] = direct,
+ .format[PSC_TEMPERATURE] = direct,
+
+ .m[PSC_VOLTAGE_IN] = 4653,
+ .b[PSC_VOLTAGE_IN] = 0,
+ .R[PSC_VOLTAGE_IN] = -2,
+ .m[PSC_VOLTAGE_OUT] = 4653,
+ .b[PSC_VOLTAGE_OUT] = 0,
+ .R[PSC_VOLTAGE_OUT] = -2,
+ /*
+ * Current and Power measurement depend on the RIMON (micro-ohm)
+ * and GIMON (microA/A) values; scaled per-instance in probe().
+ */
+ .m[PSC_CURRENT_OUT] = 24668,
+ .b[PSC_CURRENT_OUT] = 0,
+ .R[PSC_CURRENT_OUT] = -4,
+ .m[PSC_POWER] = 4486,
+ .b[PSC_POWER] = 0,
+ .R[PSC_POWER] = -1,
+ .m[PSC_TEMPERATURE] = 54,
+ .b[PSC_TEMPERATURE] = 22521,
+ .R[PSC_TEMPERATURE] = -1,
+
+ .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_PIN |
+ PMBUS_HAVE_TEMP | PMBUS_HAVE_IOUT |
+ PMBUS_HAVE_STATUS_INPUT | PMBUS_HAVE_STATUS_TEMP,
+};
+
+static int xdp730_probe(struct i2c_client *client)
+{
+ struct xdp730_data *data;
+ int ret;
+ int gimon;
+ u32 rimon;
+
+ data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL);
+ if (!data)
+ return -ENOMEM;
+
+ data->id = (enum xdp730_chip_id)(uintptr_t)i2c_get_match_data(client);
+ data->info = xdp730_info;
+
+ ret = devm_regulator_get_enable(&client->dev, "vdd-vin");
+ if (ret)
+ return dev_err_probe(&client->dev, ret,
+ "failed to enable vdd-vin supply\n");
+
+ ret = i2c_smbus_read_word_data(client, XDP730_TELEMETRY_AVG);
+ if (ret < 0)
+ return dev_err_probe(&client->dev, ret,
+ "failed to read TELEMETRY_AVG\n");
+
+ /* Bit 10 of TELEMETRY_AVG selects the GIMON gain step in microA/A */
+ switch (data->id) {
+ case CHIP_XDP720:
+ gimon = (ret & XDP730_TELEMETRY_AVG_GIMON) ? 18200 : 9100;
+ dev_info(&client->dev, "Initialised XDP720 instance\n");
+ break;
+ case CHIP_XDP730:
+ gimon = (ret & XDP730_TELEMETRY_AVG_GIMON) ? 20000 : 10000;
+ dev_info(&client->dev, "Initialised XDP730 instance\n");
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ if (device_property_read_u32(&client->dev,
+ "infineon,rimon-micro-ohms", &rimon))
+ rimon = XDP730_DEFAULT_RIMON; /* Default if not in FW */
+ if (rimon == 0)
+ return -EINVAL;
+
+ /* Adapt the current and power scale for each instance. */
+ data->info.m[PSC_CURRENT_OUT] = DIV64_U64_ROUND_CLOSEST((u64)
+ data->info.m[PSC_CURRENT_OUT] * rimon * gimon,
+ 1000000000000ULL);
+ data->info.m[PSC_POWER] = DIV64_U64_ROUND_CLOSEST((u64)
+ data->info.m[PSC_POWER] * rimon * gimon,
+ 1000000000000000ULL);
+
+ return pmbus_do_probe(client, &data->info);
+}
+
+static const struct of_device_id xdp730_of_match[] = {
+ { .compatible = "infineon,xdp720", .data = (void *)CHIP_XDP720 },
+ { .compatible = "infineon,xdp730", .data = (void *)CHIP_XDP730 },
+ { }
+};
+MODULE_DEVICE_TABLE(of, xdp730_of_match);
+
+static const struct i2c_device_id xdp730_id[] = {
+ { "xdp720", CHIP_XDP720 },
+ { "xdp730", CHIP_XDP730 },
+ { }
+};
+MODULE_DEVICE_TABLE(i2c, xdp730_id);
+
+static struct i2c_driver xdp730_driver = {
+ .driver = {
+ .name = "xdp730",
+ .of_match_table = xdp730_of_match,
+ },
+ .probe = xdp730_probe,
+ .id_table = xdp730_id,
+};
+
+module_i2c_driver(xdp730_driver);
+
+MODULE_AUTHOR("Ashish Yadav <ashish.yadav@infineon.com>");
+MODULE_DESCRIPTION("PMBus driver for Infineon XDP720/XDP730 Digital eFuse Controllers");
+MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS("PMBUS");
--
2.39.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730
2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV
@ 2026-05-29 6:00 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-05-29 6:00 UTC (permalink / raw)
To: ASHISH YADAV; +Cc: devicetree, conor+dt, linux-hwmon, robh
> From: Ashish Yadav <ashish.yadav@infineon.com>
>
> Add documentation for the device tree binding of the XDP720/XDP730
> eFuse Controllers.
>
> Signed-off-by: Ashish Yadav <ashish.yadav@infineon.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260529054218.5184-1-Ashish.Yadav@infineon.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730
2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV
@ 2026-05-29 6:29 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-05-29 6:29 UTC (permalink / raw)
To: ASHISH YADAV; +Cc: robh, devicetree, linux-hwmon, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Renaming the Kconfig symbol, module, and driver from 'xdp720' to 'xdp730' breaks existing kernel and userspace configurations.
--
commit 83256f5e0c4297d842a3fc2a6730dfe5ce709501
Author: Ashish Yadav <ashish.yadav@infineon.com>
hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730
This commit adds support for the Infineon XDP730 Digital eFuse Controller by
updating the existing XDP720 driver. It renames the Kconfig symbol, module,
and source file to reflect the expanded family support.
> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
> --- a/drivers/hwmon/pmbus/Kconfig
> +++ b/drivers/hwmon/pmbus/Kconfig
> @@ -711,14 +711,14 @@ config SENSORS_XDP710
> This driver can also be built as a module. If so, the module will
> be called xdp710.
>
> -config SENSORS_XDP720
> - tristate "Infineon XDP720 family"
> +config SENSORS_XDP730
> + tristate "Infineon XDP730 family"
[Severity: Medium]
Does this renaming break existing kernel configurations?
When users upgrade, their existing CONFIG_SENSORS_XDP720 setting will be
silently dropped (e.g., during make olddefconfig), resulting in an unintended
loss of hardware monitoring capabilities for the XDP720.
Would it be safer to preserve the existing Kconfig symbol and only update
the prompt and help text to reflect the expanded support?
> help
> If you say yes here you get hardware monitoring support for Infineon
> - XDP720.
> + XDP720 and XDP730 Digital eFuse Controllers.
>
> This driver can also be built as a module. If so, the module will
> - be called xdp720.
> + be called xdp730.
>
> config SENSORS_XDPE152
> tristate "Infineon XDPE152 family"
> diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
> --- a/drivers/hwmon/pmbus/Makefile
> +++ b/drivers/hwmon/pmbus/Makefile
> @@ -69,7 +69,7 @@ obj-$(CONFIG_SENSORS_TPS546D24) += tps546d24.o
> obj-$(CONFIG_SENSORS_UCD9000) += ucd9000.o
> obj-$(CONFIG_SENSORS_UCD9200) += ucd9200.o
> obj-$(CONFIG_SENSORS_XDP710) += xdp710.o
> -obj-$(CONFIG_SENSORS_XDP720) += xdp720.o
> +obj-$(CONFIG_SENSORS_XDP730) += xdp730.o
[Severity: Medium]
Will changing the module and driver name to xdp730 break userspace scripts
and expectations?
Any explicit module load rules (e.g., in /etc/modules) or sysfs paths that
currently depend on the old xdp720 name might fail after this update.
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260529054218.5184-1-Ashish.Yadav@infineon.com?part=2
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-05-29 6:29 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-29 5:42 [PATCH v2 0/2] Add support for Infineon eFuse XDP720/XDP730 ASHISH YADAV
2026-05-29 5:42 ` [PATCH v2 1/2] dt-bindings: hwmon/pmbus: Add Infineon XDP720/XDP730 ASHISH YADAV
2026-05-29 6:00 ` sashiko-bot
2026-05-29 5:42 ` [PATCH v2 2/2] hwmon:(pmbus/xdp730) Add support for efuse xdp720/xdp730 ASHISH YADAV
2026-05-29 6:29 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox