From: Thierry Reding <thierry.reding@gmail.com>
To: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Cc: linux-pwm@vger.kernel.org, "Lee Jones" <lee.jones@linaro.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Felipe Balbi" <balbi@kernel.org>,
"Raymond Tan" <raymond.tan@intel.com>
Subject: Re: [PATCH v4] pwm: Add DesignWare PWM Controller Driver
Date: Wed, 11 Nov 2020 21:33:47 +0100 [thread overview]
Message-ID: <20201111203347.GN6125@ulmo> (raw)
In-Reply-To: <20201002135613.999702-1-jarkko.nikula@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 4149 bytes --]
On Fri, Oct 02, 2020 at 04:56:13PM +0300, Jarkko Nikula wrote:
> Introduce driver for Synopsys DesignWare PWM Controller used on Intel
> Elkhart Lake.
>
> Initial implementation is done by Felipe Balbi while he was working at
> Intel with later changes from Raymond Tan and me.
>
> Co-developed-by: Felipe Balbi (Intel) <balbi@kernel.org>
> Signed-off-by: Felipe Balbi (Intel) <balbi@kernel.org>
> Co-developed-by: Raymond Tan <raymond.tan@intel.com>
> Signed-off-by: Raymond Tan <raymond.tan@intel.com>
> Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
> ---
> v4. Resend with a minor cleanup
> - I guess previous version got lost since it's not visible in list
> archive. I was told we have had some email issues
> - Make dev pointer assignment oneliner in probe
> v3. Previous version: https://www.spinics.net/lists/linux-pwm/msg12363.html
> Changes:
> - I got confirmation specification is not publicly available
> - HW is actually fixed inversed polarity by the PWM framework
> conventions: HW cycle begins with a low period. Fixed polarity and
> low/high period calculation accordingly
> - Added range check to period and duty_cycle
> - Bogus '*' removed from head of the file comment
> - struct dwc_pwm * passed to readl/writel wrappers instead of __iomem *
> - %pe for error code prints
> - clk_period_ns removed from struct dwc_pwm and use DWC_CLK_PERIOD_NS instead
> - Device pointer removed from struct dwc_pwm, it's already carried in
> struct pwm_chip
> - Added Limitations paragraph and commenting timer usage flow in code
> - duty_cycle and period capping to 32-bit removed from
> dwc_pwm_get_state() since PWM core has been converted to 64-bit
> - s/DIV_ROUND_CLOSEST/DIV_ROUND_CLOSEST_ULL/ to fix a link error on
> 32-bit ARM and older GCC-9 build. Reported by kernel test robot
> <lkp@intel.com> on an internal tree
> - Random cleanups, empty line removals etc
> v2. First version here https://www.spinics.net/lists/linux-pwm/msg12122.html
> Thanks to Uwe Kleine-König for good review comments, hopefully I captured
> them all.
> Changes:
> - Added Felipe's Signed-of-by. I added (Intel) to his kernel.org address
> to highlight contribution was done while working at Intel
> - Version register read removed as result was unused
> - Order of dwc_pwm_writel() arguments changed to match with writel()
> - Structure initializers use one space instead of tab alignment
> - Error messages added to dwc_pwm_probe()
> - MODULE_LICENSE() Updated based on a review comment and commit bf7fbeeae6db
> ("module: Cure the MODULE_LICENSE "GPL" vs. "GPL v2" bogosity")
> - Polarity handled. HW supports only normal polarity and driver errors
> out in case of wrong polarity in dwc_pwm_apply() and returns fixed
> normal polarity in dwc_pwm_get_state()
> - Running timers are not stopped on probe and remove. Those may be set
> running by a bootloader and driver should leave them runnning
> - pwm_is_enabled() call changed to pwm->state.enabled in wc_pwm_apply()
> - Co-authors added to MODULE_AUTHOR() and comment
> - mutex removed
> - Add struct dwc_pwm_ctx for register save/restore instead of word array
> - suspend prevented in case of active PWM consumers. Please note this
> checks only PWMs enabled by Linux consumers and not the ones enabled
> by bootloader
> - Duplicate linux/pm_runtime.h include removed
> - Only once used trivial functions moved to dwc_pwm_get_state()
> - struct dwc_pwm_driver_data removed and used hard coded properties
> instead since currently driver supports single device type
> - Driver uses internally 64-bit duty and period calculation and caps
> them to 32-bit ns max value for PWM core. HW supports 32-bit high and
> low period counters with 10 ns resolution so HW can do ~42,9 s duty and
> ~85.9 s period at maximum
> ---
> drivers/pwm/Kconfig | 9 ++
> drivers/pwm/Makefile | 1 +
> drivers/pwm/pwm-dwc.c | 319 ++++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 329 insertions(+)
> create mode 100644 drivers/pwm/pwm-dwc.c
Applied, thanks.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2020-11-11 20:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-02 13:56 [PATCH v4] pwm: Add DesignWare PWM Controller Driver Jarkko Nikula
2020-11-11 20:33 ` Thierry Reding [this message]
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=20201111203347.GN6125@ulmo \
--to=thierry.reding@gmail.com \
--cc=balbi@kernel.org \
--cc=jarkko.nikula@linux.intel.com \
--cc=lee.jones@linaro.org \
--cc=linux-pwm@vger.kernel.org \
--cc=raymond.tan@intel.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.