The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* 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