From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5B8437755C for ; Fri, 8 May 2026 08:12:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778227951; cv=none; b=uMTwKhFY98n6h33765Jt2mfl28FAPUaHCTSWV8X8RqLaXDAoAEYjVV1KPl9En7mhel7b2W3yIvIH86tXj0zJS7PZSHYP8QgtIToqK1EzOnr44tRZGJiZqM+ClvqjBCyBA2ery9uB6CqaK2g2ybRaeBr99I0Kzz2wr8Ovrckg0DY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778227951; c=relaxed/simple; bh=WVoh3zrIDDVVwO6/Qpr7kFi5is8aeakhIkv9KUqg1ew=; h=From:Date:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=te1X3XQ1B33hwJae7s5LpHxinJH+VVmIwosorP8RzX1T7VaBWi/cyxkm9rEBLKbNFJwuVsg7SrWLsMNK+pLEfemLSRTG5AKOKcAOYQt8507sE8Gy948oLNF3esZ7vfcoNkltVmewJEnAX+GtOxtwxNOr4BvWJs6d52sKvn8ti8g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=IZwdxPBq; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="IZwdxPBq" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-488b0e1b870so26628345e9.2 for ; Fri, 08 May 2026 01:12:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1778227948; x=1778832748; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=lCCOIzOkC3aMYU18+NM+L3w+mXvUjU56+VWPG5affHY=; b=IZwdxPBq6DNiwz/7VXhsRRa7ptDQp/OhtWd8hlbTiIPzJBnzflTkV9WfwdHmVbL2/4 eNMPLXDED/E+6BP2jB2WA8lUqNzdzMelTYWFwIUG0Xalp8OEB3aeMpwxQai8Uh3KcYyr xkXjtO9regZRISoDpl6LXlVLwNDJMFobkvClaU/Di5505goLTvB8eezQP1sRXvg2aYFu NvpJCm+HTGQPyRFAwL/acgZo5Ce+EKrtYhB4Dz0PL9hgfy+lR0XI5pd054ER8Zjd9QvW YJim5UJ3CgN/IjVOI8gLmwCkvUvtxUf/avTCo5/8XGSzf5ak8hyT2TL19OBiwFYNpNJl chXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778227948; x=1778832748; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lCCOIzOkC3aMYU18+NM+L3w+mXvUjU56+VWPG5affHY=; b=UWeNZi1UPga8rFKhhxW0kIJr8LsiGNwx9XfqDRNOBjpNi40VDIDBY+V2E4sUruhkpV 1SJ1TeQZMM4nt5JA/vM83tVuHnXpk7CdPvDjV7L1aO7YJmvyRt1ZeExez6m3UvoIcUTZ 6pPxZ+YWymJB95Yqf7rCTsssrOYm9F+dagbUxgHOs2FHI3ZQ3LV5K2uPWMizW6fUgaEa 2oLSWS3p88o4z/3KcNVS+xMxML6J0DljJ97MM3TLrCNHRBGD19iMOdIg51TuaryquUPs pO4l+C2M9KAQDoqP9/EQ0WvTcMs4dvIBkFNwMkw3nShQjZzJs5uUv3N5i1Jq6ri3lpAg /Qbw== X-Forwarded-Encrypted: i=1; AFNElJ9YL+lM1yljTs4yp43mzoxkLomXxzOHFjrlndrvrtPDViJscx1wL1nNnZN4BWea6oDfQht3RXaXKJEHLqg=@vger.kernel.org X-Gm-Message-State: AOJu0YzXFrfsYDlWSJ8Gt8dHD3N740z0YYiLmunxIN5Wrhw8HRCK9fRq grHPyMiCn5hWSN7FEJxTL9cjJ7vX7KE+b+d39+V0U2pyBOWqN3X/uJhUDtWMs31Z8lM= X-Gm-Gg: AeBDiesG45k6jeptky92e8vstqdKH+4sLDDoDyRdhIpfIijWZWquP4ms3YsXP/eJYoq w27hAkM3yedtlymsMEc7rqd/4eSv86z3TraHh7lQyrNWOZMuMyl4hlYvd5qXegkEdjiGNZGWCF/ u+nX/+3apX+QrZ46j7CctuhXuHyAj2lg59pjPxgE7MH2udYINsqV8LrRTeT74qPeEuGkoOOkT/J qC2/t40192KQxMZ3WbcWbZ7rEQ0oJl7tf9RjsZzsDqPXL1aK/eZC1HZCK7mUzVwpD2tuzxOpG3D O30fDHiSZQiDlLLDYfttAQidGQXdqPJrqda+UwjJCDAAFe+bT3ExZPgxv4HG/lWtMRBoZepaMdE jRVyLGNiCsyRUf8gxc19mf9K8V4MWyEWNs3NcB+hEDcVMCY93MH/UuO1uo0xIK05sbrXLTbWNTA ILkLeOIHGZ6YHEUIT40Rpr X-Received: by 2002:a05:600d:849c:20b0:488:a2ac:a34c with SMTP id 5b1f17b1804b1-48e51f220e7mr136524945e9.12.1778227947995; Fri, 08 May 2026 01:12:27 -0700 (PDT) Received: from localhost ([195.94.150.46]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48e68eaf237sm26988245e9.6.2026.05.08.01.12.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 May 2026 01:12:27 -0700 (PDT) From: Andrea della Porta X-Google-Original-From: Andrea della Porta Date: Fri, 8 May 2026 10:15:44 +0200 To: Andrea della Porta Cc: Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= , linux-pwm@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Broadcom internal kernel review list , devicetree@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Naushir Patuck , Stanimir Varbanov , mbrugger@suse.com Subject: Re: [PATCH v3 0/3] Add RP1 PWM controller support Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: 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