Re: [PATCH v5 3/6] pwm: Add rockchip PWMv4 driver
From: Damon Ding
Date: Sun Apr 26 2026 - 21:26:01 EST
Hi Uwe,
On 4/26/2026 9:06 PM, Uwe Kleine-König wrote:
Hello,
first of all thanks for your extensive testing, very appreciated.
On Sun, Apr 26, 2026 at 05:44:46PM +0800, Damon Ding wrote:
On 4/20/2026 9:52 PM, Nicolas Frattaroli wrote:
The Rockchip RK3576 brings with it a new PWM IP, in downstream codeTested-by: Damon Ding <damon.ding@xxxxxxxxxxxxxx>
referred to as "v4". This new IP is different enough from the previous
Rockchip IP that I felt it necessary to add a new driver for it, instead
of shoehorning it in the old one.
Add this new driver, based on the PWM core's waveform APIs. Its platform
device is registered by the parent mfpwm driver, from which it also
receives a little platform data struct, so that mfpwm can guarantee that
all the platform device drivers spread across different subsystems for
this specific hardware IP do not interfere with each other.
Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@xxxxxxxxxxxxx>
The continuous mode of all PWM channels has been preliminarily tested
and verified working on the RK3576 IoT board.
I have tested with several typical period and duty cycle configurations.
Following Uwe's suggestion [0], I also tested with libpwm using commands
similar to the following:
./pwmset -c 0 -p 0 -P 1000000 -D 500000 -s 5000
This one is good if you have an oscilloscope (or something similar) to
verify the output. Without that (or additionally) pwmtestperf creates a
series of requests that in combination with PWM_DEBUG should uncover
rounding errors in the .tohw and .fromhw callbacks.
Aha, this is my oversight. I did not elaborate on my verification methods. ;-)
I have adopted three ways to complete the test:
1. Measure the output waveform of each channel with a simple logic analyzer, Kinst LA2016.
2. Read relevant registers to verify that the configured period and duty values match expectations.
3. Connect the PWM continuous output pins to capture input pins directly, to confirm the capture measurement results.
A good set of calls then is:
pwmtestperf -p ... -c ... -P 50000 -S1
pwmtestperf -p ... -c ... -P 50000 -S1 -I
pwmtestperf -p ... -c ... -P 50000 -S-1
pwmtestperf -p ... -c ... -P 50000 -S-1 -I
(Assuming that 50000 is a sensible period for the device under test.)
Okay, I will look into this tool and run these commands to conduct more in-depth verification.
And yes, I know, I need to document that using something more permanent
than a mailing list post.
Best regards,
Damon