devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] Add support for q50sn12072 and q54sn120a1
@ 2025-07-01 12:03 Jack Cheng via B4 Relay
  2025-07-01 12:03 ` [PATCH 1/2] dt-bindings: trivial: Add q50sn12072 and q54sj108a1 support Jack Cheng via B4 Relay
  2025-07-01 12:03 ` [PATCH 2/2] hwmon: (pmbus/q54sj108a2) Add support for q50sn12072 and q54sn120a1 Jack Cheng via B4 Relay
  0 siblings, 2 replies; 5+ messages in thread
From: Jack Cheng via B4 Relay @ 2025-07-01 12:03 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jean Delvare,
	Guenter Roeck
  Cc: devicetree, linux-kernel, linux-hwmon, Jack Cheng, Jack Cheng

The Q54SN12072 and Q54SN120A1 are high-efficiency, high-density DC-DC power
module from Delta Power Modules.

The Q54SN12072, quarter brick, single output 12V. This product provides up
to 1200 watts of output power at 38~60V. The Q54SN12072 offers peak
efficiency up to 98.3%@54Vin.

The Q54SN120A1, quarter brick, single output 12V. This product provides up
to 1300 watts of output power at 40~60V. The Q54SN120A1 offers peak
efficiency up to 98.1%@54Vin.

Add support for them to q54sj108a2 driver.

Signed-off-by: Jack Cheng <Cheng.JackHY@inventec.com>
---
Jack Cheng (2):
      dt-bindings: trivial: Add q50sn12072 and q54sj108a1 support
      hwmon: (pmbus/q54sj108a2) Add support for q50sn12072 and q54sn120a1

 .../devicetree/bindings/trivial-devices.yaml       |  4 ++
 drivers/hwmon/pmbus/q54sj108a2.c                   | 51 +++++++++++++++++++++-
 2 files changed, 53 insertions(+), 2 deletions(-)
---
base-commit: d0b3b7b22dfa1f4b515fd3a295b3fd958f9e81af
change-id: 20250701-add-support-for-q50sn12072-and-q54sn120a1-a9c299e6d81d

Best regards,
-- 
Jack Cheng <Cheng.JackHY@inventec.com>



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

* [PATCH 1/2] dt-bindings: trivial: Add q50sn12072 and q54sj108a1 support
  2025-07-01 12:03 [PATCH 0/2] Add support for q50sn12072 and q54sn120a1 Jack Cheng via B4 Relay
@ 2025-07-01 12:03 ` Jack Cheng via B4 Relay
  2025-07-08 16:09   ` Rob Herring (Arm)
  2025-07-01 12:03 ` [PATCH 2/2] hwmon: (pmbus/q54sj108a2) Add support for q50sn12072 and q54sn120a1 Jack Cheng via B4 Relay
  1 sibling, 1 reply; 5+ messages in thread
From: Jack Cheng via B4 Relay @ 2025-07-01 12:03 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jean Delvare,
	Guenter Roeck
  Cc: devicetree, linux-kernel, linux-hwmon, Jack Cheng, Jack Cheng

From: Jack Cheng <cheng.jackhy@inventec.com>

Add support for the Delta Electronics q50sn12072 and q54sj108a1
1/4 Brick DC/DC Regulated Power Modules.

Signed-off-by: Jack Cheng <cheng.jackhy@inventec.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 27930708ccd5..dfcdf0c4aca3 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -78,7 +78,11 @@ properties:
             # Delta Electronics DPS920AB 920W 54V Power Supply
           - delta,dps920ab
             # 1/4 Brick DC/DC Regulated Power Module
+          - delta,q50sn12072
+            # 1/4 Brick DC/DC Regulated Power Module
           - delta,q54sj108a2
+            # 1/4 Brick DC/DC Regulated Power Module
+          - delta,q54sn120a1
             # Devantech SRF02 ultrasonic ranger in I2C mode
           - devantech,srf02
             # Devantech SRF08 ultrasonic ranger

-- 
2.43.0



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

* [PATCH 2/2] hwmon: (pmbus/q54sj108a2) Add support for q50sn12072 and q54sn120a1
  2025-07-01 12:03 [PATCH 0/2] Add support for q50sn12072 and q54sn120a1 Jack Cheng via B4 Relay
  2025-07-01 12:03 ` [PATCH 1/2] dt-bindings: trivial: Add q50sn12072 and q54sj108a1 support Jack Cheng via B4 Relay
@ 2025-07-01 12:03 ` Jack Cheng via B4 Relay
  2025-07-16 19:12   ` Guenter Roeck
  1 sibling, 1 reply; 5+ messages in thread
From: Jack Cheng via B4 Relay @ 2025-07-01 12:03 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Jean Delvare,
	Guenter Roeck
  Cc: devicetree, linux-kernel, linux-hwmon, Jack Cheng, Jack Cheng

From: Jack Cheng <cheng.jackhy@inventec.com>

The Q54SN12072 and Q54SN120A1 are high-efficiency, high-density DC-DC power
module from Delta Power Modules.

The Q54SN12072, quarter brick, single output 12V. This product provides up
to 1200 watts of output power at 38~60V. The Q54SN12072 offers peak
efficiency up to 98.3%@54Vin.

The Q54SN120A1, quarter brick, single output 12V. This product provides up
to 1300 watts of output power at 40~60V. The Q54SN120A1 offers peak
efficiency up to 98.1%@54Vin.

Add support for them to q54sj108a2 driver.

Signed-off-by: Jack Cheng <cheng.jackhy@inventec.com>
---
 drivers/hwmon/pmbus/q54sj108a2.c | 51 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 49 insertions(+), 2 deletions(-)

diff --git a/drivers/hwmon/pmbus/q54sj108a2.c b/drivers/hwmon/pmbus/q54sj108a2.c
index 4d7086d83aa3..34233d955c48 100644
--- a/drivers/hwmon/pmbus/q54sj108a2.c
+++ b/drivers/hwmon/pmbus/q54sj108a2.c
@@ -21,11 +21,14 @@
 #define PMBUS_FLASH_KEY_WRITE		0xEC
 
 enum chips {
-	q54sj108a2
+	q50sn12072,
+	q54sj108a2,
+	q54sn120a1
 };
 
 enum {
-	Q54SJ108A2_DEBUGFS_OPERATION = 0,
+	Q50SN12072_DEBUGFS_VOUT_COMMAND = 0,
+	Q54SJ108A2_DEBUGFS_OPERATION,
 	Q54SJ108A2_DEBUGFS_CLEARFAULT,
 	Q54SJ108A2_DEBUGFS_WRITEPROTECT,
 	Q54SJ108A2_DEBUGFS_STOREDEFAULT,
@@ -54,6 +57,20 @@ struct q54sj108a2_data {
 #define to_psu(x, y) container_of((x), struct q54sj108a2_data, debugfs_entries[(y)])
 
 static struct pmbus_driver_info q54sj108a2_info[] = {
+	[q50sn12072] = {
+		.pages = 1,
+
+		/* Source : Delta Q50SN12072 */
+		.format[PSC_TEMPERATURE] = linear,
+		.format[PSC_VOLTAGE_IN] = linear,
+		.format[PSC_CURRENT_OUT] = linear,
+
+		.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_PIN |
+		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 | PMBUS_HAVE_POUT,
+	},
 	[q54sj108a2] = {
 		.pages = 1,
 
@@ -68,6 +85,20 @@ static struct pmbus_driver_info q54sj108a2_info[] = {
 		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_IIN | PMBUS_HAVE_PIN |
+		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 | PMBUS_HAVE_POUT,
+	},
 };
 
 static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
@@ -177,6 +208,7 @@ static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __user *bu
 {
 	u8 flash_key[4];
 	u8 dst_data;
+	u16 val;
 	ssize_t rc;
 	int *idxp = file->private_data;
 	int idx = *idxp;
@@ -187,6 +219,17 @@ static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __user *bu
 		return rc;
 
 	switch (idx) {
+	case Q50SN12072_DEBUGFS_VOUT_COMMAND:
+		rc = kstrtou16_from_user(buf, count, 0, &val);
+		if (rc < 0)
+			return rc;
+
+		rc = pmbus_write_word_data(psu->client, 0x00,
+					   PMBUS_VOUT_COMMAND, (const u16)val);
+		if (rc < 0)
+			return rc;
+
+		break;
 	case Q54SJ108A2_DEBUGFS_OPERATION:
 		rc = kstrtou8_from_user(buf, count, 0, &dst_data);
 		if (rc < 0)
@@ -268,7 +311,9 @@ static const struct file_operations q54sj108a2_fops = {
 };
 
 static const struct i2c_device_id q54sj108a2_id[] = {
+	{ "q50sn12072", q50sn12072 },
 	{ "q54sj108a2", q54sj108a2 },
+	{ "q54sn120a1", q54sn120a1 },
 	{ },
 };
 
@@ -401,7 +446,9 @@ static int q54sj108a2_probe(struct i2c_client *client)
 }
 
 static const struct of_device_id q54sj108a2_of_match[] = {
+	{ .compatible = "delta,q50sn12072", .data = (void *)q50sn12072 },
 	{ .compatible = "delta,q54sj108a2", .data = (void *)q54sj108a2 },
+	{ .compatible = "delta,q54sn120a1", .data = (void *)q54sn120a1 },
 	{ },
 };
 

-- 
2.43.0



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

* Re: [PATCH 1/2] dt-bindings: trivial: Add q50sn12072 and q54sj108a1 support
  2025-07-01 12:03 ` [PATCH 1/2] dt-bindings: trivial: Add q50sn12072 and q54sj108a1 support Jack Cheng via B4 Relay
@ 2025-07-08 16:09   ` Rob Herring (Arm)
  0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring (Arm) @ 2025-07-08 16:09 UTC (permalink / raw)
  To: Jack Cheng
  Cc: linux-hwmon, Conor Dooley, Jean Delvare, linux-kernel,
	Krzysztof Kozlowski, devicetree, Jack Cheng, Guenter Roeck


On Tue, 01 Jul 2025 12:03:45 +0000, Jack Cheng wrote:
> From: Jack Cheng <cheng.jackhy@inventec.com>
> 
> Add support for the Delta Electronics q50sn12072 and q54sj108a1
> 1/4 Brick DC/DC Regulated Power Modules.
> 
> Signed-off-by: Jack Cheng <cheng.jackhy@inventec.com>
> ---
>  Documentation/devicetree/bindings/trivial-devices.yaml | 4 ++++
>  1 file changed, 4 insertions(+)
> 

Acked-by: Rob Herring (Arm) <robh@kernel.org>


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

* Re: [PATCH 2/2] hwmon: (pmbus/q54sj108a2) Add support for q50sn12072 and q54sn120a1
  2025-07-01 12:03 ` [PATCH 2/2] hwmon: (pmbus/q54sj108a2) Add support for q50sn12072 and q54sn120a1 Jack Cheng via B4 Relay
@ 2025-07-16 19:12   ` Guenter Roeck
  0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2025-07-16 19:12 UTC (permalink / raw)
  To: Cheng.JackHY, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jean Delvare
  Cc: devicetree, linux-kernel, linux-hwmon

On 7/1/25 05:03, Jack Cheng via B4 Relay wrote:
> From: Jack Cheng <cheng.jackhy@inventec.com>
> 
> The Q54SN12072 and Q54SN120A1 are high-efficiency, high-density DC-DC power
> module from Delta Power Modules.
> 
> The Q54SN12072, quarter brick, single output 12V. This product provides up
> to 1200 watts of output power at 38~60V. The Q54SN12072 offers peak
> efficiency up to 98.3%@54Vin.
> 
> The Q54SN120A1, quarter brick, single output 12V. This product provides up
> to 1300 watts of output power at 40~60V. The Q54SN120A1 offers peak
> efficiency up to 98.1%@54Vin.
> 
> Add support for them to q54sj108a2 driver.
> 
> Signed-off-by: Jack Cheng <cheng.jackhy@inventec.com>
> ---
>   drivers/hwmon/pmbus/q54sj108a2.c | 51 ++++++++++++++++++++++++++++++++++++++--
>   1 file changed, 49 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hwmon/pmbus/q54sj108a2.c b/drivers/hwmon/pmbus/q54sj108a2.c
> index 4d7086d83aa3..34233d955c48 100644
> --- a/drivers/hwmon/pmbus/q54sj108a2.c
> +++ b/drivers/hwmon/pmbus/q54sj108a2.c
> @@ -21,11 +21,14 @@
>   #define PMBUS_FLASH_KEY_WRITE		0xEC
>   
>   enum chips {
> -	q54sj108a2
> +	q50sn12072,
> +	q54sj108a2,
> +	q54sn120a1
>   };
>   
>   enum {
> -	Q54SJ108A2_DEBUGFS_OPERATION = 0,
> +	Q50SN12072_DEBUGFS_VOUT_COMMAND = 0,
> +	Q54SJ108A2_DEBUGFS_OPERATION,
>   	Q54SJ108A2_DEBUGFS_CLEARFAULT,
>   	Q54SJ108A2_DEBUGFS_WRITEPROTECT,
>   	Q54SJ108A2_DEBUGFS_STOREDEFAULT,
> @@ -54,6 +57,20 @@ struct q54sj108a2_data {
>   #define to_psu(x, y) container_of((x), struct q54sj108a2_data, debugfs_entries[(y)])
>   
>   static struct pmbus_driver_info q54sj108a2_info[] = {
> +	[q50sn12072] = {
> +		.pages = 1,
> +
> +		/* Source : Delta Q50SN12072 */
> +		.format[PSC_TEMPERATURE] = linear,
> +		.format[PSC_VOLTAGE_IN] = linear,
> +		.format[PSC_CURRENT_OUT] = linear,
> +
> +		.func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_PIN |
> +		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 | PMBUS_HAVE_POUT,
> +	},
>   	[q54sj108a2] = {
>   		.pages = 1,
>   
> @@ -68,6 +85,20 @@ static struct pmbus_driver_info q54sj108a2_info[] = {
>   		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_IIN | PMBUS_HAVE_PIN |
> +		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 | PMBUS_HAVE_POUT,
> +	},
>   };
>   
>   static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,
> @@ -177,6 +208,7 @@ static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __user *bu
>   {
>   	u8 flash_key[4];
>   	u8 dst_data;
> +	u16 val;
>   	ssize_t rc;
>   	int *idxp = file->private_data;
>   	int idx = *idxp;
> @@ -187,6 +219,17 @@ static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __user *bu
>   		return rc;
>   
>   	switch (idx) {
> +	case Q50SN12072_DEBUGFS_VOUT_COMMAND:
> +		rc = kstrtou16_from_user(buf, count, 0, &val);
> +		if (rc < 0)
> +			return rc;
> +
> +		rc = pmbus_write_word_data(psu->client, 0x00,
> +					   PMBUS_VOUT_COMMAND, (const u16)val);
> +		if (rc < 0)
> +			return rc;
> +
> +		break;

That change is completely unrelated to the added chip support. On top of that,
it is dangerous, and the output voltage can be manipulated using regulator
support if needed. Given that, I do not see the point of this change.

Guenter


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

end of thread, other threads:[~2025-07-16 19:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-01 12:03 [PATCH 0/2] Add support for q50sn12072 and q54sn120a1 Jack Cheng via B4 Relay
2025-07-01 12:03 ` [PATCH 1/2] dt-bindings: trivial: Add q50sn12072 and q54sj108a1 support Jack Cheng via B4 Relay
2025-07-08 16:09   ` Rob Herring (Arm)
2025-07-01 12:03 ` [PATCH 2/2] hwmon: (pmbus/q54sj108a2) Add support for q50sn12072 and q54sn120a1 Jack Cheng via B4 Relay
2025-07-16 19:12   ` Guenter Roeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).