* [PATCH 0/2] Add sq24905c support
@ 2025-08-04 12:48 ChiShih Tsai
2025-08-04 12:48 ` [PATCH 1/2] dt-bindings: hwmon: adm1275: add " ChiShih Tsai
2025-08-04 12:48 ` [PATCH 2/2] hwmon: (pmbus/adm1275) " ChiShih Tsai
0 siblings, 2 replies; 6+ messages in thread
From: ChiShih Tsai @ 2025-08-04 12:48 UTC (permalink / raw)
To: linux-hwmon, devicetree, linux-kernel, linux-doc
Cc: jdelvare, linux, robh, krzk+dt, conor+dt, corbet, t630619,
ChiShih Tsai
The SQ24905C is also a Hot-swap controller similar to the ADM1278, with the
following differences:
* The MFR_ID register data is different.
* The MFR_MODEL register data is different.
It also introduces two parameters "silergy,power-sample-average" and
"silergy,volt-curr-sample-average" for Digital Power Monitor. Device tree
bindings are updated accordingly.
The currently available ADM1275 driver supports the ADM1278 and this patch
adds support for the SQ24905C. The datasheet see link for reference.
https://www.silergy.com/download/downloadFile?id=5669&type=product&ftype=note
ChiShih Tsai (2):
dt-bindings: hwmon: adm1275: add sq24905c support
hwmon: (pmbus/adm1275) add sq24905c support
.../bindings/hwmon/adi,adm1275.yaml | 20 ++++++++++++++
Documentation/hwmon/adm1275.rst | 24 +++++++++++------
drivers/hwmon/pmbus/Kconfig | 5 ++--
drivers/hwmon/pmbus/adm1275.c | 27 +++++++++++++------
4 files changed, 58 insertions(+), 18 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] dt-bindings: hwmon: adm1275: add sq24905c support
2025-08-04 12:48 [PATCH 0/2] Add sq24905c support ChiShih Tsai
@ 2025-08-04 12:48 ` ChiShih Tsai
2025-08-04 15:59 ` Guenter Roeck
2025-08-04 12:48 ` [PATCH 2/2] hwmon: (pmbus/adm1275) " ChiShih Tsai
1 sibling, 1 reply; 6+ messages in thread
From: ChiShih Tsai @ 2025-08-04 12:48 UTC (permalink / raw)
To: linux-hwmon, devicetree, linux-kernel, linux-doc
Cc: jdelvare, linux, robh, krzk+dt, conor+dt, corbet, t630619,
ChiShih Tsai
Add support for sq24905c Hot-Swap Controller and Digital Power Monitor.
Signed-off-by: ChiShih Tsai <tomtsai764@gmail.com>
---
.../bindings/hwmon/adi,adm1275.yaml | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml b/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml
index ddb72857c846..6aa300086c84 100644
--- a/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml
+++ b/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml
@@ -30,6 +30,7 @@ properties:
- adi,adm1281
- adi,adm1293
- adi,adm1294
+ - silergy,sq24905c
reg:
maxItems: 1
@@ -46,6 +47,18 @@ properties:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [1, 2, 4, 8, 16, 32, 64, 128]
+ silergy,volt-curr-sample-average:
+ description: |
+ Number of samples to be used to report voltage and current values.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [1, 2, 4, 8, 16, 32, 64, 128]
+
+ silergy,power-sample-average:
+ description: |
+ Number of samples to be used to report power values.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [1, 2, 4, 8, 16, 32, 64, 128]
+
allOf:
- $ref: hwmon-common.yaml#
- if:
@@ -96,12 +109,17 @@ allOf:
- adi,adm1281
- adi,adm1293
- adi,adm1294
+ - silergy,sq24905c
then:
properties:
adi,volt-curr-sample-average:
default: 128
adi,power-sample-average:
default: 1
+ silergy,volt-curr-sample-average:
+ default: 128
+ silergy,power-sample-average:
+ default: 1
required:
- compatible
@@ -121,5 +139,7 @@ examples:
shunt-resistor-micro-ohms = <500>;
adi,volt-curr-sample-average = <128>;
adi,power-sample-average = <128>;
+ silergy,volt-curr-sample-average = <128>;
+ silergy,power-sample-average = <1>;
};
};
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] hwmon: (pmbus/adm1275) add sq24905c support
2025-08-04 12:48 [PATCH 0/2] Add sq24905c support ChiShih Tsai
2025-08-04 12:48 ` [PATCH 1/2] dt-bindings: hwmon: adm1275: add " ChiShih Tsai
@ 2025-08-04 12:48 ` ChiShih Tsai
2025-08-04 20:04 ` Guenter Roeck
1 sibling, 1 reply; 6+ messages in thread
From: ChiShih Tsai @ 2025-08-04 12:48 UTC (permalink / raw)
To: linux-hwmon, devicetree, linux-kernel, linux-doc
Cc: jdelvare, linux, robh, krzk+dt, conor+dt, corbet, t630619,
ChiShih Tsai
Add support for sq24905c which is similar to adm1275 and other chips
of the series.
Signed-off-by: ChiShih Tsai <tomtsai764@gmail.com>
---
Documentation/hwmon/adm1275.rst | 24 ++++++++++++++++--------
drivers/hwmon/pmbus/Kconfig | 5 +++--
drivers/hwmon/pmbus/adm1275.c | 27 +++++++++++++++++++--------
3 files changed, 38 insertions(+), 18 deletions(-)
diff --git a/Documentation/hwmon/adm1275.rst b/Documentation/hwmon/adm1275.rst
index 57bd7a850558..914f009f34e0 100644
--- a/Documentation/hwmon/adm1275.rst
+++ b/Documentation/hwmon/adm1275.rst
@@ -67,6 +67,14 @@ Supported chips:
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1293_1294.pdf
+ * Silergy SQ24905C
+
+ Prefix: 'sq24905c'
+
+ Addresses scanned: -
+
+ Datasheet: https://www.silergy.com/download/downloadFile?id=5669&type=product&ftype=note
+
Author: Guenter Roeck <linux@roeck-us.net>
@@ -74,14 +82,14 @@ Description
-----------
This driver supports hardware monitoring for Analog Devices ADM1075, ADM1272,
-ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293, and ADM1294 Hot-Swap
-Controller and Digital Power Monitors.
+ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293, ADM1294, and SQ24905C
+Hot-Swap Controller and Digital Power Monitors.
-ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293, and
-ADM1294 are hot-swap controllers that allow a circuit board to be removed from
-or inserted into a live backplane. They also feature current and voltage
-readback via an integrated 12 bit analog-to-digital converter (ADC), accessed
-using a PMBus interface.
+ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293,
+ADM1294 and SQ24905C are hot-swap controllers that allow a circuit board to be
+removed from or inserted into a live backplane. They also feature current and
+voltage readback via an integrated 12 bit analog-to-digital converter (ADC),
+accessed using a PMBus interface.
The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
@@ -160,5 +168,5 @@ temp1_highest Highest observed temperature.
temp1_reset_history Write any value to reset history.
Temperature attributes are supported on ADM1272,
- ADM1273, ADM1278, and ADM1281.
+ ADM1273, ADM1278, ADM1281 and SQ24905C.
======================= =======================================================
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index 55e492452ce8..7485bc6b2e8a 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -51,8 +51,9 @@ config SENSORS_ADM1275
tristate "Analog Devices ADM1275 and compatibles"
help
If you say yes here you get hardware monitoring support for Analog
- Devices ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278, ADM1281,
- ADM1293, and ADM1294 Hot-Swap Controller and Digital Power Monitors.
+ Devices ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278,
+ ADM1281, ADM1293, ADM1294 and SQ24905C Hot-Swap Controller and
+ Digital Power Monitors.
This driver can also be built as a module. If so, the module will
be called adm1275.
diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
index 7d175baa5de2..1c032aaac379 100644
--- a/drivers/hwmon/pmbus/adm1275.c
+++ b/drivers/hwmon/pmbus/adm1275.c
@@ -18,7 +18,8 @@
#include <linux/log2.h>
#include "pmbus.h"
-enum chips { adm1075, adm1272, adm1273, adm1275, adm1276, adm1278, adm1281, adm1293, adm1294 };
+enum chips { adm1075, adm1272, adm1273, adm1275, adm1276, adm1278, adm1281,
+ adm1293, adm1294, sq24905c };
#define ADM1275_MFR_STATUS_IOUT_WARN2 BIT(0)
#define ADM1293_MFR_STATUS_VAUX_UV_WARN BIT(5)
@@ -486,6 +487,7 @@ static const struct i2c_device_id adm1275_id[] = {
{ "adm1281", adm1281 },
{ "adm1293", adm1293 },
{ "adm1294", adm1294 },
+ { "MC09C", sq24905c },
{ }
};
MODULE_DEVICE_TABLE(i2c, adm1275_id);
@@ -533,8 +535,10 @@ static int adm1275_probe(struct i2c_client *client)
return ret;
}
if (ret != 3 || strncmp(block_buffer, "ADI", 3)) {
- dev_err(&client->dev, "Unsupported Manufacturer ID\n");
- return -ENODEV;
+ if (ret != 2 || strncmp(block_buffer, "SY", 2)) {
+ dev_err(&client->dev, "Unsupported Manufacturer ID\n");
+ return -ENODEV;
+ }
}
ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL, block_buffer);
@@ -558,7 +562,8 @@ static int adm1275_probe(struct i2c_client *client)
if (mid->driver_data == adm1272 || mid->driver_data == adm1273 ||
mid->driver_data == adm1278 || mid->driver_data == adm1281 ||
- mid->driver_data == adm1293 || mid->driver_data == adm1294)
+ mid->driver_data == adm1293 || mid->driver_data == adm1294 ||
+ mid->driver_data == sq24905c)
config_read_fn = i2c_smbus_read_word_data;
else
config_read_fn = i2c_smbus_read_byte_data;
@@ -708,6 +713,7 @@ static int adm1275_probe(struct i2c_client *client)
break;
case adm1278:
case adm1281:
+ case sq24905c:
data->have_vout = true;
data->have_pin_max = true;
data->have_temp_max = true;
@@ -786,9 +792,12 @@ static int adm1275_probe(struct i2c_client *client)
return -ENODEV;
}
- if (data->have_power_sampling &&
+ if ((data->have_power_sampling &&
of_property_read_u32(client->dev.of_node,
- "adi,power-sample-average", &avg) == 0) {
+ "adi,power-sample-average", &avg) == 0) ||
+ (data->have_power_sampling &&
+ of_property_read_u32(client->dev.of_node,
+ "silergy,power-sample-average", &avg) == 0)) {
if (!avg || avg > ADM1275_SAMPLES_AVG_MAX ||
BIT(__fls(avg)) != avg) {
dev_err(&client->dev,
@@ -804,8 +813,10 @@ static int adm1275_probe(struct i2c_client *client)
}
}
- if (of_property_read_u32(client->dev.of_node,
- "adi,volt-curr-sample-average", &avg) == 0) {
+ if ((of_property_read_u32(client->dev.of_node,
+ "adi,volt-curr-sample-average", &avg) == 0) ||
+ (of_property_read_u32(client->dev.of_node,
+ "silergy,volt-curr-sample-average", &avg) == 0)) {
if (!avg || avg > ADM1275_SAMPLES_AVG_MAX ||
BIT(__fls(avg)) != avg) {
dev_err(&client->dev,
--
2.43.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: hwmon: adm1275: add sq24905c support
2025-08-04 12:48 ` [PATCH 1/2] dt-bindings: hwmon: adm1275: add " ChiShih Tsai
@ 2025-08-04 15:59 ` Guenter Roeck
2025-08-05 6:58 ` Krzysztof Kozlowski
0 siblings, 1 reply; 6+ messages in thread
From: Guenter Roeck @ 2025-08-04 15:59 UTC (permalink / raw)
To: ChiShih Tsai, linux-hwmon, devicetree, linux-kernel, linux-doc
Cc: jdelvare, robh, krzk+dt, conor+dt, corbet, t630619
On 8/4/25 05:48, ChiShih Tsai wrote:
> Add support for sq24905c Hot-Swap Controller and Digital Power Monitor.
>
> Signed-off-by: ChiShih Tsai <tomtsai764@gmail.com>
> ---
> .../bindings/hwmon/adi,adm1275.yaml | 20 +++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml b/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml
> index ddb72857c846..6aa300086c84 100644
> --- a/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml
> +++ b/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml
> @@ -30,6 +30,7 @@ properties:
> - adi,adm1281
> - adi,adm1293
> - adi,adm1294
> + - silergy,sq24905c
>
> reg:
> maxItems: 1
> @@ -46,6 +47,18 @@ properties:
> $ref: /schemas/types.yaml#/definitions/uint32
> enum: [1, 2, 4, 8, 16, 32, 64, 128]
>
> + silergy,volt-curr-sample-average:
> + description: |
> + Number of samples to be used to report voltage and current values.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [1, 2, 4, 8, 16, 32, 64, 128]
> +
> + silergy,power-sample-average:
> + description: |
> + Number of samples to be used to report power values.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [1, 2, 4, 8, 16, 32, 64, 128]
> +
> allOf:
> - $ref: hwmon-common.yaml#
> - if:
> @@ -96,12 +109,17 @@ allOf:
> - adi,adm1281
> - adi,adm1293
> - adi,adm1294
> + - silergy,sq24905c
> then:
> properties:
> adi,volt-curr-sample-average:
> default: 128
> adi,power-sample-average:
> default: 1
> + silergy,volt-curr-sample-average:
> + default: 128
> + silergy,power-sample-average:
> + default: 1
>
I personally don't think this warrants new properties. However, if warranted,
this needs to be qualified to only apply for the Silergy parts.
Guenter
> required:
> - compatible
> @@ -121,5 +139,7 @@ examples:
> shunt-resistor-micro-ohms = <500>;
> adi,volt-curr-sample-average = <128>;
> adi,power-sample-average = <128>;
> + silergy,volt-curr-sample-average = <128>;
> + silergy,power-sample-average = <1>;
> };
> };
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] hwmon: (pmbus/adm1275) add sq24905c support
2025-08-04 12:48 ` [PATCH 2/2] hwmon: (pmbus/adm1275) " ChiShih Tsai
@ 2025-08-04 20:04 ` Guenter Roeck
0 siblings, 0 replies; 6+ messages in thread
From: Guenter Roeck @ 2025-08-04 20:04 UTC (permalink / raw)
To: ChiShih Tsai, linux-hwmon, devicetree, linux-kernel, linux-doc
Cc: jdelvare, robh, krzk+dt, conor+dt, corbet, t630619
On 8/4/25 05:48, ChiShih Tsai wrote:
> Add support for sq24905c which is similar to adm1275 and other chips
> of the series.
>
> Signed-off-by: ChiShih Tsai <tomtsai764@gmail.com>
> ---
> Documentation/hwmon/adm1275.rst | 24 ++++++++++++++++--------
> drivers/hwmon/pmbus/Kconfig | 5 +++--
> drivers/hwmon/pmbus/adm1275.c | 27 +++++++++++++++++++--------
> 3 files changed, 38 insertions(+), 18 deletions(-)
>
> diff --git a/Documentation/hwmon/adm1275.rst b/Documentation/hwmon/adm1275.rst
> index 57bd7a850558..914f009f34e0 100644
> --- a/Documentation/hwmon/adm1275.rst
> +++ b/Documentation/hwmon/adm1275.rst
> @@ -67,6 +67,14 @@ Supported chips:
>
> Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/ADM1293_1294.pdf
>
> + * Silergy SQ24905C
> +
> + Prefix: 'sq24905c'
> +
> + Addresses scanned: -
> +
> + Datasheet: https://www.silergy.com/download/downloadFile?id=5669&type=product&ftype=note
> +
> Author: Guenter Roeck <linux@roeck-us.net>
>
>
> @@ -74,14 +82,14 @@ Description
> -----------
>
> This driver supports hardware monitoring for Analog Devices ADM1075, ADM1272,
> -ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293, and ADM1294 Hot-Swap
> -Controller and Digital Power Monitors.
> +ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293, ADM1294, and SQ24905C
> +Hot-Swap Controller and Digital Power Monitors.
>
> -ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293, and
> -ADM1294 are hot-swap controllers that allow a circuit board to be removed from
> -or inserted into a live backplane. They also feature current and voltage
> -readback via an integrated 12 bit analog-to-digital converter (ADC), accessed
> -using a PMBus interface.
> +ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278, ADM1281, ADM1293,
> +ADM1294 and SQ24905C are hot-swap controllers that allow a circuit board to be
> +removed from or inserted into a live backplane. They also feature current and
> +voltage readback via an integrated 12 bit analog-to-digital converter (ADC),
> +accessed using a PMBus interface.
>
> The driver is a client driver to the core PMBus driver. Please see
> Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
> @@ -160,5 +168,5 @@ temp1_highest Highest observed temperature.
> temp1_reset_history Write any value to reset history.
>
> Temperature attributes are supported on ADM1272,
> - ADM1273, ADM1278, and ADM1281.
> + ADM1273, ADM1278, ADM1281 and SQ24905C.
> ======================= =======================================================
> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
> index 55e492452ce8..7485bc6b2e8a 100644
> --- a/drivers/hwmon/pmbus/Kconfig
> +++ b/drivers/hwmon/pmbus/Kconfig
> @@ -51,8 +51,9 @@ config SENSORS_ADM1275
> tristate "Analog Devices ADM1275 and compatibles"
> help
> If you say yes here you get hardware monitoring support for Analog
> - Devices ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278, ADM1281,
> - ADM1293, and ADM1294 Hot-Swap Controller and Digital Power Monitors.
> + Devices ADM1075, ADM1272, ADM1273, ADM1275, ADM1276, ADM1278,
> + ADM1281, ADM1293, ADM1294 and SQ24905C Hot-Swap Controller and
> + Digital Power Monitors.
>
> This driver can also be built as a module. If so, the module will
> be called adm1275.
> diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c
> index 7d175baa5de2..1c032aaac379 100644
> --- a/drivers/hwmon/pmbus/adm1275.c
> +++ b/drivers/hwmon/pmbus/adm1275.c
> @@ -18,7 +18,8 @@
> #include <linux/log2.h>
> #include "pmbus.h"
>
> -enum chips { adm1075, adm1272, adm1273, adm1275, adm1276, adm1278, adm1281, adm1293, adm1294 };
> +enum chips { adm1075, adm1272, adm1273, adm1275, adm1276, adm1278, adm1281,
> + adm1293, adm1294, sq24905c };
>
> #define ADM1275_MFR_STATUS_IOUT_WARN2 BIT(0)
> #define ADM1293_MFR_STATUS_VAUX_UV_WARN BIT(5)
> @@ -486,6 +487,7 @@ static const struct i2c_device_id adm1275_id[] = {
> { "adm1281", adm1281 },
> { "adm1293", adm1293 },
> { "adm1294", adm1294 },
> + { "MC09C", sq24905c },
mc09c (lower case). But how did you test this ? This seems to be intended to match
PMBUS_MFR_MODEL, but it is not the ID suggested in devicetree properties
(silergy,sq24905c). It seems to me that the match code in the probe function needs
to be modified to handle situations where PMBUS_MFR_MODEL does not match the
device id.
> { }
> };
> MODULE_DEVICE_TABLE(i2c, adm1275_id);
> @@ -533,8 +535,10 @@ static int adm1275_probe(struct i2c_client *client)
> return ret;
> }
> if (ret != 3 || strncmp(block_buffer, "ADI", 3)) {
> - dev_err(&client->dev, "Unsupported Manufacturer ID\n");
> - return -ENODEV;
> + if (ret != 2 || strncmp(block_buffer, "SY", 2)) {
> + dev_err(&client->dev, "Unsupported Manufacturer ID\n");
> + return -ENODEV;
> + }
Combine to a single if statement.
if ((ret != 3 || strncmp(block_buffer, "ADI", 3)) &&
(ret != 2 || strncmp(block_buffer, "SY", 2))) {
dev_err(&client->dev, "Unsupported Manufacturer ID\n");
return -ENODEV;
}
> }
>
> ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL, block_buffer);
> @@ -558,7 +562,8 @@ static int adm1275_probe(struct i2c_client *client)
>
> if (mid->driver_data == adm1272 || mid->driver_data == adm1273 ||
> mid->driver_data == adm1278 || mid->driver_data == adm1281 ||
> - mid->driver_data == adm1293 || mid->driver_data == adm1294)
> + mid->driver_data == adm1293 || mid->driver_data == adm1294 ||
> + mid->driver_data == sq24905c)
> config_read_fn = i2c_smbus_read_word_data;
> else
> config_read_fn = i2c_smbus_read_byte_data;
> @@ -708,6 +713,7 @@ static int adm1275_probe(struct i2c_client *client)
> break;
> case adm1278:
> case adm1281:
> + case sq24905c:
That suggests compatibility to ADM1278 and ADM1281, not ADM1275.
That should be mentioned in the description.
> data->have_vout = true;
> data->have_pin_max = true;
> data->have_temp_max = true;
> @@ -786,9 +792,12 @@ static int adm1275_probe(struct i2c_client *client)
> return -ENODEV;
> }
>
> - if (data->have_power_sampling &&
> + if ((data->have_power_sampling &&
> of_property_read_u32(client->dev.of_node,
> - "adi,power-sample-average", &avg) == 0) {
> + "adi,power-sample-average", &avg) == 0) ||
> + (data->have_power_sampling &&
> + of_property_read_u32(client->dev.of_node,
> + "silergy,power-sample-average", &avg) == 0)) {
Checking for have_power_sampling twice just makes the code unnecessarily complex.
Also, if it is really even acceptable to have two properties for the same
function, there will need to be a validation to ensure that only the
"correct" one, based on the chip type, is used.
> if (!avg || avg > ADM1275_SAMPLES_AVG_MAX ||
> BIT(__fls(avg)) != avg) {
> dev_err(&client->dev,
> @@ -804,8 +813,10 @@ static int adm1275_probe(struct i2c_client *client)
> }
> }
>
> - if (of_property_read_u32(client->dev.of_node,
> - "adi,volt-curr-sample-average", &avg) == 0) {
> + if ((of_property_read_u32(client->dev.of_node,
> + "adi,volt-curr-sample-average", &avg) == 0) ||
> + (of_property_read_u32(client->dev.of_node,
> + "silergy,volt-curr-sample-average", &avg) == 0)) {
> if (!avg || avg > ADM1275_SAMPLES_AVG_MAX ||
> BIT(__fls(avg)) != avg) {
> dev_err(&client->dev,
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: hwmon: adm1275: add sq24905c support
2025-08-04 15:59 ` Guenter Roeck
@ 2025-08-05 6:58 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2025-08-05 6:58 UTC (permalink / raw)
To: Guenter Roeck
Cc: ChiShih Tsai, linux-hwmon, devicetree, linux-kernel, linux-doc,
jdelvare, robh, krzk+dt, conor+dt, corbet, t630619
On Mon, Aug 04, 2025 at 08:59:09AM -0700, Guenter Roeck wrote:
> > allOf:
> > - $ref: hwmon-common.yaml#
> > - if:
> > @@ -96,12 +109,17 @@ allOf:
> > - adi,adm1281
> > - adi,adm1293
> > - adi,adm1294
> > + - silergy,sq24905c
> > then:
> > properties:
> > adi,volt-curr-sample-average:
> > default: 128
> > adi,power-sample-average:
> > default: 1
> > + silergy,volt-curr-sample-average:
> > + default: 128
> > + silergy,power-sample-average:
> > + default: 1
>
> I personally don't think this warrants new properties. However, if warranted,
These are the same properties as adi ones, right? Then I agree, re-use
existing ones.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-08-05 6:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-04 12:48 [PATCH 0/2] Add sq24905c support ChiShih Tsai
2025-08-04 12:48 ` [PATCH 1/2] dt-bindings: hwmon: adm1275: add " ChiShih Tsai
2025-08-04 15:59 ` Guenter Roeck
2025-08-05 6:58 ` Krzysztof Kozlowski
2025-08-04 12:48 ` [PATCH 2/2] hwmon: (pmbus/adm1275) " ChiShih Tsai
2025-08-04 20:04 ` 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).