devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] hwmon: adt7475: Implement support for #pwm-cells = <3>
@ 2025-06-19 19:37 Uwe Kleine-König
  2025-06-19 19:37 ` [PATCH 1/2] " Uwe Kleine-König
  2025-06-19 19:37 ` [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend " Uwe Kleine-König
  0 siblings, 2 replies; 6+ messages in thread
From: Uwe Kleine-König @ 2025-06-19 19:37 UTC (permalink / raw)
  To: Jean Delvare, Guenter Roeck
  Cc: Chris Packham, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-hwmon, devicetree

Hello,

this patch series implements support for #pwm-cells = <3> and updates the
binding accordingly. 3 cells is the usual PWM binding as was discussed in
https://lore.kernel.org/linux-hwmon/jmxmxzzfyobuheqe75lj7qcq5rlt625wddb3rlhiernunjdodu@tgxghvfef4tl .

Best regards
Uwe

Uwe Kleine-König (2):
  hwmon: adt7475: Implement support for #pwm-cells = <3>
  dt-bindings: hwmon: adt7475: Allow and recommend #pwm-cells = <3>

 .../devicetree/bindings/hwmon/adt7475.yaml    | 15 ++++++++------
 drivers/hwmon/adt7475.c                       | 20 ++++++++++++++++---
 2 files changed, 26 insertions(+), 9 deletions(-)

base-commit: 4325743c7e209ae7845293679a4de94b969f2bef
-- 
2.49.0


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

* [PATCH 1/2] hwmon: adt7475: Implement support for #pwm-cells = <3>
  2025-06-19 19:37 [PATCH 0/2] hwmon: adt7475: Implement support for #pwm-cells = <3> Uwe Kleine-König
@ 2025-06-19 19:37 ` Uwe Kleine-König
  2025-07-16 20:11   ` Guenter Roeck
  2025-06-19 19:37 ` [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend " Uwe Kleine-König
  1 sibling, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2025-06-19 19:37 UTC (permalink / raw)
  To: Jean Delvare, Guenter Roeck
  Cc: Chris Packham, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-hwmon, devicetree

The adt7475 driver and binding are outliers requiring 4 pwm-cells. The
typical value is 3, there are a few devices that use a lesser value for
historical reasons, no other uses a value bigger than 3.

Implement support for 3 cells to make the adt7475 binding match the
usual PWM binding.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
---
 drivers/hwmon/adt7475.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c
index 5f2541c11fe9..8cefa14e1633 100644
--- a/drivers/hwmon/adt7475.c
+++ b/drivers/hwmon/adt7475.c
@@ -1704,12 +1704,15 @@ static int adt7475_pwm_properties_parse_reference_args(struct fwnode_handle *fwn
 	if (ret)
 		return ret;
 
-	if (rargs.nargs != 4) {
+	if (rargs.nargs != 3 && rargs.nargs != 4) {
 		fwnode_handle_put(rargs.fwnode);
 		return -EINVAL;
 	}
 
-	for (i = 0; i < 4; i++)
+	/* Let duty_cycle default to period */
+	args[3] = rargs.args[1];
+
+	for (i = 0; i < rargs.nargs; i++)
 		args[i] = rargs.args[i];
 
 	ret = _adt7475_pwm_properties_parse_args(args, cfg);
@@ -1724,11 +1727,22 @@ static int adt7475_pwm_properties_parse_args(struct fwnode_handle *fwnode,
 {
 	int ret;
 	u32 args[4] = {};
+	size_t n_vals = fwnode_property_count_u32(fwnode, "pwms");
 
-	ret = fwnode_property_read_u32_array(fwnode, "pwms", args, ARRAY_SIZE(args));
+	if (n_vals != 3 && n_vals != 4)
+		return -EOVERFLOW;
+
+	ret = fwnode_property_read_u32_array(fwnode, "pwms", args, n_vals);
 	if (ret)
 		return ret;
 
+	/*
+	 * If there are no item to define the duty_cycle, default it to the
+	 * period.
+	 */
+	if (n_vals == 3)
+		args[3] = args[1];
+
 	return _adt7475_pwm_properties_parse_args(args, cfg);
 }
 
-- 
2.49.0


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

* [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend #pwm-cells = <3>
  2025-06-19 19:37 [PATCH 0/2] hwmon: adt7475: Implement support for #pwm-cells = <3> Uwe Kleine-König
  2025-06-19 19:37 ` [PATCH 1/2] " Uwe Kleine-König
@ 2025-06-19 19:37 ` Uwe Kleine-König
  2025-06-27 19:42   ` Rob Herring (Arm)
  2025-07-16 20:12   ` Guenter Roeck
  1 sibling, 2 replies; 6+ messages in thread
From: Uwe Kleine-König @ 2025-06-19 19:37 UTC (permalink / raw)
  To: Jean Delvare, Guenter Roeck
  Cc: Chris Packham, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	linux-hwmon, devicetree

To make this binding match what is usally used for PWMs, deprecate 4
cells and allow 3 instead.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
---
 .../devicetree/bindings/hwmon/adt7475.yaml        | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/hwmon/adt7475.yaml b/Documentation/devicetree/bindings/hwmon/adt7475.yaml
index 79e8d62fa3b3..43e9fe225870 100644
--- a/Documentation/devicetree/bindings/hwmon/adt7475.yaml
+++ b/Documentation/devicetree/bindings/hwmon/adt7475.yaml
@@ -53,7 +53,10 @@ properties:
       default: 1
 
   "#pwm-cells":
-    const: 4
+    oneOf:
+      - const: 3
+      - const: 4
+        deprecated: true
     description: |
       Number of cells in a PWM specifier.
       - 0: The PWM channel
@@ -68,7 +71,7 @@ properties:
            - 11363636 (88 Hz)
            - 44444 (22 kHz)
       - 2: PWM flags 0 or PWM_POLARITY_INVERTED
-      - 3: The default PWM duty cycle in nanoseconds
+      - 3: The default PWM duty cycle in nanoseconds, defaults to period.
 
 patternProperties:
   "^adi,bypass-attenuator-in[0-4]$":
@@ -124,15 +127,15 @@ examples:
         adi,bypass-attenuator-in1 = <0>;
         adi,pin10-function = "smbalert#";
         adi,pin14-function = "tach4";
-        #pwm-cells = <4>;
+        #pwm-cells = <3>;
 
-        /* PWMs at 22.5 kHz frequency, 50% duty*/
+        /* PWMs at 22.5 kHz frequency */
         fan-0 {
-          pwms = <&pwm 0 44444 0 22222>;
+          pwms = <&pwm 0 44444 0>;
         };
 
         fan-1 {
-          pwms = <&pwm 2 44444 0 22222>;
+          pwms = <&pwm 2 44444 0>;
         };
       };
     };
-- 
2.49.0


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

* Re: [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend #pwm-cells = <3>
  2025-06-19 19:37 ` [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend " Uwe Kleine-König
@ 2025-06-27 19:42   ` Rob Herring (Arm)
  2025-07-16 20:12   ` Guenter Roeck
  1 sibling, 0 replies; 6+ messages in thread
From: Rob Herring (Arm) @ 2025-06-27 19:42 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Jean Delvare, Conor Dooley, Guenter Roeck, devicetree,
	Chris Packham, Krzysztof Kozlowski, linux-hwmon


On Thu, 19 Jun 2025 21:37:46 +0200, Uwe Kleine-König wrote:
> To make this binding match what is usally used for PWMs, deprecate 4
> cells and allow 3 instead.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
> ---
>  .../devicetree/bindings/hwmon/adt7475.yaml        | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 

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


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

* Re: [PATCH 1/2] hwmon: adt7475: Implement support for #pwm-cells = <3>
  2025-06-19 19:37 ` [PATCH 1/2] " Uwe Kleine-König
@ 2025-07-16 20:11   ` Guenter Roeck
  0 siblings, 0 replies; 6+ messages in thread
From: Guenter Roeck @ 2025-07-16 20:11 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Jean Delvare, Chris Packham, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, linux-hwmon, devicetree

On Thu, Jun 19, 2025 at 09:37:45PM +0200, Uwe Kleine-König wrote:
> The adt7475 driver and binding are outliers requiring 4 pwm-cells. The
> typical value is 3, there are a few devices that use a lesser value for
> historical reasons, no other uses a value bigger than 3.
> 
> Implement support for 3 cells to make the adt7475 binding match the
> usual PWM binding.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>

Applied.
Guenter

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

* Re: [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend #pwm-cells = <3>
  2025-06-19 19:37 ` [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend " Uwe Kleine-König
  2025-06-27 19:42   ` Rob Herring (Arm)
@ 2025-07-16 20:12   ` Guenter Roeck
  1 sibling, 0 replies; 6+ messages in thread
From: Guenter Roeck @ 2025-07-16 20:12 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Jean Delvare, Chris Packham, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, linux-hwmon, devicetree

On Thu, Jun 19, 2025 at 09:37:46PM +0200, Uwe Kleine-König wrote:
> To make this binding match what is usally used for PWMs, deprecate 4
> cells and allow 3 instead.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>

Applied.

Guenter

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

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

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-19 19:37 [PATCH 0/2] hwmon: adt7475: Implement support for #pwm-cells = <3> Uwe Kleine-König
2025-06-19 19:37 ` [PATCH 1/2] " Uwe Kleine-König
2025-07-16 20:11   ` Guenter Roeck
2025-06-19 19:37 ` [PATCH 2/2] dt-bindings: hwmon: adt7475: Allow and recommend " Uwe Kleine-König
2025-06-27 19:42   ` Rob Herring (Arm)
2025-07-16 20: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).