mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v6 0/2] Add driver for Infineon TDA38740/TDA38725
@ 2026-09-18 10:23 Colin Huang
  2026-09-18 10:23 ` [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725 Colin Huang
  2026-09-18 10:23 ` [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725 Colin Huang
  0 siblings, 2 replies; 9+ messages in thread
From: Colin Huang @ 2026-09-18 10:23 UTC (permalink / raw)
  To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jonathan Corbet, Shuah Khan, Randy Dunlap
  Cc: linux-hwmon, devicetree, linux-kernel, colin.huang2, linux-doc,
	Colin Huang

Signed-off-by: Colin Huang <u8813345@gmail.com>
---
Changes in v6:
- Drop of_match_ptr() to support ACPI PRP0001 matching with CONFIG_OF disabled.
- Remove the now-unnecessary __maybe_unused annotation from the OF match table.
- Link to v5: https://lore.kernel.org/r/20260917-add-tda38740-and-tda38725-v5-0-7fc19668ada4@gmail.com

Changes in v5:
- Remove blank line in yaml header.
- Add interrupts property in yaml file.
- Uses a fallback compatible: infineon,tda38725 can be listed as a fallback for infineon,tda38740.
- Removed the driver-local identify callback and its duplicate VOUT_MODE check.
  and set format[PSC_VOLTAGE_OUT] = linear in the static driver info.
- Dropped the per-device tda38740_data allocation/copy path, since there is no longer any runtime mutation of driver info.
  Probe now passes the static tda38740_info directly to pmbus_do_probe().
- Link to v4: https://lore.kernel.org/r/20260910-add-tda38740-and-tda38725-v4-0-dbae7fabce09@gmail.com

Changes in v4:
- Fix the DT binding so that compatible only enumerates the valid
  hardware variants and does not imply a preferred or fallback
  selection policy.
- Remove the vout-scale-micro property and related code.
- Rename the example node to reflect the regulator function.
- Link to v3: https://lore.kernel.org/r/20260910-add-tda38740-and-tda38725-v3-0-3e87637da3d6@gmail.com

Changes in v3:
- Clarify that TDA38725 and TDA38740 share the same PMBus programming
  model, with infineon,tda38740 as the preferred compatible string and
  infineon,tda38725 as a compatibility alias.
- The optional VOUT scaling property with a documented default
  value of 1.0 to support devices that require output-voltage scaling.
- Update the driver to apply the scaling for READ_VOUT.
- Link to v2: https://lore.kernel.org/r/20260907-add-tda38740-and-tda38725-v2-0-1d051d63aa01@gmail.com

Changes in v2:
- Use standard http:// URIs for $id and $schema
- Add maintainers section.
- Use C99 named initializers.
- Link to v1: https://lore.kernel.org/r/20260907-add-tda38740-and-tda38725-v1-0-e2db1b2566b1@gmail.com

---
Colin Huang (2):
      dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725
      hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725

 .../bindings/hwmon/pmbus/infineon,tda38740.yaml    | 55 ++++++++++++++++++
 Documentation/hwmon/index.rst                      |  1 +
 Documentation/hwmon/tda38740.rst                   | 65 ++++++++++++++++++++++
 drivers/hwmon/pmbus/Kconfig                        |  9 +++
 drivers/hwmon/pmbus/Makefile                       |  1 +
 drivers/hwmon/pmbus/tda38740.c                     | 64 +++++++++++++++++++++
 6 files changed, 195 insertions(+)
---
base-commit: ba08432bda66a7889d8f3d1581dabf10f59b25eb
change-id: 20260903-add-tda38740-and-tda38725-32bbb097d41e

Best regards,
-- 
Colin Huang <u8813345@gmail.com>


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

* [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725
  2026-09-18 10:23 [PATCH v6 0/2] Add driver for Infineon TDA38740/TDA38725 Colin Huang
@ 2026-09-18 10:23 ` Colin Huang
  2026-09-19  7:18   ` Krzysztof Kozlowski
  2026-09-19 11:35   ` Guenter Roeck
  2026-09-18 10:23 ` [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725 Colin Huang
  1 sibling, 2 replies; 9+ messages in thread
From: Colin Huang @ 2026-09-18 10:23 UTC (permalink / raw)
  To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jonathan Corbet, Shuah Khan, Randy Dunlap
  Cc: linux-hwmon, devicetree, linux-kernel, colin.huang2, linux-doc,
	Colin Huang

Add devicetree bindings for the Infineon TDA38740 and TDA38725
single-voltage synchronous buck regulators with PMBus interface.

Signed-off-by: Colin Huang <u8813345@gmail.com>
---
 .../bindings/hwmon/pmbus/infineon,tda38740.yaml    | 55 ++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38740.yaml b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38740.yaml
new file mode 100644
index 000000000000..6733e44c37f6
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/pmbus/infineon,tda38740.yaml
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,tda38740.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Infineon TDA38740 and TDA38725 PMBus Synchronous Buck Regulator
+
+maintainers:
+  - Colin Huang <u8813345@gmail.com>
+
+description: |
+  The Infineon TDA38740/TDA38725 is a 40A/25A single-voltage synchronous
+  buck regulator with a PMBus interface designed for industrial use.
+
+  Datasheet:
+  https://www.infineon.com/row/public/documents/24/49/infineon-tda38740-tda38725-datasheet-en.pdf
+
+properties:
+  compatible:
+    oneOf:
+      - const: infineon,tda38740
+      - items:
+          - const: infineon,tda38725
+          - const: infineon,tda38740
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        regulator@40 {
+            compatible = "infineon,tda38725",
+                         "infineon,tda38740";
+            reg = <0x40>;
+
+            interrupt-parent = <&sgpiom0>;
+            interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+        };
+    };
+

-- 
2.34.1


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

* [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725
  2026-09-18 10:23 [PATCH v6 0/2] Add driver for Infineon TDA38740/TDA38725 Colin Huang
  2026-09-18 10:23 ` [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725 Colin Huang
@ 2026-09-18 10:23 ` Colin Huang
  2026-09-18 15:02   ` Guenter Roeck
  2026-09-19 11:36   ` Guenter Roeck
  1 sibling, 2 replies; 9+ messages in thread
From: Colin Huang @ 2026-09-18 10:23 UTC (permalink / raw)
  To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jonathan Corbet, Shuah Khan, Randy Dunlap
  Cc: linux-hwmon, devicetree, linux-kernel, colin.huang2, linux-doc,
	Colin Huang

Add a PMBus driver for Infineon TDA38740 and TDA38725
single-voltage synchronous buck regulators.

Signed-off-by: Colin Huang <u8813345@gmail.com>
---
 Documentation/hwmon/index.rst    |  1 +
 Documentation/hwmon/tda38740.rst | 65 ++++++++++++++++++++++++++++++++++++++++
 drivers/hwmon/pmbus/Kconfig      |  9 ++++++
 drivers/hwmon/pmbus/Makefile     |  1 +
 drivers/hwmon/pmbus/tda38740.c   | 64 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 140 insertions(+)

diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
index f07977a20271..aeff87b3d46d 100644
--- a/Documentation/hwmon/index.rst
+++ b/Documentation/hwmon/index.rst
@@ -265,6 +265,7 @@ Hardware Monitoring Kernel Drivers
    sy7636a-hwmon
    tc654
    tc74
+   tda38740
    thmc50
    tmp102
    tmp103
diff --git a/Documentation/hwmon/tda38740.rst b/Documentation/hwmon/tda38740.rst
new file mode 100644
index 000000000000..55ce12f14914
--- /dev/null
+++ b/Documentation/hwmon/tda38740.rst
@@ -0,0 +1,65 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+====================================
+Kernel driver tda38740
+====================================
+
+Supported chips:
+  * Infineon TDA38740
+  * Infineon TDA38725
+
+    Prefix: 'tda38740'
+
+    Addresses scanned: -
+
+    Datasheet:
+      https://www.infineon.com/row/public/documents/24/49/infineon-tda38740-tda38725-datasheet-en.pdf
+
+Author: Colin Huang <u8813345@gmail.com>
+
+Description
+-----------
+
+The TDA38740 and TDA38725 are single-output synchronous buck regulators with a
+PMBus interface. They expose basic voltage, current, power and temperature
+telemetry through the standard PMBus hwmon interfaces.
+
+Sysfs entries
+-------------
+
+======================= =======================================================
+curr1_alarm		Input current alarm
+curr1_input		Measured input current
+curr1_label		"iin"
+
+curr2_crit		Critical maximum output current
+curr2_crit_alarm	Output current critical high alarm
+curr2_input		Measured output current
+curr2_label		"iout"
+
+in1_crit		Critical maximum input voltage
+in1_crit_alarm		Input voltage critical high alarm
+in1_input		Measured input voltage
+in1_label		"vin"
+
+in2_crit		Critical maximum output voltage
+in2_crit_alarm		Output voltage critical high alarm
+in2_input		Measured output voltage
+in2_label		"vout"
+in2_lcrit		Critical minimum output voltage
+in2_lcrit_alarm		Output voltage critical low alarm
+
+power1_alarm		Input power alarm
+power1_input		Measured input power
+power1_label		"pin"
+
+power2_input		Measured output power
+power2_label		"pout"
+
+temp1_crit		Critical high temperature
+temp1_crit_alarm	Chip temperature critical high alarm
+temp1_input		Measured temperature
+temp1_max		Maximum temperature
+temp1_max_alarm		Chip temperature high alarm
+======================= =======================================================
+
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index bcfdc4ce4c10..e4ca80dd0574 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -763,6 +763,15 @@ config SENSORS_TDA38640_REGULATOR
 	  If you say yes here you get regulator support for Infineon
 	  TDA38640 as regulator.
 
+config SENSORS_TDA38740
+	tristate "Infineon TDA38725/TDA38740"
+	help
+	  If you say yes here you get hardware monitoring support for Infineon
+	  TDA38725 and TDA38740.
+
+	  This driver can also be built as a module. If so, the module will
+	  be called tda38740.
+
 config SENSORS_TPS25990
 	tristate "TI TPS25990"
 	help
diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
index e288fe72a437..eb06d47816fd 100644
--- a/drivers/hwmon/pmbus/Makefile
+++ b/drivers/hwmon/pmbus/Makefile
@@ -70,6 +70,7 @@ obj-$(CONFIG_SENSORS_STEF48H28)	+= stef48h28.o
 obj-$(CONFIG_SENSORS_SQ24860)	+= sq24860.o
 obj-$(CONFIG_SENSORS_STPDDC60)	+= stpddc60.o
 obj-$(CONFIG_SENSORS_TDA38640)	+= tda38640.o
+obj-$(CONFIG_SENSORS_TDA38740)	+= tda38740.o
 obj-$(CONFIG_SENSORS_TPS25990)	+= tps25990.o
 obj-$(CONFIG_SENSORS_TPS40422)	+= tps40422.o
 obj-$(CONFIG_SENSORS_TPS53679)	+= tps53679.o
diff --git a/drivers/hwmon/pmbus/tda38740.c b/drivers/hwmon/pmbus/tda38740.c
new file mode 100644
index 000000000000..067de07ba9fb
--- /dev/null
+++ b/drivers/hwmon/pmbus/tda38740.c
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Hardware monitoring driver for Infineon TDA38725/TDA38740
+ *
+ * Copyright (c) 2023 9elements GmbH
+ *
+ */
+
+#include <linux/err.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include "pmbus.h"
+
+static struct pmbus_driver_info tda38740_info = {
+	.pages = 1,
+	.format[PSC_VOLTAGE_IN] = linear,
+	.format[PSC_VOLTAGE_OUT] = linear,
+	.format[PSC_CURRENT_OUT] = linear,
+	.format[PSC_CURRENT_IN] = linear,
+	.format[PSC_POWER] = linear,
+	.format[PSC_TEMPERATURE] = linear,
+	.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT
+	    | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP
+	    | PMBUS_HAVE_IIN
+	    | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
+	    | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT
+	    | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN,
+};
+
+static int tda38740_probe(struct i2c_client *client)
+{
+	return pmbus_do_probe(client, &tda38740_info);
+}
+
+static const struct i2c_device_id tda38740_id[] = {
+	{ .name = "tda38725"},
+	{ .name = "tda38740"},
+	{}
+};
+MODULE_DEVICE_TABLE(i2c, tda38740_id);
+
+static const struct of_device_id tda38740_of_match[] = {
+	{ .compatible = "infineon,tda38725"},
+	{ .compatible = "infineon,tda38740"},
+	{}
+};
+MODULE_DEVICE_TABLE(of, tda38740_of_match);
+
+static struct i2c_driver tda38740_driver = {
+	.driver = {
+		.name = "tda38740",
+		.of_match_table = tda38740_of_match,
+	},
+	.probe = tda38740_probe,
+	.id_table = tda38740_id,
+};
+
+module_i2c_driver(tda38740_driver);
+
+MODULE_DESCRIPTION("PMBus driver for Infineon TDA38725/TDA38740");
+MODULE_LICENSE("GPL");
+MODULE_IMPORT_NS("PMBUS");

-- 
2.34.1


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

* Re: [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725
  2026-09-18 10:23 ` [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725 Colin Huang
@ 2026-09-18 15:02   ` Guenter Roeck
  2026-09-18 17:24     ` Conor
  2026-09-19 11:36   ` Guenter Roeck
  1 sibling, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2026-09-18 15:02 UTC (permalink / raw)
  To: Colin Huang, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jonathan Corbet, Shuah Khan, Randy Dunlap
  Cc: linux-hwmon, devicetree, linux-kernel, colin.huang2, linux-doc

On 9/18/26 03:23, Colin Huang wrote:
> Add a PMBus driver for Infineon TDA38740 and TDA38725
> single-voltage synchronous buck regulators.
> 
> Signed-off-by: Colin Huang <u8813345@gmail.com>

For my reference (waiting for DT patch approval):

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>   Documentation/hwmon/index.rst    |  1 +
>   Documentation/hwmon/tda38740.rst | 65 ++++++++++++++++++++++++++++++++++++++++
>   drivers/hwmon/pmbus/Kconfig      |  9 ++++++
>   drivers/hwmon/pmbus/Makefile     |  1 +
>   drivers/hwmon/pmbus/tda38740.c   | 64 +++++++++++++++++++++++++++++++++++++++
>   5 files changed, 140 insertions(+)
> 
> diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
> index f07977a20271..aeff87b3d46d 100644
> --- a/Documentation/hwmon/index.rst
> +++ b/Documentation/hwmon/index.rst
> @@ -265,6 +265,7 @@ Hardware Monitoring Kernel Drivers
>      sy7636a-hwmon
>      tc654
>      tc74
> +   tda38740
>      thmc50
>      tmp102
>      tmp103
> diff --git a/Documentation/hwmon/tda38740.rst b/Documentation/hwmon/tda38740.rst
> new file mode 100644
> index 000000000000..55ce12f14914
> --- /dev/null
> +++ b/Documentation/hwmon/tda38740.rst
> @@ -0,0 +1,65 @@
> +.. SPDX-License-Identifier: GPL-2.0-only
> +
> +====================================
> +Kernel driver tda38740
> +====================================
> +
> +Supported chips:
> +  * Infineon TDA38740
> +  * Infineon TDA38725
> +
> +    Prefix: 'tda38740'
> +
> +    Addresses scanned: -
> +
> +    Datasheet:
> +      https://www.infineon.com/row/public/documents/24/49/infineon-tda38740-tda38725-datasheet-en.pdf
> +
> +Author: Colin Huang <u8813345@gmail.com>
> +
> +Description
> +-----------
> +
> +The TDA38740 and TDA38725 are single-output synchronous buck regulators with a
> +PMBus interface. They expose basic voltage, current, power and temperature
> +telemetry through the standard PMBus hwmon interfaces.
> +
> +Sysfs entries
> +-------------
> +
> +======================= =======================================================
> +curr1_alarm		Input current alarm
> +curr1_input		Measured input current
> +curr1_label		"iin"
> +
> +curr2_crit		Critical maximum output current
> +curr2_crit_alarm	Output current critical high alarm
> +curr2_input		Measured output current
> +curr2_label		"iout"
> +
> +in1_crit		Critical maximum input voltage
> +in1_crit_alarm		Input voltage critical high alarm
> +in1_input		Measured input voltage
> +in1_label		"vin"
> +
> +in2_crit		Critical maximum output voltage
> +in2_crit_alarm		Output voltage critical high alarm
> +in2_input		Measured output voltage
> +in2_label		"vout"
> +in2_lcrit		Critical minimum output voltage
> +in2_lcrit_alarm		Output voltage critical low alarm
> +
> +power1_alarm		Input power alarm
> +power1_input		Measured input power
> +power1_label		"pin"
> +
> +power2_input		Measured output power
> +power2_label		"pout"
> +
> +temp1_crit		Critical high temperature
> +temp1_crit_alarm	Chip temperature critical high alarm
> +temp1_input		Measured temperature
> +temp1_max		Maximum temperature
> +temp1_max_alarm		Chip temperature high alarm
> +======================= =======================================================
> +
> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
> index bcfdc4ce4c10..e4ca80dd0574 100644
> --- a/drivers/hwmon/pmbus/Kconfig
> +++ b/drivers/hwmon/pmbus/Kconfig
> @@ -763,6 +763,15 @@ config SENSORS_TDA38640_REGULATOR
>   	  If you say yes here you get regulator support for Infineon
>   	  TDA38640 as regulator.
>   
> +config SENSORS_TDA38740
> +	tristate "Infineon TDA38725/TDA38740"
> +	help
> +	  If you say yes here you get hardware monitoring support for Infineon
> +	  TDA38725 and TDA38740.
> +
> +	  This driver can also be built as a module. If so, the module will
> +	  be called tda38740.
> +
>   config SENSORS_TPS25990
>   	tristate "TI TPS25990"
>   	help
> diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
> index e288fe72a437..eb06d47816fd 100644
> --- a/drivers/hwmon/pmbus/Makefile
> +++ b/drivers/hwmon/pmbus/Makefile
> @@ -70,6 +70,7 @@ obj-$(CONFIG_SENSORS_STEF48H28)	+= stef48h28.o
>   obj-$(CONFIG_SENSORS_SQ24860)	+= sq24860.o
>   obj-$(CONFIG_SENSORS_STPDDC60)	+= stpddc60.o
>   obj-$(CONFIG_SENSORS_TDA38640)	+= tda38640.o
> +obj-$(CONFIG_SENSORS_TDA38740)	+= tda38740.o
>   obj-$(CONFIG_SENSORS_TPS25990)	+= tps25990.o
>   obj-$(CONFIG_SENSORS_TPS40422)	+= tps40422.o
>   obj-$(CONFIG_SENSORS_TPS53679)	+= tps53679.o
> diff --git a/drivers/hwmon/pmbus/tda38740.c b/drivers/hwmon/pmbus/tda38740.c
> new file mode 100644
> index 000000000000..067de07ba9fb
> --- /dev/null
> +++ b/drivers/hwmon/pmbus/tda38740.c
> @@ -0,0 +1,64 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Hardware monitoring driver for Infineon TDA38725/TDA38740
> + *
> + * Copyright (c) 2023 9elements GmbH
> + *
> + */
> +
> +#include <linux/err.h>
> +#include <linux/i2c.h>
> +#include <linux/init.h>
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include "pmbus.h"
> +
> +static struct pmbus_driver_info tda38740_info = {
> +	.pages = 1,
> +	.format[PSC_VOLTAGE_IN] = linear,
> +	.format[PSC_VOLTAGE_OUT] = linear,
> +	.format[PSC_CURRENT_OUT] = linear,
> +	.format[PSC_CURRENT_IN] = linear,
> +	.format[PSC_POWER] = linear,
> +	.format[PSC_TEMPERATURE] = linear,
> +	.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT
> +	    | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP
> +	    | PMBUS_HAVE_IIN
> +	    | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
> +	    | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT
> +	    | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN,
> +};
> +
> +static int tda38740_probe(struct i2c_client *client)
> +{
> +	return pmbus_do_probe(client, &tda38740_info);
> +}
> +
> +static const struct i2c_device_id tda38740_id[] = {
> +	{ .name = "tda38725"},
> +	{ .name = "tda38740"},
> +	{}
> +};
> +MODULE_DEVICE_TABLE(i2c, tda38740_id);
> +
> +static const struct of_device_id tda38740_of_match[] = {
> +	{ .compatible = "infineon,tda38725"},
> +	{ .compatible = "infineon,tda38740"},
> +	{}
> +};
> +MODULE_DEVICE_TABLE(of, tda38740_of_match);
> +
> +static struct i2c_driver tda38740_driver = {
> +	.driver = {
> +		.name = "tda38740",
> +		.of_match_table = tda38740_of_match,
> +	},
> +	.probe = tda38740_probe,
> +	.id_table = tda38740_id,
> +};
> +
> +module_i2c_driver(tda38740_driver);
> +
> +MODULE_DESCRIPTION("PMBus driver for Infineon TDA38725/TDA38740");
> +MODULE_LICENSE("GPL");
> +MODULE_IMPORT_NS("PMBUS");
> 


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

* Re: [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725
  2026-09-18 15:02   ` Guenter Roeck
@ 2026-09-18 17:24     ` Conor
  2026-09-18 17:30       ` Guenter Roeck
  0 siblings, 1 reply; 9+ messages in thread
From: Conor @ 2026-09-18 17:24 UTC (permalink / raw)
  To: Guenter Roeck, Colin Huang, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Jonathan Corbet, Shuah Khan, Randy Dunlap
  Cc: linux-hwmon, devicetree, linux-kernel, colin.huang2, linux-doc



On 18 September 2026 17:02:38 GMT+02:00, Guenter Roeck <linux@roeck-us.net> wrote:
>On 9/18/26 03:23, Colin Huang wrote:
>> Add a PMBus driver for Infineon TDA38740 and TDA38725
>> single-voltage synchronous buck regulators.
>> 
>> Signed-off-by: Colin Huang <u8813345@gmail.com>
>
>For my reference (waiting for DT patch approval):
>
>Reviewed-by: Guenter Roeck <linux@roeck-us.net>

I'm on holiday and only have my phone, and cannot find the binding patch to reply to.
I found it on lore and it looks okay.

Cheers,
Conor 

>
>> ---
>>   Documentation/hwmon/index.rst    |  1 +
>>   Documentation/hwmon/tda38740.rst | 65 ++++++++++++++++++++++++++++++++++++++++
>>   drivers/hwmon/pmbus/Kconfig      |  9 ++++++
>>   drivers/hwmon/pmbus/Makefile     |  1 +
>>   drivers/hwmon/pmbus/tda38740.c   | 64 +++++++++++++++++++++++++++++++++++++++
>>   5 files changed, 140 insertions(+)
>> 
>> diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
>> index f07977a20271..aeff87b3d46d 100644
>> --- a/Documentation/hwmon/index.rst
>> +++ b/Documentation/hwmon/index.rst
>> @@ -265,6 +265,7 @@ Hardware Monitoring Kernel Drivers
>>      sy7636a-hwmon
>>      tc654
>>      tc74
>> +   tda38740
>>      thmc50
>>      tmp102
>>      tmp103
>> diff --git a/Documentation/hwmon/tda38740.rst b/Documentation/hwmon/tda38740.rst
>> new file mode 100644
>> index 000000000000..55ce12f14914
>> --- /dev/null
>> +++ b/Documentation/hwmon/tda38740.rst
>> @@ -0,0 +1,65 @@
>> +.. SPDX-License-Identifier: GPL-2.0-only
>> +
>> +====================================
>> +Kernel driver tda38740
>> +====================================
>> +
>> +Supported chips:
>> +  * Infineon TDA38740
>> +  * Infineon TDA38725
>> +
>> +    Prefix: 'tda38740'
>> +
>> +    Addresses scanned: -
>> +
>> +    Datasheet:
>> +      https://www.infineon.com/row/public/documents/24/49/infineon-tda38740-tda38725-datasheet-en.pdf
>> +
>> +Author: Colin Huang <u8813345@gmail.com>
>> +
>> +Description
>> +-----------
>> +
>> +The TDA38740 and TDA38725 are single-output synchronous buck regulators with a
>> +PMBus interface. They expose basic voltage, current, power and temperature
>> +telemetry through the standard PMBus hwmon interfaces.
>> +
>> +Sysfs entries
>> +-------------
>> +
>> +======================= =======================================================
>> +curr1_alarm		Input current alarm
>> +curr1_input		Measured input current
>> +curr1_label		"iin"
>> +
>> +curr2_crit		Critical maximum output current
>> +curr2_crit_alarm	Output current critical high alarm
>> +curr2_input		Measured output current
>> +curr2_label		"iout"
>> +
>> +in1_crit		Critical maximum input voltage
>> +in1_crit_alarm		Input voltage critical high alarm
>> +in1_input		Measured input voltage
>> +in1_label		"vin"
>> +
>> +in2_crit		Critical maximum output voltage
>> +in2_crit_alarm		Output voltage critical high alarm
>> +in2_input		Measured output voltage
>> +in2_label		"vout"
>> +in2_lcrit		Critical minimum output voltage
>> +in2_lcrit_alarm		Output voltage critical low alarm
>> +
>> +power1_alarm		Input power alarm
>> +power1_input		Measured input power
>> +power1_label		"pin"
>> +
>> +power2_input		Measured output power
>> +power2_label		"pout"
>> +
>> +temp1_crit		Critical high temperature
>> +temp1_crit_alarm	Chip temperature critical high alarm
>> +temp1_input		Measured temperature
>> +temp1_max		Maximum temperature
>> +temp1_max_alarm		Chip temperature high alarm
>> +======================= =======================================================
>> +
>> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
>> index bcfdc4ce4c10..e4ca80dd0574 100644
>> --- a/drivers/hwmon/pmbus/Kconfig
>> +++ b/drivers/hwmon/pmbus/Kconfig
>> @@ -763,6 +763,15 @@ config SENSORS_TDA38640_REGULATOR
>>   	  If you say yes here you get regulator support for Infineon
>>   	  TDA38640 as regulator.
>>   +config SENSORS_TDA38740
>> +	tristate "Infineon TDA38725/TDA38740"
>> +	help
>> +	  If you say yes here you get hardware monitoring support for Infineon
>> +	  TDA38725 and TDA38740.
>> +
>> +	  This driver can also be built as a module. If so, the module will
>> +	  be called tda38740.
>> +
>>   config SENSORS_TPS25990
>>   	tristate "TI TPS25990"
>>   	help
>> diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
>> index e288fe72a437..eb06d47816fd 100644
>> --- a/drivers/hwmon/pmbus/Makefile
>> +++ b/drivers/hwmon/pmbus/Makefile
>> @@ -70,6 +70,7 @@ obj-$(CONFIG_SENSORS_STEF48H28)	+= stef48h28.o
>>   obj-$(CONFIG_SENSORS_SQ24860)	+= sq24860.o
>>   obj-$(CONFIG_SENSORS_STPDDC60)	+= stpddc60.o
>>   obj-$(CONFIG_SENSORS_TDA38640)	+= tda38640.o
>> +obj-$(CONFIG_SENSORS_TDA38740)	+= tda38740.o
>>   obj-$(CONFIG_SENSORS_TPS25990)	+= tps25990.o
>>   obj-$(CONFIG_SENSORS_TPS40422)	+= tps40422.o
>>   obj-$(CONFIG_SENSORS_TPS53679)	+= tps53679.o
>> diff --git a/drivers/hwmon/pmbus/tda38740.c b/drivers/hwmon/pmbus/tda38740.c
>> new file mode 100644
>> index 000000000000..067de07ba9fb
>> --- /dev/null
>> +++ b/drivers/hwmon/pmbus/tda38740.c
>> @@ -0,0 +1,64 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Hardware monitoring driver for Infineon TDA38725/TDA38740
>> + *
>> + * Copyright (c) 2023 9elements GmbH
>> + *
>> + */
>> +
>> +#include <linux/err.h>
>> +#include <linux/i2c.h>
>> +#include <linux/init.h>
>> +#include <linux/kernel.h>
>> +#include <linux/module.h>
>> +#include "pmbus.h"
>> +
>> +static struct pmbus_driver_info tda38740_info = {
>> +	.pages = 1,
>> +	.format[PSC_VOLTAGE_IN] = linear,
>> +	.format[PSC_VOLTAGE_OUT] = linear,
>> +	.format[PSC_CURRENT_OUT] = linear,
>> +	.format[PSC_CURRENT_IN] = linear,
>> +	.format[PSC_POWER] = linear,
>> +	.format[PSC_TEMPERATURE] = linear,
>> +	.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT
>> +	    | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP
>> +	    | PMBUS_HAVE_IIN
>> +	    | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
>> +	    | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT
>> +	    | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN,
>> +};
>> +
>> +static int tda38740_probe(struct i2c_client *client)
>> +{
>> +	return pmbus_do_probe(client, &tda38740_info);
>> +}
>> +
>> +static const struct i2c_device_id tda38740_id[] = {
>> +	{ .name = "tda38725"},
>> +	{ .name = "tda38740"},
>> +	{}
>> +};
>> +MODULE_DEVICE_TABLE(i2c, tda38740_id);
>> +
>> +static const struct of_device_id tda38740_of_match[] = {
>> +	{ .compatible = "infineon,tda38725"},
>> +	{ .compatible = "infineon,tda38740"},
>> +	{}
>> +};
>> +MODULE_DEVICE_TABLE(of, tda38740_of_match);
>> +
>> +static struct i2c_driver tda38740_driver = {
>> +	.driver = {
>> +		.name = "tda38740",
>> +		.of_match_table = tda38740_of_match,
>> +	},
>> +	.probe = tda38740_probe,
>> +	.id_table = tda38740_id,
>> +};
>> +
>> +module_i2c_driver(tda38740_driver);
>> +
>> +MODULE_DESCRIPTION("PMBus driver for Infineon TDA38725/TDA38740");
>> +MODULE_LICENSE("GPL");
>> +MODULE_IMPORT_NS("PMBUS");
>> 
>

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

* Re: [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725
  2026-09-18 17:24     ` Conor
@ 2026-09-18 17:30       ` Guenter Roeck
  0 siblings, 0 replies; 9+ messages in thread
From: Guenter Roeck @ 2026-09-18 17:30 UTC (permalink / raw)
  To: Conor, Colin Huang, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Jonathan Corbet, Shuah Khan, Randy Dunlap
  Cc: linux-hwmon, devicetree, linux-kernel, colin.huang2, linux-doc

On 9/18/26 10:24, Conor wrote:
> 
> 
> On 18 September 2026 17:02:38 GMT+02:00, Guenter Roeck <linux@roeck-us.net> wrote:
>> On 9/18/26 03:23, Colin Huang wrote:
>>> Add a PMBus driver for Infineon TDA38740 and TDA38725
>>> single-voltage synchronous buck regulators.
>>>
>>> Signed-off-by: Colin Huang <u8813345@gmail.com>
>>
>> For my reference (waiting for DT patch approval):
>>
>> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> 
> I'm on holiday and only have my phone, and cannot find the binding patch to reply to.
> I found it on lore and it looks okay.
> 

Hi Conor,

it was copied to "Conor Dooley <conor+dt@kernel.org>". Is that the wrong address ?

Thanks,
Guenter


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

* Re: [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725
  2026-09-18 10:23 ` [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725 Colin Huang
@ 2026-09-19  7:18   ` Krzysztof Kozlowski
  2026-09-19 11:35   ` Guenter Roeck
  1 sibling, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-19  7:18 UTC (permalink / raw)
  To: Colin Huang, Guenter Roeck, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Jonathan Corbet, Shuah Khan, Randy Dunlap
  Cc: linux-hwmon, devicetree, linux-kernel, colin.huang2, linux-doc

On 18/09/2026 12:23, Colin Huang wrote:
> Add devicetree bindings for the Infineon TDA38740 and TDA38725
> single-voltage synchronous buck regulators with PMBus interface.
> 
> Signed-off-by: Colin Huang <u8813345@gmail.com>
> ---
>  .../bindings/hwmon/pmbus/infineon,tda38740.yaml    | 55 ++++++++++++++++++++++
>  1 file changed, 55 insertions(+)
> 


Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

<form letter>
This is an automated instruction, just in case, because many review tags
are being ignored. If you know the process, just skip it entirely
(please do not feel offended by me posting it here - no bad intentions
intended, no patronizing, I just want to avoid wasted efforts). If you
do not know the process, here is a short explanation:

Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions
of patchset, under or above your Signed-off-by tag, unless patch changed
significantly (e.g. new properties added to the DT bindings). Tag is
"received", when provided in a message replied to you on the mailing
list. Tools like b4 can help here ('b4 trailers -u ...'). However,
there's no need to repost patches *only* to add the tags. The upstream
maintainer will do that for tags received on the version they apply.

Full context and explanation:
https://elixir.bootlin.com/linux/v6.15/source/Documentation/process/submitting-patches.rst#L591
</form letter>


Best regards,
Krzysztof

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

* Re: [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725
  2026-09-18 10:23 ` [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725 Colin Huang
  2026-09-19  7:18   ` Krzysztof Kozlowski
@ 2026-09-19 11:35   ` Guenter Roeck
  1 sibling, 0 replies; 9+ messages in thread
From: Guenter Roeck @ 2026-09-19 11:35 UTC (permalink / raw)
  To: Colin Huang
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet,
	Shuah Khan, Randy Dunlap, linux-hwmon, devicetree, linux-kernel,
	colin.huang2, linux-doc

On Fri, Sep 18, 2026 at 06:23:54PM +0800, Colin Huang wrote:
> Add devicetree bindings for the Infineon TDA38740 and TDA38725
> single-voltage synchronous buck regulators with PMBus interface.
> 
> Signed-off-by: Colin Huang <u8813345@gmail.com>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Applied..

Thanks,
Guenter

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

* Re: [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725
  2026-09-18 10:23 ` [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725 Colin Huang
  2026-09-18 15:02   ` Guenter Roeck
@ 2026-09-19 11:36   ` Guenter Roeck
  1 sibling, 0 replies; 9+ messages in thread
From: Guenter Roeck @ 2026-09-19 11:36 UTC (permalink / raw)
  To: Colin Huang
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet,
	Shuah Khan, Randy Dunlap, linux-hwmon, devicetree, linux-kernel,
	colin.huang2, linux-doc

On Fri, Sep 18, 2026 at 06:23:55PM +0800, Colin Huang wrote:
> Add a PMBus driver for Infineon TDA38740 and TDA38725
> single-voltage synchronous buck regulators.
> 
> Signed-off-by: Colin Huang <u8813345@gmail.com>
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>

Applied.

Thanks,
Guenter

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

end of thread, other threads:[~2026-09-19 11:36 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-18 10:23 [PATCH v6 0/2] Add driver for Infineon TDA38740/TDA38725 Colin Huang
2026-09-18 10:23 ` [PATCH v6 1/2] dt-bindings: hwmon: pmbus: Add Infineon tda38740 and tda38725 Colin Huang
2026-09-19  7:18   ` Krzysztof Kozlowski
2026-09-19 11:35   ` Guenter Roeck
2026-09-18 10:23 ` [PATCH v6 2/2] hwmon: (pmbus/tda38740) Add driver for Infineon TDA38740/TDA38725 Colin Huang
2026-09-18 15:02   ` Guenter Roeck
2026-09-18 17:24     ` Conor
2026-09-18 17:30       ` Guenter Roeck
2026-09-19 11:36   ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®