From: Krzysztof Kozlowski <krzk@kernel.org>
To: Hironori KIKUCHI <kikuchan98@gmail.com>
Cc: linux-kernel@vger.kernel.org,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
"Aleksandr Shubin" <privatesub2@gmail.com>,
"Cheo Fusi" <fusibrandon13@gmail.com>,
linux-pwm@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev
Subject: Re: [PATCH 5/5] dt-bindings: pwm: sun20i: Add options to select a clock source and DIV_M
Date: Sat, 1 Jun 2024 17:17:51 +0200 [thread overview]
Message-ID: <da382d43-fa82-44c0-9630-086f59e6efa2@kernel.org> (raw)
In-Reply-To: <CAG40kxEbMQc-ni0HDVR7rtj48aFu-jz8sYUAO+fdmZSmXWrizw@mail.gmail.com>
On 31/05/2024 19:57, Hironori KIKUCHI wrote:
> Hello,
>
>>> This patch adds new options to select a clock source and DIV_M register
>>> value for each coupled PWM channels.
>>
>> Please do not use "This commit/patch/change", but imperative mood. See
>> longer explanation here:
>> https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
>>
>> Bindings are before their users. This should not be last patch, because
>> this implies there is no user.
>
> I'm sorry, I'll fix them.
>
>> This applies to all variants? Or the one you add? Confused...
>
> Apologies for confusing you. This applies to all variants.
>
>>
>>>
>>> Signed-off-by: Hironori KIKUCHI <kikuchan98@gmail.com>
>>> ---
>>> .../bindings/pwm/allwinner,sun20i-pwm.yaml | 19 +++++++++++++++++++
>>> 1 file changed, 19 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml b/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml
>>> index b9b6d7e7c87..436a1d344ab 100644
>>> --- a/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml
>>> +++ b/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml
>>> @@ -45,6 +45,25 @@ properties:
>>> description: The number of PWM channels configured for this instance
>>> enum: [6, 9]
>>>
>>> + allwinner,pwm-pair-clock-sources:
>>> + description: The clock source names for each PWM pair
>>> + items:
>>> + enum: [hosc, apb]
>>> + minItems: 1
>>> + maxItems: 8
>>
>> Missing type... and add 8 of such items to your example to make it complete.
>
> Thank you. I'll fix it.
>
>>
>>> +
>>> + allwinner,pwm-pair-clock-prescales:
>>> + description: The prescale (DIV_M register) values for each PWM pair
>>> + $ref: /schemas/types.yaml#/definitions/uint32-matrix
>>> + items:
>>> + items:
>>> + minimum: 0
>>> + maximum: 8
>>> + minItems: 1
>>> + maxItems: 1
>>> + minItems: 1
>>> + maxItems: 8
>>
>> This does not look like matrix but array.
>
> I wanted to specify values like this:
>
> allwinner,pwm-pair-clock-prescales = <0>, <1>, <3>;
> allwinner,pwm-pair-clock-sources = "hosc", "apb", "hosc":
>
> These should correspond to each PWM pair.
> This way, I thought we might be able to visually understand the relationship
> between prescalers and sources, like clock-names and clocks.
>
> Is this notation uncommon, perhaps?
It's still an array.
>
>>
>> Why clock DIV cannot be deduced from typical PWM attributes + clock
>> frequency?
>
> This SoC's PWM system has one shared prescaler and clock source for each pair
> of PWM channels. I should have noted this earlier, sorry.
>
> Actually, the original v9 patch automatically deduced the DIV value
> from the frequency.
> However, because the two channels share a single prescaler, once one channel is
> enabled, it affects and restricts the DIV value for the other channel
> in the pair.
> This introduces a problem of determining which channel should set the shared DIV
> value. The original behavior was that the first channel enabled would win.
There's nothing bad in this.
>
> Instead, this patch try to resolve the issue by specifying these
> values for each PWM
> pairs deterministically.
> That's why it requires the new options.
This does not solve that wrong divider can be programmed for second
channel in each pair.
Best regards,
Krzysztof
next prev parent reply other threads:[~2024-06-01 15:17 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-31 14:11 [PATCH 0/5] Add support for Allwinner H616 PWM Hironori KIKUCHI
2024-05-31 14:11 ` [PATCH 1/5] pwm: sun20i: Use devm_pwmchip_alloc() helper Hironori KIKUCHI
2024-05-31 14:11 ` [PATCH 2/5] pwm: sun20i: Add support for Allwinner H616 PWM Hironori KIKUCHI
2024-07-13 12:37 ` Uwe Kleine-König
2024-05-31 14:11 ` [PATCH 3/5] dt-bindings: pwm: sun20i: Add compatible string " Hironori KIKUCHI
2024-05-31 14:39 ` Krzysztof Kozlowski
2024-05-31 17:50 ` Hironori KIKUCHI
2024-05-31 14:11 ` [PATCH 4/5] pwm: sun20i: Delegating the clock source and DIV_M to the Device Tree Hironori KIKUCHI
2024-05-31 14:11 ` [PATCH 5/5] dt-bindings: pwm: sun20i: Add options to select a clock source and DIV_M Hironori KIKUCHI
2024-05-31 14:43 ` Krzysztof Kozlowski
2024-05-31 17:57 ` Hironori KIKUCHI
2024-06-01 15:17 ` Krzysztof Kozlowski [this message]
2024-06-02 6:15 ` Hironori KIKUCHI
2024-06-03 0:09 ` Andre Przywara
2024-06-03 8:42 ` Hironori KIKUCHI
2024-07-13 12:58 ` Uwe Kleine-König
2024-06-05 13:38 ` [PATCH 0/5] Add support for Allwinner H616 PWM Uwe Kleine-König
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=da382d43-fa82-44c0-9630-086f59e6efa2@kernel.org \
--to=krzk@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=fusibrandon13@gmail.com \
--cc=jernej.skrabec@gmail.com \
--cc=kikuchan98@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=privatesub2@gmail.com \
--cc=robh@kernel.org \
--cc=samuel@sholland.org \
--cc=ukleinek@kernel.org \
--cc=wens@csie.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox