* Re: [PATCH v3 0/3] Add RP1 PWM controller support
[not found] <cover.1776932336.git.andrea.porta@suse.com>
@ 2026-05-08 8:15 ` Andrea della Porta
0 siblings, 0 replies; only message in thread
From: Andrea della Porta @ 2026-05-08 8:15 UTC (permalink / raw)
To: Andrea della Porta
Cc: Uwe Kleine-König, linux-pwm, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Broadcom internal kernel review list, devicetree,
linux-rpi-kernel, linux-arm-kernel, linux-kernel, Naushir Patuck,
Stanimir Varbanov, mbrugger
Hi Uwe,
On 10:30 Thu 23 Apr , Andrea della Porta wrote:
> This patchset adds support for the PWM controller found on the
> Raspberry Pi RP1 southbridge. This is necessary to operate the
> cooling fan connected to one of the PWM channels.
>
> The tachometer pin for the fan speed is managed by the firmware
> running on the RP1's M-core. It uses the PHASE2 register
> to report the RPM, which is then exported by this driver via
> syscon registers. A subsequent patch will add a new device
> and driver to read the RPM and export this value via hwmon.
>
> Subsequent patches will also add the CPU thermal zone, which
> acts as a consumer of the PWM device.
>
> Best regards,
> Andrea
>
> CHANGES in V3:
>
> - Refactored all the register macros. They now have RP1_PWM_ prefix
> and follow the register name.
> - Dropped the tab alignment in front of struct declarations (use a space
> instead).
> - Added a check in tohw() to test (and bail out quickly) in case that
> period_length_ns is zero.
> - Probing now returns an error if clk_rate > 1 GHz.
> - Added a check on minimum period ticks. Return 1 to signal round-up.
> - Fixed inverted polarity detection on edge cases.
> - Fixed rounding errors (in both tohwi() and fromhw()) in inverted
> polarity calculations.
> - Dropped a redundant check on period >= duty.
> - Replaced memset by inline struct init.
> - Disabling a channel now is faster, skipping the duty/period/polarity
> setup.
> - Fixed an error string (s/Fail/Failed)
> - Used %pe to signal error string instead of an integer.
> - Added several new sections to the Limitations paragraph to better
> explain what will happen on edge cases.
> - Maximum period is now U32_MAX-1 to allow 100% duty cycle on all
> selectable periods.
> - The hw period register now takes into account for the extra tick at
> the end of the period (subtracted one to wfhw->period_ticks in tohw
> and added 1 in fromhw).
> - Added .remove() callback to free resources even if the driver is
> not unbindable/unloadable, to avoid accumulating tech debt.
>
>
> Naushir Patuck (2):
> dt-bindings: pwm: Add Raspberry Pi RP1 PWM controller
> pwm: rp1: Add RP1 PWM controller driver
>
> Stanimir Varbanov (1):
> arm64: dts: broadcom: rpi-5: Add RP1 PWM node
>
> .../bindings/pwm/raspberrypi,rp1-pwm.yaml | 54 +++
> .../boot/dts/broadcom/bcm2712-rpi-5-b.dts | 12 +
> arch/arm64/boot/dts/broadcom/rp1-common.dtsi | 10 +
> drivers/pwm/Kconfig | 9 +
> drivers/pwm/Makefile | 1 +
> drivers/pwm/pwm-rp1.c | 414 ++++++++++++++++++
> 6 files changed, 500 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/pwm/raspberrypi,rp1-pwm.yaml
> create mode 100644 drivers/pwm/pwm-rp1.c
>
> --
> 2.35.3
>
A gentle reminder about this patchset :)
Many thanks,
Andrea
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-05-08 8:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1776932336.git.andrea.porta@suse.com>
2026-05-08 8:15 ` [PATCH v3 0/3] Add RP1 PWM controller support Andrea della Porta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox