All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Conor.Dooley@microchip.com>
To: <geert@linux-m68k.org>
Cc: <u.kleine-koenig@pengutronix.de>, <a.zummo@towertech.it>,
	<alexandre.belloni@bootlin.com>, <aou@eecs.berkeley.edu>,
	<atishp@rivosinc.com>, <bin.meng@windriver.com>, <brgl@bgdev.pl>,
	<Daire.McNamara@microchip.com>, <devicetree@vger.kernel.org>,
	<heiko@sntech.de>, <Ivan.Griffin@microchip.com>,
	<jassisinghbrar@gmail.com>, <krzysztof.kozlowski@canonical.com>,
	<lee.jones@linaro.org>, <Lewis.Hanly@microchip.com>,
	<linus.walleij@linaro.org>, <linux-gpio@vger.kernel.org>,
	<linux-i2c@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-pwm@vger.kernel.org>, <linux-riscv@lists.infradead.org>,
	<linux-rtc@vger.kernel.org>, <palmer@dabbelt.com>,
	<paul.walmsley@sifive.com>, <robh+dt@kernel.org>,
	<robh@kernel.org>, <thierry.reding@gmail.com>
Subject: Re: [PATCH v5 06/12] dt-bindings: pwm: add microchip corepwm binding
Date: Wed, 2 Feb 2022 14:37:42 +0000	[thread overview]
Message-ID: <fa747594-a112-d313-5de3-2330bf5ddc8a@microchip.com> (raw)
In-Reply-To: <CAMuHMdXvw9cNNzBhp-sSMTXxP2eALhB=fD78Wgx-kks7wr6oiQ@mail.gmail.com>

On 02/02/2022 14:02, Geert Uytterhoeven wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> On Wed, Feb 2, 2022 at 2:46 PM <Conor.Dooley@microchip.com> wrote:
>> On 02/02/2022 13:28, Geert Uytterhoeven wrote:
>>> On Wed, Feb 2, 2022 at 1:33 PM <conor.dooley@microchip.com> wrote:
>>>>> On 01/02/2022 07:58, Uwe Kleine-König wrote:
>>>>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>>>> On Mon, Jan 31, 2022 at 11:47:21AM +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>
>>>>>> ---
>>>>>> .../bindings/pwm/microchip,corepwm.yaml       | 75 +++++++++++++++++++
>>>
>>>>>> +  microchip,sync-update:
>>>>>> +    description: |
>>>>>> +      In synchronous mode, all channels are updated at the beginning of the PWM period.
>>>>>> +      Asynchronous mode is relevant to applications such as LED control, where
>>>>>> +      synchronous updates are not required. Asynchronous mode lowers the area size,
>>>>>> +      reducing shadow register requirements. This can be set at run time, provided
>>>>>> +      SHADOW_REG_EN is asserted. SHADOW_REG_EN is set by the FPGA bitstream programmed
>>>>>> +      to the device.
>>>>>> +      Each bit corresponds to a PWM channel & represents whether synchronous mode is
>>>>>> +      possible for the PWM channel.
>>>>>> +
>>>>>> +    $ref: /schemas/types.yaml#/definitions/uint16
>>>>>> +    default: 0
>>>>>
>>>>> I'm not sure I understand this correctly. This is a soft-core and you
>>>>> can synthesize it either with or without the ability to do synchronous
>>>>> updates or not, right? All 16 channels share the same period length and
>>>>> in the simple implementation changing the duty cycle is done at once
>>>>> (maybe introducing a glitch) and in the more expensive implementation
>>>>> there is a register to implement both variants?
>>>>
>>>> Correct. If the IP is instantiated with SHADOW_REG_ENx=1, both
>>>> registers that control the duty cycle for channel x have a second
>>>> "shadow 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.
>>>>
>>>> I will reword this description since it is not clear.
>>>
>>> Shouldn't it use a different compatible value instead?
>>> Differentiation by properties is not recommended, as it's easy to
>>> miss a difference.
>>
>> Either you have something in mind that I've not thought of, or I've done
>> a bad job of explaining again. The buffer/"shadow" registers are
>> synthesised on a per channel basis, so any combination of the 16
>> channels may have this capability. The same applies to the DAC mode, per
>> channel there too.
> 
> Oops, hadn't noticed this is per channel. Indeed, then a different
> compatible value is futile.
> So since "microchip,sync-update" is a bitmask, perhaps it should be
> called "microchip,sync-update-mask"?
> Same for "microchip,dac-mode" -> "microchip,dac-mode-mask"?

Adding -mask sounds good to me.

> Also, using different integer sizes than uint32 is frowned upon, unless
> there is a very good reason to do so. I can imagine a future version
> would support more channels, and then uint16 becomes a limitation.

Sure, uint32 it is.

> For both: Rob?

Both of these properties fall under the "DO attempt to make bindings 
complete even if a driver doesn’t support some features" category, so I 
am perfectly happy to change these properties to whatever is convention 
(or ultimately drop them for the sake of the remainder of the series).

Thanks,
Conor.


WARNING: multiple messages have this Message-ID (diff)
From: <Conor.Dooley@microchip.com>
To: <geert@linux-m68k.org>
Cc: <u.kleine-koenig@pengutronix.de>, <a.zummo@towertech.it>,
	<alexandre.belloni@bootlin.com>, <aou@eecs.berkeley.edu>,
	<atishp@rivosinc.com>, <bin.meng@windriver.com>, <brgl@bgdev.pl>,
	<Daire.McNamara@microchip.com>, <devicetree@vger.kernel.org>,
	<heiko@sntech.de>, <Ivan.Griffin@microchip.com>,
	<jassisinghbrar@gmail.com>, <krzysztof.kozlowski@canonical.com>,
	<lee.jones@linaro.org>, <Lewis.Hanly@microchip.com>,
	<linus.walleij@linaro.org>, <linux-gpio@vger.kernel.org>,
	<linux-i2c@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-pwm@vger.kernel.org>, <linux-riscv@lists.infradead.org>,
	<linux-rtc@vger.kernel.org>, <palmer@dabbelt.com>,
	<paul.walmsley@sifive.com>, <robh+dt@kernel.org>,
	<robh@kernel.org>, <thierry.reding@gmail.com>
Subject: Re: [PATCH v5 06/12] dt-bindings: pwm: add microchip corepwm binding
Date: Wed, 2 Feb 2022 14:37:42 +0000	[thread overview]
Message-ID: <fa747594-a112-d313-5de3-2330bf5ddc8a@microchip.com> (raw)
In-Reply-To: <CAMuHMdXvw9cNNzBhp-sSMTXxP2eALhB=fD78Wgx-kks7wr6oiQ@mail.gmail.com>

On 02/02/2022 14:02, Geert Uytterhoeven wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> On Wed, Feb 2, 2022 at 2:46 PM <Conor.Dooley@microchip.com> wrote:
>> On 02/02/2022 13:28, Geert Uytterhoeven wrote:
>>> On Wed, Feb 2, 2022 at 1:33 PM <conor.dooley@microchip.com> wrote:
>>>>> On 01/02/2022 07:58, Uwe Kleine-König wrote:
>>>>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>>>> On Mon, Jan 31, 2022 at 11:47:21AM +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>
>>>>>> ---
>>>>>> .../bindings/pwm/microchip,corepwm.yaml       | 75 +++++++++++++++++++
>>>
>>>>>> +  microchip,sync-update:
>>>>>> +    description: |
>>>>>> +      In synchronous mode, all channels are updated at the beginning of the PWM period.
>>>>>> +      Asynchronous mode is relevant to applications such as LED control, where
>>>>>> +      synchronous updates are not required. Asynchronous mode lowers the area size,
>>>>>> +      reducing shadow register requirements. This can be set at run time, provided
>>>>>> +      SHADOW_REG_EN is asserted. SHADOW_REG_EN is set by the FPGA bitstream programmed
>>>>>> +      to the device.
>>>>>> +      Each bit corresponds to a PWM channel & represents whether synchronous mode is
>>>>>> +      possible for the PWM channel.
>>>>>> +
>>>>>> +    $ref: /schemas/types.yaml#/definitions/uint16
>>>>>> +    default: 0
>>>>>
>>>>> I'm not sure I understand this correctly. This is a soft-core and you
>>>>> can synthesize it either with or without the ability to do synchronous
>>>>> updates or not, right? All 16 channels share the same period length and
>>>>> in the simple implementation changing the duty cycle is done at once
>>>>> (maybe introducing a glitch) and in the more expensive implementation
>>>>> there is a register to implement both variants?
>>>>
>>>> Correct. If the IP is instantiated with SHADOW_REG_ENx=1, both
>>>> registers that control the duty cycle for channel x have a second
>>>> "shadow 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.
>>>>
>>>> I will reword this description since it is not clear.
>>>
>>> Shouldn't it use a different compatible value instead?
>>> Differentiation by properties is not recommended, as it's easy to
>>> miss a difference.
>>
>> Either you have something in mind that I've not thought of, or I've done
>> a bad job of explaining again. The buffer/"shadow" registers are
>> synthesised on a per channel basis, so any combination of the 16
>> channels may have this capability. The same applies to the DAC mode, per
>> channel there too.
> 
> Oops, hadn't noticed this is per channel. Indeed, then a different
> compatible value is futile.
> So since "microchip,sync-update" is a bitmask, perhaps it should be
> called "microchip,sync-update-mask"?
> Same for "microchip,dac-mode" -> "microchip,dac-mode-mask"?

Adding -mask sounds good to me.

> Also, using different integer sizes than uint32 is frowned upon, unless
> there is a very good reason to do so. I can imagine a future version
> would support more channels, and then uint16 becomes a limitation.

Sure, uint32 it is.

> For both: Rob?

Both of these properties fall under the "DO attempt to make bindings 
complete even if a driver doesn’t support some features" category, so I 
am perfectly happy to change these properties to whatever is convention 
(or ultimately drop them for the sake of the remainder of the series).

Thanks,
Conor.

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2022-02-02 14:37 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-31 11:47 [PATCH v5 00/12] Update the Icicle Kit device tree conor.dooley
2022-01-31 11:47 ` conor.dooley
2022-01-31 11:47 ` [PATCH v5 01/12] dt-bindings: soc/microchip: update syscontroller compatibles conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-02-04 22:39   ` Rob Herring
2022-02-04 22:39     ` Rob Herring
2022-01-31 11:47 ` [PATCH v5 02/12] dt-bindings: soc/microchip: add services as children of sys ctrlr conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-02-04 22:42   ` Rob Herring
2022-02-04 22:42     ` Rob Herring
2022-01-31 11:47 ` [PATCH v5 03/12] dt-bindings: i2c: add bindings for microchip mpfs i2c conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 13:37   ` Rob Herring
2022-01-31 13:37     ` Rob Herring
2022-01-31 15:39   ` Rob Herring
2022-01-31 15:39     ` Rob Herring
2022-01-31 15:55     ` Conor.Dooley
2022-01-31 15:55       ` Conor.Dooley
2022-02-04 22:45       ` Rob Herring
2022-02-04 22:45         ` Rob Herring
2022-02-05 11:53         ` Conor Dooley
2022-02-05 11:53           ` Conor Dooley
2022-01-31 11:47 ` [PATCH v5 04/12] dt-bindings: rtc: add bindings for microchip mpfs rtc conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 13:37   ` Rob Herring
2022-01-31 13:37     ` Rob Herring
2022-02-04 22:46   ` Rob Herring
2022-02-04 22:46     ` Rob Herring
2022-01-31 11:47 ` [PATCH v5 05/12] dt-bindings: gpio: add bindings for microchip mpfs gpio conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 13:37   ` Rob Herring
2022-01-31 13:37     ` Rob Herring
2022-01-31 11:47 ` [PATCH v5 06/12] dt-bindings: pwm: add microchip corepwm binding conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 13:37   ` Rob Herring
2022-01-31 13:37     ` Rob Herring
2022-02-01  7:58   ` Uwe Kleine-König
2022-02-01  7:58     ` Uwe Kleine-König
2022-02-02 12:35     ` conor.dooley
2022-02-02 12:35       ` conor.dooley
2022-02-02 13:28       ` Geert Uytterhoeven
2022-02-02 13:28         ` Geert Uytterhoeven
2022-02-02 13:46         ` Conor.Dooley
2022-02-02 13:46           ` Conor.Dooley
2022-02-02 14:02           ` Geert Uytterhoeven
2022-02-02 14:02             ` Geert Uytterhoeven
2022-02-02 14:37             ` Conor.Dooley [this message]
2022-02-02 14:37               ` Conor.Dooley
2022-02-05 12:48               ` Conor Dooley
2022-02-05 12:48                 ` Conor Dooley
2022-01-31 11:47 ` [PATCH v5 07/12] riscv: dts: microchip: use clk defines for icicle kit conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 11:47 ` [PATCH v5 08/12] riscv: dts: microchip: add fpga fabric section to " conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 11:47 ` [PATCH v5 09/12] riscv: dts: microchip: refactor icicle kit device tree conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 11:47 ` [PATCH v5 10/12] riscv: dts: microchip: update peripherals in " conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 11:47 ` [PATCH v5 11/12] riscv: dts: microchip: add new peripherals to " conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-01-31 11:47 ` [PATCH v5 12/12] MAINTAINERS: update riscv/microchip entry conor.dooley
2022-01-31 11:47   ` conor.dooley
2022-02-04 18:09 ` [PATCH v5 00/12] Update the Icicle Kit device tree Palmer Dabbelt
2022-02-04 18:09   ` Palmer Dabbelt
2022-02-04 18:47   ` Conor Dooley
2022-02-04 18:47     ` Conor Dooley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fa747594-a112-d313-5de3-2330bf5ddc8a@microchip.com \
    --to=conor.dooley@microchip.com \
    --cc=Daire.McNamara@microchip.com \
    --cc=Ivan.Griffin@microchip.com \
    --cc=Lewis.Hanly@microchip.com \
    --cc=a.zummo@towertech.it \
    --cc=alexandre.belloni@bootlin.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=atishp@rivosinc.com \
    --cc=bin.meng@windriver.com \
    --cc=brgl@bgdev.pl \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=heiko@sntech.de \
    --cc=jassisinghbrar@gmail.com \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.