From: Petar Stepanovic <pstepanovic@axiado.com>
To: "Akhila Kavi" <akavi@axiado.com>,
"Prasad Bolisetty" <pbolisetty@axiado.com>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Harshit Shah" <hshah@axiado.com>
Cc: linux-pwm@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org,
Conor Dooley <conor.dooley@microchip.com>
Subject: Re: [PATCH v6 0/2] pwm: add Axiado AX3000 PWM support
Date: Fri, 30 Oct 2026 09:21:34 +0100 [thread overview]
Message-ID: <0979887c-0924-4bc7-a9d0-cbd2b95bf459@axiado.com> (raw)
In-Reply-To: <20261005-axiado-ax3000-pwm-v6-0-7feecd0087e4@axiado.com>
On 10/5/2026 9:46 AM, Petar Stepanovic wrote:
> This series adds support for the PWM controller found on Axiado
> AX3000 and AX3005 SoCs.
>
> A new driver is needed because this PWM controller is a SoC-specific
> hardware block used on Axiado SoCs. It has its own register layout,
> enable control, period configuration, duty-cycle configuration, and
> does not match any existing upstream PWM driver.
>
> The controller provides configurable PWM output signals. The driver
> exposes the controller through the Linux PWM framework and supports
> period and duty-cycle configuration.
>
> The driver converts the requested period and duty cycle from nanoseconds
> to hardware clock cycles based on the input clock rate.
>
> The datasheet is not publicly available. Public high-level product
> information is available at:
>
> https://axiado.com/products/#AX3080
>
> The register definitions and programming sequence used by this driver
> are based on Axiado internal SoC documentation.
>
> Signed-off-by: Petar Stepanovic <pstepanovic@axiado.com>
> ---
> Changes in v6:
> - Use 3 PWM cells and add the flags cell to PWM consumers.
> - Fix readback of the constant-high hardware state when the high-time
> register is zero.
> - Link to v5: https://patch.msgid.link/20260921-axiado-ax3000-pwm-v5-0-202aad28e129@axiado.com
>
> Changes in v5:
> - Use the hardware disable state directly instead of emulating a
> disabled
> PWM with the constant-low representation.
> - Remove driver-side cached period and logically-disabled state.
> - Handle 0% duty cycle using the hardware constant-low representation
> during waveform rounding.
> - Decode the constant-low representation as 0% duty with a
> one-clock-cycle
> period on readback.
> - Simplify waveform read/write handling and remove redundant validation.
> - Update the driver limitations documentation.
> - Link to v4: https://patch.msgid.link/20260908-axiado-ax3000-pwm-v4-0-19a03671cd5b@axiado.com
>
> Changes in v4:
> - Corrected the AX3005 compatible ordering to list
> axiado,ax3005-pwm before its axiado,ax3000-pwm fallback.
> - Changed the disabled-state handling to program a constant-low
> waveform,
> because disabling the hardware controller drives the output high.
> - Added software state tracking so readback reports this constant-low
> hardware representation as a logically disabled PWM.
> - Link to v3: https://patch.msgid.link/20260811-axiado-ax3000-pwm-v3-0-6ceaccd812cf@axiado.com
>
> Changes in v3:
> - Express AX3005 compatibility with AX3000 using a fallback compatible.
> - Update the Devicetree binding example accordingly.
> - Add 0% duty-cycle support using the hardware constant-low encoding.
> - Cache the rounded period for 0% duty-cycle waveform readback.
> - Allow sub-cycle duty requests to round down to 0% instead of rounding
> up to one clock cycle.
> - Normalize high-time values greater than the period to 100% duty.
> - Drop the redundant AX3005 OF match entry and use the AX3000 fallback.
> - Clarify comments and PWM hardware limitations.
> - Link to v2: https://lore.kernel.org/r/20260723-axiado-ax3000-pwm-v2-0-22002f0b281d@axiado.com
>
> Changes in v2:
> - Migrated the driver from the legacy apply/get_state API to the new
> waveform ops API (round_waveform_tohw/fromhw, read/write_waveform).
> - Cache the clock rate at probe and lock it with
> devm_clk_rate_exclusive_get() instead of reading it on every op.
> - Improved rounding: clamp period/duty to hardware limits, reject
> non-zero duty offset, preserve exact 100% duty, round sub-cycle duty
> up to the minimum.
> - Added a "Limitations" comment block documenting hardware constraints.
> - Renamed macros from AX_PWM_* to AXIADO_PWM_* and dropped unused ones.
> - DT binding: dropped clock-names, made #pwm-cells required, and
> updated the description and compatible list to cover both the AX3000
> and AX3005 SoCs.
> - Added axiado,ax3005-pwm to the driver's OF device match table.
> - Link to v1: https://lore.kernel.org/r/20260618-axiado-ax3000-pwm-v1-0-c9797a909414@axiado.com
>
> To: Petar Stepanovic <pstepanovic@axiado.com>
> To: Akhila Kavi <akavi@axiado.com>
> To: Prasad Bolisetty <pbolisetty@axiado.com>
> To: Uwe Kleine-König <ukleinek@kernel.org>
> To: Rob Herring <robh@kernel.org>
> To: Krzysztof Kozlowski <krzk+dt@kernel.org>
> To: Conor Dooley <conor+dt@kernel.org>
> To: Harshit Shah <hshah@axiado.com>
> Cc: linux-pwm@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
>
> ---
> Petar Stepanovic (2):
> dt-bindings: pwm: add Axiado AX3000 PWM
> pwm: add Axiado AX3000 PWM driver
>
> .../devicetree/bindings/pwm/axiado,ax3000-pwm.yaml | 53 ++++
> MAINTAINERS | 9 +
> drivers/pwm/Kconfig | 11 +
> drivers/pwm/Makefile | 1 +
> drivers/pwm/pwm-axiado.c | 282 +++++++++++++++++++++
> 5 files changed, 356 insertions(+)
> ---
> base-commit: 368d34807e6d04bb2089918383b58abf40e720a0
> change-id: 20260518-axiado-ax3000-pwm-cd7c346849f1
>
> Best regards,
> --
> Petar Stepanovic <pstepanovic@axiado.com>
Hi,
Just following up on this patch series, as it has been over three weeks since v6 was submitted.
The latest revision addresses the feedback received on previous versions, and the DT binding already has an Acked-by.
Are there any remaining concerns or changes needed, or is the series ready to be picked up?
Thanks for your time.
Best regards,
Petar
prev parent reply other threads:[~2026-10-30 8:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-05 7:46 Petar Stepanovic
2026-10-05 7:46 ` [PATCH v6 1/2] dt-bindings: pwm: add Axiado AX3000 PWM Petar Stepanovic
2026-10-05 7:46 ` [PATCH v6 2/2] pwm: add Axiado AX3000 PWM driver Petar Stepanovic
2026-10-30 8:21 ` Petar Stepanovic [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=0979887c-0924-4bc7-a9d0-cbd2b95bf459@axiado.com \
--to=pstepanovic@axiado.com \
--cc=akavi@axiado.com \
--cc=conor+dt@kernel.org \
--cc=conor.dooley@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=hshah@axiado.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=openbmc@lists.ozlabs.org \
--cc=pbolisetty@axiado.com \
--cc=robh@kernel.org \
--cc=ukleinek@kernel.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
all inboxes | Powered by JetHome®