{"id":2221973,"url":"http://patchwork.ozlabs.org/api/covers/2221973/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pwm/cover/cover.1775829499.git.andrea.porta@suse.com/","project":{"id":38,"url":"http://patchwork.ozlabs.org/api/projects/38/?format=json","name":"Linux PWM development","link_name":"linux-pwm","list_id":"linux-pwm.vger.kernel.org","list_email":"linux-pwm@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<cover.1775829499.git.andrea.porta@suse.com>","list_archive_url":null,"date":"2026-04-10T14:09:56","name":"[v2,0/3] Add RP1 PWM controller support","submitter":{"id":88172,"url":"http://patchwork.ozlabs.org/api/people/88172/?format=json","name":"Andrea della Porta","email":"andrea.porta@suse.com"},"mbox":"http://patchwork.ozlabs.org/project/linux-pwm/cover/cover.1775829499.git.andrea.porta@suse.com/mbox/","series":[{"id":499466,"url":"http://patchwork.ozlabs.org/api/series/499466/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pwm/list/?series=499466","date":"2026-04-10T14:09:56","name":"Add RP1 PWM controller support","version":2,"mbox":"http://patchwork.ozlabs.org/series/499466/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2221973/comments/","headers":{"Return-Path":"\n <linux-pwm+bounces-8546-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pwm@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256\n header.s=google header.b=dfpZ2L9s;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c09:e001:a7::12fc:5321; helo=sto.lore.kernel.org;\n envelope-from=linux-pwm+bounces-8546-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com\n header.b=\"dfpZ2L9s\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.128.53","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=suse.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=suse.com"],"Received":["from sto.lore.kernel.org (sto.lore.kernel.org\n [IPv6:2600:3c09:e001:a7::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fsdsW2kTQz1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 00:07:10 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id AF593301E01C\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 14:07:06 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 1F2393CBE6E;\n\tFri, 10 Apr 2026 14:07:04 +0000 (UTC)","from mail-wm1-f53.google.com (mail-wm1-f53.google.com\n [209.85.128.53])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 77A161E7C12\n\tfor <linux-pwm@vger.kernel.org>; Fri, 10 Apr 2026 14:07:02 +0000 (UTC)","by mail-wm1-f53.google.com with SMTP id\n 5b1f17b1804b1-488ab2db91aso30830045e9.3\n        for <linux-pwm@vger.kernel.org>; Fri, 10 Apr 2026 07:07:02 -0700 (PDT)","from localhost (93-41-3-120.ip79.fastwebnet.it. [93.41.3.120])\n        by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43d63e46713sm8549422f8f.21.2026.04.10.07.06.59\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Fri, 10 Apr 2026 07:07:00 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775830024; cv=none;\n b=mG24INBI3cYJotFEt6encFL99PDpYdQy0/HfjwlWVbcltNmYj2kDVWewLj1RKH0TMneiQTBS5/BWMHHcVoQZJoYbVEfAKhi37ZXL0OcBtfQa34tRRl28qSwsWFa/aUfciKARlAYDTUQIvdgaRY48E5I6nZEmDK0a7vK56L/TvEQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775830024; c=relaxed/simple;\n\tbh=FvZG1pUZPT0gg2fu1jQuMRQEO44rTILWevO0vYX6yYs=;\n\th=From:To:Subject:Date:Message-ID:MIME-Version;\n b=FOP/CQc14roT59RqbD1vLQoxJaINHPht1X1wXKZGCmJPsUeB2YJ6hCAKPGwu2ycd8Ag3eN1nqUU/7k5KOoIIoexJuMbBoy2iiFFQaz3B8+f8Z29T3OMGEUdLekC0Svhttx3fQEK17sLUtKGXia9mnm5kfJofBalQsAFuZtDLebY=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=suse.com;\n spf=pass smtp.mailfrom=suse.com;\n dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com\n header.b=dfpZ2L9s; arc=none smtp.client-ip=209.85.128.53","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=suse.com; s=google; t=1775830021; x=1776434821;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:to\n         :from:from:to:cc:subject:date:message-id:reply-to;\n        bh=JW107L/IStc303NYPPlArrLCZGog0RXg1/LldkbGac4=;\n        b=dfpZ2L9samQyLf/3c1FEFXMm0gQXGfclu8X6X7kDsbQX088y8e2qkcuOA64WsSiZjb\n         sCIj1ATYs03hajMnMXlhahsuE3mOa5PPi1y2j1vQrobYIgbynIlahohAQswLOyg3WSlQ\n         jBTle9e5tHQczQnqpdgR3tS4GEKHybGqXfo08BdB4BGWfCnbqRbYzS2r0xKRtezrBrme\n         A6/yfpCDl5oKkkfsrSRmWVGSTckXGcsFZ56SdLJ+jljuFJftwhYRAro4XhZr9cP50lKk\n         xNxWYhwOV1/sohKsPDbwy3BrvM3gQztNnbq9EdeYA//Pxdjux6UZJRqGKU+RGxfXBNsF\n         4vwg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775830021; x=1776434821;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:to\n         :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=JW107L/IStc303NYPPlArrLCZGog0RXg1/LldkbGac4=;\n        b=BWjDqy911rirIYzwuVz6MUcq3CX02XiB9eujUv/euI9PbW3ufDS9kDBmGIixWIt+pQ\n         JkXuPTV+Ib2zAFuRBwraeiuIxuN5Pl6Wf5S24N+kwgdZp7P3e7F4MK7nML9giD7ZHJA6\n         QNOSbLuJEpicbC9V+3rmckO0NDTgotAhtCJLBpUwhRmM6fJlVfNgtDWCX5faBd3T5eU1\n         3PHK7VT7SLwHFqR40JXil3CTigzJ0cMerzFKwPHblnRJqG1HBvR5clVwnYhoCjNyvchk\n         s4v1hjT7DHz3XNtHoC05/ni4sDyfQbbm9UNHh+s5EJaPZy8WH0G4eGkzizjn7+m0SQIa\n         J6+g==","X-Forwarded-Encrypted":"i=1;\n AJvYcCXsGFJr7faknmVNdpdR9gJF0Bc3ViWu3t/qp8gW4V6sRhhpRX8RrkNPpGV7FMpA7jFpWPyKwwbBWFo=@vger.kernel.org","X-Gm-Message-State":"AOJu0YyExVE2TLoNfOWi/0BCmTxUFP/GopnTAvxclXSdU42wfqZCVyEV\n\thPIPhHH49SH9ysMYpCwuvS5q+WiiYZvGPRvUtDeS3WTNpPjFjMAGhf+fEKXgwbfMyyY=","X-Gm-Gg":"AeBDiesis0/rIpA5AItUMriTZBkS7LBERSeZZJ5VqWxtA5VgLsrQlHujvC/HAnx98lP\n\tlvSSUW08jwRX72Y1wqjufpMAi1bMYuj+e760i/bZ+KMBcnEfONg1sQxScuWJs6p9k2hmaQdE7W1\n\tA7I+Pd2OHc/FZY+bz5CWYIzrFTbqgpxphmU8dF+vX6ejKqRJnBZHnRh9CYsFjSPgmCcWF8XELC/\n\ttivu7DNMZMIMqkpwIw8ZXwocR20gSDNkyZ92GuneWmN1esee1wfzAKfwy7w/iDYGM8RVn9lX2Ev\n\tYzTrmIMd8q2cdzx+GP/fOBluqdQKCJFs6hOisSi87S8as+9tWLSlZ2+m9FHFuMNUQmpyf140njq\n\tr4SzXPnNM/+mBk/VXXlGb3NP5uEnh83nC0g/2b+dE8JbMyEs7tG72sdZT1P4cnsG7+h1n++WVDZ\n\tYYNj3x81ocCd9ZJUPPuGXTQE3uoyDAx5gHULGuXvzfUS+TStDcjg==","X-Received":"by 2002:a05:600d:1:b0:488:a2ac:a334 with SMTP id\n 5b1f17b1804b1-488d67c720emr38283325e9.3.1775830020792;\n        Fri, 10 Apr 2026 07:07:00 -0700 (PDT)","From":"Andrea della Porta <andrea.porta@suse.com>","To":"=?utf-8?q?Uwe_Kleine-K=C3=B6nig?= <ukleinek@kernel.org>,\n linux-pwm@vger.kernel.org, Rob Herring <robh@kernel.org>,\n Krzysztof Kozlowski <krzk+dt@kernel.org>, Conor Dooley <conor+dt@kernel.org>,\n Florian Fainelli <florian.fainelli@broadcom.com>,\n Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,\n Andrea della Porta <andrea.porta@suse.com>, devicetree@vger.kernel.org,\n linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org,\n linux-kernel@vger.kernel.org, Naushir Patuck <naush@raspberrypi.com>,\n Stanimir Varbanov <svarbanov@suse.de>, mbrugger@suse.com","Subject":"[PATCH v2 0/3] Add RP1 PWM controller support","Date":"Fri, 10 Apr 2026 16:09:56 +0200","Message-ID":"<cover.1775829499.git.andrea.porta@suse.com>","X-Mailer":"git-send-email 2.51.0","Precedence":"bulk","X-Mailing-List":"linux-pwm@vger.kernel.org","List-Id":"<linux-pwm.vger.kernel.org>","List-Subscribe":"<mailto:linux-pwm+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pwm+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit"},"content":"This patchset adds support for the PWM controller found on the\nRaspberry Pi RP1 southbridge. This is necessary to operate the\ncooling fan connected to one of the PWM channels.\n\nThe tachometer pin for the fan speed is managed by the firmware \nrunning on the RP1's M-core. It uses the PHASE2 register\nto report the RPM, which is then exported by this driver via\nsyscon registers. A subsequent patch will add a new device\nand driver to read the RPM and export this value via hwmon.\n \nSubsequent patches will also add the CPU thermal zone, which\nacts as a consumer of the PWM device.\n\nBest regards,\nAndrea\n\nCHANGES in V2:\n\n- bindings: added syscon to the description\n- bindings: changed additionalProperties to unevaluatedProperties\n- dts: reordered pwm node to follow the unit address ordering\n- Kconfig/Makefile: renamed config option to PWM_RASPBERRYPI_RP1\n- Kconfig: added dependency for syscon/regmap\n- driver: added 'Limitations' and 'Datasheet' paragraphs in top comment\n- driver: all macros are now prefixed by RP1_PWM_\n- driver: implemented waveform callbacks instead of legacy ones\n- driver: dropped hwmon device registration for fan speed (this will be\n  handled in a separate patch with its own driver reading the value via\n  syscon)\n- driver: added new regmap/syscon to export the registers.\n- driver: added a comment in rp1_pwm_apply_config() to describe what it does\n- driver: added a comment to rp1_pwm_request() to define the purpose of the\n  last write\n- driver: new clk_enabled flag to deal with the clock on suspend/resume path\n- driver: clk_rate is now obtained during probe right after exclusive_get()\n- driver/Kconfig: module is now static only and has suppress_bind_attr to\n  avoid racing with syscon consumer drivers and with syscon unload issue\n\nNaushir Patuck (2):\n  dt-bindings: pwm: Add Raspberry Pi RP1 PWM controller\n  pwm: rp1: Add RP1 PWM controller driver\n\nStanimir Varbanov (1):\n  arm64: dts: broadcom: rpi-5: Add RP1 PWM node\n\n .../bindings/pwm/raspberrypi,rp1-pwm.yaml     |  54 +++\n .../boot/dts/broadcom/bcm2712-rpi-5-b.dts     |  12 +\n arch/arm64/boot/dts/broadcom/rp1-common.dtsi  |  10 +\n drivers/pwm/Kconfig                           |   9 +\n drivers/pwm/Makefile                          |   1 +\n drivers/pwm/pwm-rp1.c                         | 344 ++++++++++++++++++\n 6 files changed, 430 insertions(+)\n create mode 100644 Documentation/devicetree/bindings/pwm/raspberrypi,rp1-pwm.yaml\n create mode 100644 drivers/pwm/pwm-rp1.c"}