* [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®