* [PATCH 0/3] Add support for Delta Q54SN120A1 and Q54SW120A7
@ 2026-02-05 13:34 Colin Huang
2026-02-05 13:34 ` [PATCH 1/3] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver Colin Huang
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Colin Huang @ 2026-02-05 13:34 UTC (permalink / raw)
To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jonathan Corbet
Cc: linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2,
Carl.Lee, Peter.Shen, Colin Huang
This patch series adds support for the Delta Q54SN120A1 and Q54SW120A7
1/4-brick DC/DC power modules with PMBus capability.
Patch 1 adds driver support under hwmon pmbus.
Patch 2 updates the devicetree trivial-devices list.
Patch 3 updates the hwmon documentation index.
These changes have been tested with both modules on hardware platforms
supporting PMBus over I2C.
Signed-off-by: Colin Huang <u8813345@gmail.com>
---
Colin Huang (3):
hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver
dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7
docs: hwmon: Add Q54SN120A1 and Q54SW120A7 to index
.../devicetree/bindings/trivial-devices.yaml | 4 ++
Documentation/hwmon/index.rst | 2 +
drivers/hwmon/pmbus/q54sj108a2.c | 47 ++++++++++++++++++++--
3 files changed, 49 insertions(+), 4 deletions(-)
---
base-commit: 18f7fcd5e69a04df57b563360b88be72471d6b62
change-id: 20260205-add-q54sn120a1-q54q54sw120a7-fa492b6ea07f
Best regards,
--
Colin Huang <u8813345@gmail.com>
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/3] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver 2026-02-05 13:34 [PATCH 0/3] Add support for Delta Q54SN120A1 and Q54SW120A7 Colin Huang @ 2026-02-05 13:34 ` Colin Huang 2026-02-05 15:01 ` Guenter Roeck 2026-02-05 13:34 ` [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 Colin Huang 2026-02-05 13:34 ` [PATCH 3/3] docs: hwmon: Add Q54SN120A1 and Q54SW120A7 to index Colin Huang 2 siblings, 1 reply; 8+ messages in thread From: Colin Huang @ 2026-02-05 13:34 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet Cc: linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2, Carl.Lee, Peter.Shen, Colin Huang Add the pmbus driver for DELTA Q54SN120A1, Q54SW120A7, 1/4 Brick DC/DC Regulated Power Module with PMBus support Signed-off-by: Colin Huang <u8813345@gmail.com> --- drivers/hwmon/pmbus/q54sj108a2.c | 47 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/drivers/hwmon/pmbus/q54sj108a2.c b/drivers/hwmon/pmbus/q54sj108a2.c index 4d7086d83aa3..dca084c98fba 100644 --- a/drivers/hwmon/pmbus/q54sj108a2.c +++ b/drivers/hwmon/pmbus/q54sj108a2.c @@ -21,7 +21,9 @@ #define PMBUS_FLASH_KEY_WRITE 0xEC enum chips { - q54sj108a2 + q54sj108a2, + q54sn120a1, + q54sw120a7 }; enum { @@ -62,6 +64,34 @@ static struct pmbus_driver_info q54sj108a2_info[] = { .format[PSC_VOLTAGE_IN] = linear, .format[PSC_CURRENT_OUT] = linear, + .func[0] = PMBUS_HAVE_VIN | + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | + PMBUS_HAVE_STATUS_INPUT, + }, + [q54sn120a1] = { + .pages = 1, + + /* Source : Delta Q54SN120A1 */ + .format[PSC_TEMPERATURE] = linear, + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_CURRENT_OUT] = linear, + + .func[0] = PMBUS_HAVE_VIN | + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | + PMBUS_HAVE_STATUS_INPUT, + }, + [q54sw120a7] = { + .pages = 1, + + /* Source : Delta Q54SW120A7 */ + .format[PSC_TEMPERATURE] = linear, + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_CURRENT_OUT] = linear, + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | @@ -269,6 +299,8 @@ static const struct file_operations q54sj108a2_fops = { static const struct i2c_device_id q54sj108a2_id[] = { { "q54sj108a2", q54sj108a2 }, + { "q54sn120a1", q54sn120a1 }, + { "q54sw120a7", q54sw120a7 }, { }, }; @@ -278,6 +310,7 @@ static int q54sj108a2_probe(struct i2c_client *client) { struct device *dev = &client->dev; u8 buf[I2C_SMBUS_BLOCK_MAX + 1]; + const struct i2c_device_id *mid; enum chips chip_id; int ret, i; struct dentry *debugfs; @@ -314,8 +347,12 @@ static int q54sj108a2_probe(struct i2c_client *client) dev_err(dev, "Failed to read Manufacturer Model\n"); return ret; } - if (ret != 14 || strncmp(buf, "Q54SJ108A2", 10)) { - buf[ret] = '\0'; + buf[ret] = '\0'; + for (mid = q54sj108a2_id; mid->name[0]; mid++) { + if (!strncasecmp(mid->name, buf, strlen(mid->name))) + break; + } + if (!mid->name[0]) { dev_err(dev, "Unsupported Manufacturer Model '%s'\n", buf); return -ENODEV; } @@ -325,7 +362,7 @@ static int q54sj108a2_probe(struct i2c_client *client) dev_err(dev, "Failed to read Manufacturer Revision\n"); return ret; } - if (ret != 4 || buf[0] != 'S') { + if (buf[0] != 'S') { buf[ret] = '\0'; dev_err(dev, "Unsupported Manufacturer Revision '%s'\n", buf); return -ENODEV; @@ -402,6 +439,8 @@ static int q54sj108a2_probe(struct i2c_client *client) static const struct of_device_id q54sj108a2_of_match[] = { { .compatible = "delta,q54sj108a2", .data = (void *)q54sj108a2 }, + { .compatible = "delta,q54sn120a1", .data = (void *)q54sn120a1 }, + { .compatible = "delta,q54sw120a7", .data = (void *)q54sw120a7 }, { }, }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver 2026-02-05 13:34 ` [PATCH 1/3] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver Colin Huang @ 2026-02-05 15:01 ` Guenter Roeck 0 siblings, 0 replies; 8+ messages in thread From: Guenter Roeck @ 2026-02-05 15:01 UTC (permalink / raw) To: Colin Huang Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2, Carl.Lee, Peter.Shen On Thu, Feb 05, 2026 at 09:34:35PM +0800, Colin Huang wrote: > Add the pmbus driver for DELTA Q54SN120A1, Q54SW120A7, > 1/4 Brick DC/DC Regulated Power Module with PMBus support > This isn't adding the driver, it is adding support for the chips to the q54sj108a2 driver. > Signed-off-by: Colin Huang <u8813345@gmail.com> > --- > drivers/hwmon/pmbus/q54sj108a2.c | 47 ++++++++++++++++++++++++++++++++++++---- > 1 file changed, 43 insertions(+), 4 deletions(-) > > diff --git a/drivers/hwmon/pmbus/q54sj108a2.c b/drivers/hwmon/pmbus/q54sj108a2.c > index 4d7086d83aa3..dca084c98fba 100644 > --- a/drivers/hwmon/pmbus/q54sj108a2.c > +++ b/drivers/hwmon/pmbus/q54sj108a2.c > @@ -21,7 +21,9 @@ > #define PMBUS_FLASH_KEY_WRITE 0xEC > > enum chips { > - q54sj108a2 > + q54sj108a2, > + q54sn120a1, > + q54sw120a7 > }; > > enum { > @@ -62,6 +64,34 @@ static struct pmbus_driver_info q54sj108a2_info[] = { > .format[PSC_VOLTAGE_IN] = linear, > .format[PSC_CURRENT_OUT] = linear, > > + .func[0] = PMBUS_HAVE_VIN | > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > + PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | > + PMBUS_HAVE_STATUS_INPUT, > + }, > + [q54sn120a1] = { > + .pages = 1, > + > + /* Source : Delta Q54SN120A1 */ > + .format[PSC_TEMPERATURE] = linear, > + .format[PSC_VOLTAGE_IN] = linear, > + .format[PSC_CURRENT_OUT] = linear, > + > + .func[0] = PMBUS_HAVE_VIN | > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > + PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | > + PMBUS_HAVE_STATUS_INPUT, > + }, > + [q54sw120a7] = { > + .pages = 1, > + > + /* Source : Delta Q54SW120A7 */ > + .format[PSC_TEMPERATURE] = linear, > + .format[PSC_VOLTAGE_IN] = linear, > + .format[PSC_CURRENT_OUT] = linear, > + Unless I am missing something, those are all the same. That means there is no need for separate entries. > .func[0] = PMBUS_HAVE_VIN | > PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | > @@ -269,6 +299,8 @@ static const struct file_operations q54sj108a2_fops = { > > static const struct i2c_device_id q54sj108a2_id[] = { > { "q54sj108a2", q54sj108a2 }, > + { "q54sn120a1", q54sn120a1 }, > + { "q54sw120a7", q54sw120a7 }, Delta sells a variety of power bricks, but a Google search for q54sn120a1 or q54sw120a7 comes up empty. Worse, searching for the entire series (q54sn or q54sw) comes up empty as well. Please provide information confirming that the referenced chips do exist. > { }, > }; > > @@ -278,6 +310,7 @@ static int q54sj108a2_probe(struct i2c_client *client) > { > struct device *dev = &client->dev; > u8 buf[I2C_SMBUS_BLOCK_MAX + 1]; > + const struct i2c_device_id *mid; > enum chips chip_id; > int ret, i; > struct dentry *debugfs; > @@ -314,8 +347,12 @@ static int q54sj108a2_probe(struct i2c_client *client) > dev_err(dev, "Failed to read Manufacturer Model\n"); > return ret; > } > - if (ret != 14 || strncmp(buf, "Q54SJ108A2", 10)) { > - buf[ret] = '\0'; > + buf[ret] = '\0'; > + for (mid = q54sj108a2_id; mid->name[0]; mid++) { > + if (!strncasecmp(mid->name, buf, strlen(mid->name))) > + break; > + } > + if (!mid->name[0]) { > dev_err(dev, "Unsupported Manufacturer Model '%s'\n", buf); > return -ENODEV; > } > @@ -325,7 +362,7 @@ static int q54sj108a2_probe(struct i2c_client *client) > dev_err(dev, "Failed to read Manufacturer Revision\n"); > return ret; > } > - if (ret != 4 || buf[0] != 'S') { > + if (buf[0] != 'S') { This relaxes the revision number checks significantly. Please provide evidence explaining why this is needed. > buf[ret] = '\0'; > dev_err(dev, "Unsupported Manufacturer Revision '%s'\n", buf); > return -ENODEV; > @@ -402,6 +439,8 @@ static int q54sj108a2_probe(struct i2c_client *client) > > static const struct of_device_id q54sj108a2_of_match[] = { > { .compatible = "delta,q54sj108a2", .data = (void *)q54sj108a2 }, > + { .compatible = "delta,q54sn120a1", .data = (void *)q54sn120a1 }, > + { .compatible = "delta,q54sw120a7", .data = (void *)q54sw120a7 }, > { }, > }; > > > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 2026-02-05 13:34 [PATCH 0/3] Add support for Delta Q54SN120A1 and Q54SW120A7 Colin Huang 2026-02-05 13:34 ` [PATCH 1/3] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver Colin Huang @ 2026-02-05 13:34 ` Colin Huang 2026-02-05 14:33 ` Guenter Roeck 2026-02-05 18:40 ` Conor Dooley 2026-02-05 13:34 ` [PATCH 3/3] docs: hwmon: Add Q54SN120A1 and Q54SW120A7 to index Colin Huang 2 siblings, 2 replies; 8+ messages in thread From: Colin Huang @ 2026-02-05 13:34 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet Cc: linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2, Carl.Lee, Peter.Shen, Colin Huang Add two additional Delta 1/4-brick DC/DC power modules, Q54SN120A1 and Q54SW120A7, to the trivial-devices list. Signed-off-by: Colin Huang <u8813345@gmail.com> --- Documentation/devicetree/bindings/trivial-devices.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml index d0f7dbf15d6f..f430e49b9ec1 100644 --- a/Documentation/devicetree/bindings/trivial-devices.yaml +++ b/Documentation/devicetree/bindings/trivial-devices.yaml @@ -95,6 +95,10 @@ properties: - delta,dps920ab # 1/4 Brick DC/DC Regulated Power Module - delta,q54sj108a2 + # 1300W 1/4 Brick DC/DC Regulated Power Module + - delta,q54sn120a1 + # 2000W 1/4 Brick DC/DC Regulated Power Module + - delta,q54sw120a7 # Devantech SRF02 ultrasonic ranger in I2C mode - devantech,srf02 # Devantech SRF08 ultrasonic ranger -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 2026-02-05 13:34 ` [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 Colin Huang @ 2026-02-05 14:33 ` Guenter Roeck 2026-02-05 18:40 ` Conor Dooley 1 sibling, 0 replies; 8+ messages in thread From: Guenter Roeck @ 2026-02-05 14:33 UTC (permalink / raw) To: Colin Huang Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2, Carl.Lee, Peter.Shen On Thu, Feb 05, 2026 at 09:34:36PM +0800, Colin Huang wrote: > Add two additional Delta 1/4-brick DC/DC power modules, > Q54SN120A1 and Q54SW120A7, to the trivial-devices list. > > Signed-off-by: Colin Huang <u8813345@gmail.com> This should be the first patch of the series. > --- > Documentation/devicetree/bindings/trivial-devices.yaml | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml > index d0f7dbf15d6f..f430e49b9ec1 100644 > --- a/Documentation/devicetree/bindings/trivial-devices.yaml > +++ b/Documentation/devicetree/bindings/trivial-devices.yaml > @@ -95,6 +95,10 @@ properties: > - delta,dps920ab > # 1/4 Brick DC/DC Regulated Power Module > - delta,q54sj108a2 > + # 1300W 1/4 Brick DC/DC Regulated Power Module > + - delta,q54sn120a1 > + # 2000W 1/4 Brick DC/DC Regulated Power Module > + - delta,q54sw120a7 > # Devantech SRF02 ultrasonic ranger in I2C mode > - devantech,srf02 > # Devantech SRF08 ultrasonic ranger > > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 2026-02-05 13:34 ` [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 Colin Huang 2026-02-05 14:33 ` Guenter Roeck @ 2026-02-05 18:40 ` Conor Dooley 1 sibling, 0 replies; 8+ messages in thread From: Conor Dooley @ 2026-02-05 18:40 UTC (permalink / raw) To: Colin Huang Cc: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2, Carl.Lee, Peter.Shen [-- Attachment #1: Type: text/plain, Size: 75 bytes --] Acked-by: Conor Dooley <conor.dooley@microchip.com> pw-bot: not-applicable [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] docs: hwmon: Add Q54SN120A1 and Q54SW120A7 to index 2026-02-05 13:34 [PATCH 0/3] Add support for Delta Q54SN120A1 and Q54SW120A7 Colin Huang 2026-02-05 13:34 ` [PATCH 1/3] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver Colin Huang 2026-02-05 13:34 ` [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 Colin Huang @ 2026-02-05 13:34 ` Colin Huang 2026-02-05 14:32 ` Guenter Roeck 2 siblings, 1 reply; 8+ messages in thread From: Colin Huang @ 2026-02-05 13:34 UTC (permalink / raw) To: Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet Cc: linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2, Carl.Lee, Peter.Shen, Colin Huang Add the Delta Q54SN120A1 and Q54SW120A7 PMBus modules to the hwmon driver index. Signed-off-by: Colin Huang <u8813345@gmail.com> --- Documentation/hwmon/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst index 85d7a686883e..62d6fc0817eb 100644 --- a/Documentation/hwmon/index.rst +++ b/Documentation/hwmon/index.rst @@ -216,6 +216,8 @@ Hardware Monitoring Kernel Drivers pxe1610 pwm-fan q54sj108a2 + q54sn120a1 + q54sw120a7 qnap-mcu-hwmon raspberrypi-hwmon sa67 -- 2.34.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] docs: hwmon: Add Q54SN120A1 and Q54SW120A7 to index 2026-02-05 13:34 ` [PATCH 3/3] docs: hwmon: Add Q54SN120A1 and Q54SW120A7 to index Colin Huang @ 2026-02-05 14:32 ` Guenter Roeck 0 siblings, 0 replies; 8+ messages in thread From: Guenter Roeck @ 2026-02-05 14:32 UTC (permalink / raw) To: Colin Huang Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jonathan Corbet, linux-hwmon, linux-kernel, devicetree, linux-doc, Colin.Huang2, Carl.Lee, Peter.Shen On Thu, Feb 05, 2026 at 09:34:37PM +0800, Colin Huang wrote: > Add the Delta Q54SN120A1 and Q54SW120A7 PMBus modules to the hwmon > driver index. > > Signed-off-by: Colin Huang <u8813345@gmail.com> > --- > Documentation/hwmon/index.rst | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst > index 85d7a686883e..62d6fc0817eb 100644 > --- a/Documentation/hwmon/index.rst > +++ b/Documentation/hwmon/index.rst > @@ -216,6 +216,8 @@ Hardware Monitoring Kernel Drivers > pxe1610 > pwm-fan > q54sj108a2 > + q54sn120a1 > + q54sw120a7 Documentations are for drivers, not for chips. There are no such documentation files. Add q54sn120a1 and q54sw120a7 to the documentation of the q54sj108a2 driver instead and drop this patch. Thanks, Guenter > qnap-mcu-hwmon > raspberrypi-hwmon > sa67 > > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-02-05 18:40 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-02-05 13:34 [PATCH 0/3] Add support for Delta Q54SN120A1 and Q54SW120A7 Colin Huang 2026-02-05 13:34 ` [PATCH 1/3] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 driver Colin Huang 2026-02-05 15:01 ` Guenter Roeck 2026-02-05 13:34 ` [PATCH 2/3] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and Q54SW120A7 Colin Huang 2026-02-05 14:33 ` Guenter Roeck 2026-02-05 18:40 ` Conor Dooley 2026-02-05 13:34 ` [PATCH 3/3] docs: hwmon: Add Q54SN120A1 and Q54SW120A7 to index Colin Huang 2026-02-05 14:32 ` Guenter Roeck
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox