diff mbox series

[v7,05/11] dt-bindings: pwm: add microchip corepwm binding

Message ID 20220214135840.168236-6-conor.dooley@microchip.com (mailing list archive)
State New, archived
Headers show
Series Update the Icicle Kit device tree | expand

Commit Message

Conor Dooley Feb. 14, 2022, 1:58 p.m. UTC
From: Conor Dooley <conor.dooley@microchip.com>

Add device tree bindings for the Microchip fpga fabric based "core" PWM
controller.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 .../bindings/pwm/microchip,corepwm.yaml       | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml

Comments

Conor Dooley Feb. 21, 2022, 7:55 a.m. UTC | #1
Hey Uwe,
Could you take a look at this version & see if the descriptions are 
easier to understand?
Thanks,
Conor

On 14/02/2022 13:58, conor.dooley@microchip.com wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> Add device tree bindings for the Microchip fpga fabric based "core" PWM
> controller.
> 
> Reviewed-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> ---
>   .../bindings/pwm/microchip,corepwm.yaml       | 81 +++++++++++++++++++
>   1 file changed, 81 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml b/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
> new file mode 100644
> index 000000000000..a7fae1772a81
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
> @@ -0,0 +1,81 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pwm/microchip,corepwm.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip IP corePWM controller bindings
> +
> +maintainers:
> +  - Conor Dooley <conor.dooley@microchip.com>
> +
> +description: |
> +  corePWM is an 16 channel pulse width modulator FPGA IP
> +
> +  https://www.microsemi.com/existing-parts/parts/152118
> +
> +allOf:
> +  - $ref: pwm.yaml#
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: microchip,corepwm-rtl-v4
> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    maxItems: 1
> +
> +  "#pwm-cells":
> +    const: 2
> +
> +  microchip,sync-update-mask:
> +    description: |
> +      Depending on how the IP is instantiated, there are two modes of operation.
> +      In synchronous mode, all channels are updated at the beginning of the PWM period,
> +      and in asynchronous mode updates happen as the control registers are written.
> +      A 16 bit wide "SHADOW_REG_EN" parameter of the IP core controls whether synchronous
> +      mode is possible for each channel, and is set by the bitstream programmed to the
> +      FPGA. If the IP core is instantiated with SHADOW_REG_ENx=1, both registers that
> +      control the duty cycle for channel x have a second "shadow"/buffer reg synthesised.
> +      At runtime a bit wide register exposed to APB can be used to toggle on/off
> +      synchronised mode for all channels it has been synthesised for.
> +      Each bit of "microchip,sync-update-mask" corresponds to a PWM channel & represents
> +      whether synchronous mode is possible for the PWM channel.
> +
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    default: 0
> +
> +  microchip,dac-mode-mask:
> +    description: |
> +      Optional, per-channel Low Ripple DAC mode is possible on this IP core. It creates
> +      a minimum period pulse train whose High/Low average is that of the chosen duty
> +      cycle. This "DAC" will have far better bandwidth and ripple performance than the
> +      standard PWM algorithm can achieve. A 16 bit DAC_MODE module parameter of the IP
> +      core, set at instantiation and by the bitstream programmed to the FPGA, determines
> +      whether a given channel operates in regular PWM or DAC mode.
> +      Each bit corresponds to a PWM channel & represents whether DAC mode is enabled
> +      for that channel.
> +
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    default: 0
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    pwm@41000000 {
> +      compatible = "microchip,corepwm-rtl-v4";
> +      microchip,sync-update-mask = /bits/ 32 <0>;
> +      clocks = <&clkcfg 30>;
> +      reg = <0x41000000 0xF0>;
> +      #pwm-cells = <2>;
> +    };
Uwe Kleine-König Feb. 23, 2022, 6:20 a.m. UTC | #2
On Mon, Feb 14, 2022 at 01:58:35PM +0000, conor.dooley@microchip.com wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> Add device tree bindings for the Microchip fpga fabric based "core" PWM
> controller.
> 
> Reviewed-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>

I like it:

Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

nitpick: Put your S-o-b last in the commit log. (This doesn't justify a
resend IMHO)

Best regards
Uwe
Krzysztof Kozlowski Feb. 23, 2022, 7:12 a.m. UTC | #3
On 23/02/2022 07:20, Uwe Kleine-König wrote:
> On Mon, Feb 14, 2022 at 01:58:35PM +0000, conor.dooley@microchip.com wrote:
>> From: Conor Dooley <conor.dooley@microchip.com>
>>
>> Add device tree bindings for the Microchip fpga fabric based "core" PWM
>> controller.
>>
>> Reviewed-by: Rob Herring <robh@kernel.org>
>> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
>> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> 
> I like it:
> 
> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> 
> nitpick: Put your S-o-b last in the commit log. (This doesn't justify a
> resend IMHO)

It should be the opposite - the first. First author signs the patch,
then comes review and finally an ack. Putting SoB at then suggests that
tags were accumulated before sending patch, out of mailing list.


Best regards,
Krzysztof
Uwe Kleine-König Feb. 23, 2022, 8:20 a.m. UTC | #4
On Wed, Feb 23, 2022 at 08:12:49AM +0100, Krzysztof Kozlowski wrote:
> On 23/02/2022 07:20, Uwe Kleine-König wrote:
> > On Mon, Feb 14, 2022 at 01:58:35PM +0000, conor.dooley@microchip.com wrote:
> >> From: Conor Dooley <conor.dooley@microchip.com>
> >>
> >> Add device tree bindings for the Microchip fpga fabric based "core" PWM
> >> controller.
> >>
> >> Reviewed-by: Rob Herring <robh@kernel.org>
> >> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> >> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> > 
> > I like it:
> > 
> > Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > 
> > nitpick: Put your S-o-b last in the commit log. (This doesn't justify a
> > resend IMHO)
> 
> It should be the opposite - the first. First author signs the patch,
> then comes review and finally an ack. Putting SoB at then suggests that
> tags were accumulated before sending patch, out of mailing list.

well, or in an earlier revision of this patch as is the case here. One
of the ideas of S-o-b is that the order shows the flow of the patch
states and if this patch ends in git with:

	Referred-by: Rob Herring <robh@kernel.org>
	Singed-off-by: Conor Dooley <conor.dooley@microchip.com>
	Backed-by: Palmer Dabbelt <palmer@rivosinc.com>
	Singed-off-by: Peter Maintainer <pm@example.com>

I'd expect that Backed-by was added by Peter, not Conor.
(Modified the tags on purpose to not interfere with b4's tag pickup, I
guess you humans still get the point.)

Best regards
Uwe
Conor Dooley Feb. 23, 2022, 8:55 a.m. UTC | #5
On 23/02/2022 08:20, Uwe Kleine-König wrote:
> On Wed, Feb 23, 2022 at 08:12:49AM +0100, Krzysztof Kozlowski wrote:
> > On 23/02/2022 07:20, Uwe Kleine-König wrote:
> > > On Mon, Feb 14, 2022 at 01:58:35PM +0000, conor.dooley@microchip.com wrote:
> > >> From: Conor Dooley <conor.dooley@microchip.com>
> > >>
> > >> Add device tree bindings for the Microchip fpga fabric based "core" PWM
> > >> controller.
> > >>
> > >> Reviewed-by: Rob Herring <robh@kernel.org>
> > >> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> > >> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> > > 
> > > I like it:
> > > 
> > > Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > > 
> > > nitpick: Put your S-o-b last in the commit log. (This doesn't justify a
> > > resend IMHO)
> > 
> > It should be the opposite - the first. First author signs the patch,
> > then comes review and finally an ack. Putting SoB at then suggests that
> > tags were accumulated before sending patch, out of mailing list.
> 
> well, or in an earlier revision of this patch as is the case here. One
> of the ideas of S-o-b is that the order shows the flow of the patch
> states and if this patch ends in git with:
> 
> 	Referred-by: Rob Herring <robh@kernel.org>
> 	Singed-off-by: Conor Dooley <conor.dooley@microchip.com>
> 	Backed-by: Palmer Dabbelt <palmer@rivosinc.com>
> 	Singed-off-by: Peter Maintainer <pm@example.com>
> 
> I'd expect that Backed-by was added by Peter, not Conor.
> (Modified the tags on purpose to not interfere with b4's tag pickup, I
> guess you humans still get the point.)

I had put the acks after the S-o-B for patches I hadn't changed since the ack,
but I think that may have been a misinterpretation of what was meant by Rob
when he said tags should be in chronological order. Won't do it this way in
the future.

If the remaining patch gets a maintainer ack, the order will be fine I guess
since it'll be Palmer taking it anyway. If there's a v8, I will fix the order.

Thanks,
Conor
Lee Jones Feb. 23, 2022, 9:09 a.m. UTC | #6
On Wed, 23 Feb 2022, Uwe Kleine-König wrote:

> On Wed, Feb 23, 2022 at 08:12:49AM +0100, Krzysztof Kozlowski wrote:
> > On 23/02/2022 07:20, Uwe Kleine-König wrote:
> > > On Mon, Feb 14, 2022 at 01:58:35PM +0000, conor.dooley@microchip.com wrote:
> > >> From: Conor Dooley <conor.dooley@microchip.com>
> > >>
> > >> Add device tree bindings for the Microchip fpga fabric based "core" PWM
> > >> controller.
> > >>
> > >> Reviewed-by: Rob Herring <robh@kernel.org>
> > >> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> > >> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> > > 
> > > I like it:
> > > 
> > > Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > > 
> > > nitpick: Put your S-o-b last in the commit log. (This doesn't justify a
> > > resend IMHO)
> > 
> > It should be the opposite - the first. First author signs the patch,
> > then comes review and finally an ack. Putting SoB at then suggests that
> > tags were accumulated before sending patch, out of mailing list.
> 
> well, or in an earlier revision of this patch as is the case here. One
> of the ideas of S-o-b is that the order shows the flow of the patch
> states and if this patch ends in git with:
> 
> 	Referred-by: Rob Herring <robh@kernel.org>
> 	Singed-off-by: Conor Dooley <conor.dooley@microchip.com>
> 	Backed-by: Palmer Dabbelt <palmer@rivosinc.com>
> 	Singed-off-by: Peter Maintainer <pm@example.com>
> 
> I'd expect that Backed-by was added by Peter, not Conor.
> (Modified the tags on purpose to not interfere with b4's tag pickup, I
> guess you humans still get the point.)

I tend to like *-by tags to appear chronologically.

  Suggested              (suggested-by)
  Authored               (signed-off-by)
  Co-Authored            (signed-off-by/co-developed-by)
  Reviewed/Acked/Tested  (reviewed-by/acked-by/tested-by)
  Committed              (signed-off-by)
Thierry Reding Feb. 24, 2022, 1:19 p.m. UTC | #7
On Mon, Feb 14, 2022 at 01:58:35PM +0000, conor.dooley@microchip.com wrote:
> From: Conor Dooley <conor.dooley@microchip.com>
> 
> Add device tree bindings for the Microchip fpga fabric based "core" PWM
> controller.
> 
> Reviewed-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
> Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
> ---
>  .../bindings/pwm/microchip,corepwm.yaml       | 81 +++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml

Fine with me to go through the RISC-V tree:

Acked-by: Thierry Reding <thierry.reding@gmail.com>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml b/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
new file mode 100644
index 000000000000..a7fae1772a81
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
@@ -0,0 +1,81 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/microchip,corepwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip IP corePWM controller bindings
+
+maintainers:
+  - Conor Dooley <conor.dooley@microchip.com>
+
+description: |
+  corePWM is an 16 channel pulse width modulator FPGA IP
+
+  https://www.microsemi.com/existing-parts/parts/152118
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    items:
+      - const: microchip,corepwm-rtl-v4
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  "#pwm-cells":
+    const: 2
+
+  microchip,sync-update-mask:
+    description: |
+      Depending on how the IP is instantiated, there are two modes of operation.
+      In synchronous mode, all channels are updated at the beginning of the PWM period,
+      and in asynchronous mode updates happen as the control registers are written.
+      A 16 bit wide "SHADOW_REG_EN" parameter of the IP core controls whether synchronous
+      mode is possible for each channel, and is set by the bitstream programmed to the
+      FPGA. If the IP core is instantiated with SHADOW_REG_ENx=1, both registers that
+      control the duty cycle for channel x have a second "shadow"/buffer reg synthesised.
+      At runtime a bit wide register exposed to APB can be used to toggle on/off
+      synchronised mode for all channels it has been synthesised for.
+      Each bit of "microchip,sync-update-mask" corresponds to a PWM channel & represents
+      whether synchronous mode is possible for the PWM channel.
+
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 0
+
+  microchip,dac-mode-mask:
+    description: |
+      Optional, per-channel Low Ripple DAC mode is possible on this IP core. It creates
+      a minimum period pulse train whose High/Low average is that of the chosen duty
+      cycle. This "DAC" will have far better bandwidth and ripple performance than the
+      standard PWM algorithm can achieve. A 16 bit DAC_MODE module parameter of the IP
+      core, set at instantiation and by the bitstream programmed to the FPGA, determines
+      whether a given channel operates in regular PWM or DAC mode.
+      Each bit corresponds to a PWM channel & represents whether DAC mode is enabled
+      for that channel.
+
+    $ref: /schemas/types.yaml#/definitions/uint32
+    default: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    pwm@41000000 {
+      compatible = "microchip,corepwm-rtl-v4";
+      microchip,sync-update-mask = /bits/ 32 <0>;
+      clocks = <&clkcfg 30>;
+      reg = <0x41000000 0xF0>;
+      #pwm-cells = <2>;
+    };