Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions config.local/amd64/config.sonic
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ CONFIG_SENSORS_TMP464=m
CONFIG_I2C_XILINX=m
CONFIG_PCI_STUB=y
CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_Q54SJ108A2=m
CONFIG_SENSORS_TMP464=m
CONFIG_SPI_XILINX=m

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From 32a7bdbd201be809c690c64a3a233c7bb640c48c Mon Sep 17 00:00:00 2001
From: Colin Huang <u8813345@gmail.com>
Date: Mon, 16 Mar 2026 16:39:33 +0800
Subject: [PATCH] dt-bindings: trivial-devices: Add Delta Q54SN120A1 and
Q54SW120A7

Add two additional Delta 1/4-brick DC/DC power modules,
Q54SN120A1 and Q54SW120A7, to the trivial-devices list.

Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Colin Huang <u8813345@gmail.com>
Link: https://lore.kernel.org/r/20260316-add-q54sn120a1-q54q54sw120a7-v2-1-60e6182cc4a7@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
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 ccac768f5380a5..03a27494322364 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -101,6 +101,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
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
From ffa2ad0aa64697c29d501f76cb7b7187cbbb147a Mon Sep 17 00:00:00 2001
From: Colin Huang <u8813345@gmail.com>
Date: Mon, 16 Mar 2026 16:39:34 +0800
Subject: [PATCH] hwmon: (pmbus) Add Delta Q54SN120A1 Q54SW120A7 chip

Add the DELTA chips Q54SN120A1, Q54SW120A7 in q54sj108a2,
1/4 Brick DC/DC Regulated Power Module with PMBus support

Signed-off-by: Colin Huang <u8813345@gmail.com>
Link: https://lore.kernel.org/r/20260316-add-q54sn120a1-q54q54sw120a7-v2-2-60e6182cc4a7@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
drivers/hwmon/pmbus/q54sj108a2.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/hwmon/pmbus/q54sj108a2.c b/drivers/hwmon/pmbus/q54sj108a2.c
index 7e799f36f923ed..a368cfa9d45ac2 100644
--- a/drivers/hwmon/pmbus/q54sj108a2.c
+++ b/drivers/hwmon/pmbus/q54sj108a2.c
@@ -271,6 +271,8 @@ static const struct file_operations q54sj108a2_fops = {

static const struct i2c_device_id q54sj108a2_id[] = {
{ "q54sj108a2", q54sj108a2 },
+ { "q54sn120a1", q54sj108a2 },
+ { "q54sw120a7", q54sj108a2 },
{ },
};

@@ -280,6 +282,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;
@@ -313,8 +316,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;
}
@@ -324,7 +331,10 @@ 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') {
+ /*
+ * accept manufacturer revision with optional NUL byte
+ */
+ if (!(ret == 4 || ret == 5) || buf[0] != 'S') {
buf[ret] = '\0';
dev_err(dev, "Unsupported Manufacturer Revision '%s'\n", buf);
return -ENODEV;
@@ -401,6 +411,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 *)q54sj108a2 },
+ { .compatible = "delta,q54sw120a7", .data = (void *)q54sj108a2 },
{ },
};

2 changes: 2 additions & 0 deletions patches-sonic/kconfig-inclusions
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,8 @@ CONFIG_SPI_GPIO=m
CONFIG_SENSORS_INA3221=m
# For Nokia
CONFIG_RTC_DRV_DS1307=m
# For Nexthop
CONFIG_SENSORS_Q54SJ108A2=m

[arm64]
# For enabling SDEI
Expand Down
2 changes: 2 additions & 0 deletions patches-sonic/series
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,8 @@ driver-tty-serial-8250-add-support-for-fintek-F81214E.patch # Linux upstream pen
0014-i2c-xiic-cosmetic-use-resource-format-specifier-in-d.patch
0015-i2c-xiic-use-numbered-adapter-registration.patch
0016-i2c-xiic-skip-input-clock-setup-on-non-OF-systems.patch
0017-dt-bindings-trivial-devices-Add-Delta-Q54SN120A1-and-Q54SW120A7.patch
0018-hwmon-pmbus-Add-Delta-Q54SN120A1-Q54SW120A7-chip.patch

# Fix to avoid kernel panic on Kernel 6.1.94
# https://github.com/sonic-net/sonic-buildimage/issues/20901
Expand Down