From: Clemens Gruber <clemens.gruber@pqgruber.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: linux-pwm@vger.kernel.org,
Thierry Reding <thierry.reding@gmail.com>,
Sven Van Asbroeck <TheSven73@gmail.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 5/8] pwm: core: Support new PWM_STAGGERING_ALLOWED flag
Date: Wed, 7 Apr 2021 22:21:10 +0200 [thread overview]
Message-ID: <YG4UNoBCQJkEEfwi@workstation.tuxnet> (raw)
In-Reply-To: <20210407054658.qdsjkstqwynxeuxj@pengutronix.de>
On Wed, Apr 07, 2021 at 07:46:58AM +0200, Uwe Kleine-König wrote:
> On Tue, Apr 06, 2021 at 06:41:37PM +0200, Clemens Gruber wrote:
> > If the flag PWM_STAGGERING_ALLOWED is set on a channel, the PWM driver
> > may (if supported by the HW) delay the ON time of the channel relative
> > to the channel number.
> > This does not alter the duty cycle ratio and is only relevant for PWM
> > chips with less prescalers than channels, which would otherwise assert
> > multiple or even all enabled channels at the same time.
> >
> > If this feature is supported by the driver and the flag is set on
> > multiple channels, their ON times are spread out to improve EMI and
> > reduce current spikes.
>
> As said in reply to patch 4/8 already: I don't like this idea and
> think this should be made explicit using a new offset member in struct
> pwm_state instead. That's because I think that the wave form a PWM
> generates should be (completely) defined by the consumer and not by a
> mix between consumer and device tree. Also the consumer has no (sane)
> way to determine if staggering is in use or not.
I don't think offsets are ideal for this feature: It makes it more
cumbersome for the user, because he has to allocate the offsets
himself instead of a simple on/off switch.
The envisioned usecase is: "I want better EMI behavior and don't care
about the individual channels no longer being asserted at the exact same
time".
> One side effect (at least for the pca9685) is that when programming a
> new duty cycle it takes a bit longer than without staggering until the
> new setting is active.
Yes, but it can be turned off if this is a problem, now even per-PWM.
> Another objection I have is that we already have some technical debt
> because there are already two different types of drivers (.apply vs
> .config+.set_polarity+.enable+.disable) and I would like to unify this
> first before introducing new stuff.
But there is already PWM_POLARITY_INVERTED, which can be set in the DT.
I am only adding another flag.
Thierry: What's your take on this?
Thanks,
Clemens
next prev parent reply other threads:[~2021-04-07 20:21 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-06 16:41 [PATCH v7 1/8] pwm: pca9685: Switch to atomic API Clemens Gruber
2021-04-06 16:41 ` [PATCH v7 2/8] pwm: pca9685: Support hardware readout Clemens Gruber
2021-04-07 5:31 ` Uwe Kleine-König
2021-04-07 7:33 ` Clemens Gruber
2021-04-07 9:09 ` Uwe Kleine-König
2021-04-07 9:53 ` Clemens Gruber
2021-04-06 16:41 ` [PATCH v7 3/8] pwm: pca9685: Improve runtime PM behavior Clemens Gruber
2021-04-09 13:03 ` Thierry Reding
2021-04-09 16:08 ` Clemens Gruber
2021-04-06 16:41 ` [PATCH v7 4/8] dt-bindings: pwm: Support new PWM_STAGGERING_ALLOWED flag Clemens Gruber
2021-04-07 5:33 ` Uwe Kleine-König
2021-04-09 12:27 ` Thierry Reding
2021-04-10 14:01 ` Uwe Kleine-König
2021-04-10 14:02 ` Uwe Kleine-König
2021-04-06 16:41 ` [PATCH v7 5/8] pwm: core: " Clemens Gruber
2021-04-07 5:46 ` Uwe Kleine-König
2021-04-07 20:21 ` Clemens Gruber [this message]
2021-04-07 21:34 ` Uwe Kleine-König
2021-04-08 12:50 ` Thierry Reding
2021-04-08 15:51 ` Clemens Gruber
2021-04-08 17:36 ` Uwe Kleine-König
2021-04-08 18:14 ` Clemens Gruber
2021-04-09 11:25 ` Thierry Reding
2021-04-09 16:02 ` Clemens Gruber
2021-04-09 21:35 ` Uwe Kleine-König
2021-04-09 11:10 ` Thierry Reding
2021-04-06 16:41 ` [PATCH v7 6/8] pwm: pca9685: " Clemens Gruber
2021-04-06 16:41 ` [PATCH v7 7/8] pwm: pca9685: Restrict period change for enabled PWMs Clemens Gruber
2021-04-07 6:12 ` Uwe Kleine-König
2021-04-07 20:41 ` Clemens Gruber
2021-04-07 21:38 ` Uwe Kleine-König
2021-04-06 16:41 ` [PATCH v7 8/8] pwm: pca9685: Add error messages for failed regmap calls Clemens Gruber
2021-04-07 6:16 ` Uwe Kleine-König
2021-04-07 20:47 ` Clemens Gruber
2021-04-07 21:41 ` Uwe Kleine-König
2021-04-07 5:24 ` [PATCH v7 1/8] pwm: pca9685: Switch to atomic API Uwe Kleine-König
2021-04-07 7:26 ` Clemens Gruber
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=YG4UNoBCQJkEEfwi@workstation.tuxnet \
--to=clemens.gruber@pqgruber.com \
--cc=TheSven73@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.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 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).