Show a cover letter.

GET /api/covers/2227082/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2227082,
    "url": "http://patchwork.ozlabs.org/api/covers/2227082/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pwm/cover/cover.1776932336.git.andrea.porta@suse.com/",
    "project": {
        "id": 38,
        "url": "http://patchwork.ozlabs.org/api/projects/38/?format=api",
        "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.1776932336.git.andrea.porta@suse.com>",
    "list_archive_url": null,
    "date": "2026-04-23T08:30:18",
    "name": "[v3,0/3] Add RP1 PWM controller support",
    "submitter": {
        "id": 88172,
        "url": "http://patchwork.ozlabs.org/api/people/88172/?format=api",
        "name": "Andrea della Porta",
        "email": "andrea.porta@suse.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-pwm/cover/cover.1776932336.git.andrea.porta@suse.com/mbox/",
    "series": [
        {
            "id": 501159,
            "url": "http://patchwork.ozlabs.org/api/series/501159/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pwm/list/?series=501159",
            "date": "2026-04-23T08:30:20",
            "name": "Add RP1 PWM controller support",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/501159/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2227082/comments/",
    "headers": {
        "Return-Path": "\n <linux-pwm+bounces-8672-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=ESfXel+i;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-pwm+bounces-8672-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=\"ESfXel+i\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.221.43",
            "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 sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\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 4g1TmJ14Mrz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 18:29:52 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 62CCF3032CC3\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 08:27:32 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 17F2E3C4551;\n\tThu, 23 Apr 2026 08:27:32 +0000 (UTC)",
            "from mail-wr1-f43.google.com (mail-wr1-f43.google.com\n [209.85.221.43])\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 D93DA3914ED\n\tfor <linux-pwm@vger.kernel.org>; Thu, 23 Apr 2026 08:27:28 +0000 (UTC)",
            "by mail-wr1-f43.google.com with SMTP id\n ffacd0b85a97d-43cf8d550bdso5580379f8f.0\n        for <linux-pwm@vger.kernel.org>; Thu, 23 Apr 2026 01:27:28 -0700 (PDT)",
            "from localhost (host-79-33-140-232.retail.telecomitalia.it.\n [79.33.140.232])\n        by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43fe4cb1176sm52641843f8f.3.2026.04.23.01.27.25\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Thu, 23 Apr 2026 01:27:26 -0700 (PDT)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776932852; cv=none;\n b=VDLtyUIGq85yqo9ZhtyOS9BW/oKDdC3iH7QI7o9UrMBfNHT5BBSgLFi5baGa/Cus1ayBuZZZVD8zI46tl8CpZKgjSJnqSsbHdK/ukjBX6RAfc3qkXZwhIL+2V4GQVvVXlWXWB97CrA+z3pvDCERUkIE0V+2B9IavjBKD2Tni9CI=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776932852; c=relaxed/simple;\n\tbh=Sw7pGrtm03rFb4w9v39tqqiV52NCp2AS9QRYBO9QZEI=;\n\th=From:To:Subject:Date:Message-ID:MIME-Version;\n b=cMeHAOZkxp7vDXCWn25r8LAyVXEV/wKfhk3EMFBRgv/mwBmuAlZse92SwpfsOa6fwsn6osVUBfNZ0op4tI2tPlG7/Ikanjlj/FPSvQr/AXxMeQrMvf183ido3GUXSgIvwlfalQ1EFGWuYWgBVNDKTN8E3/8T6LXMylRMlXm/YDI=",
        "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=ESfXel+i; arc=none smtp.client-ip=209.85.221.43",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=suse.com; s=google; t=1776932847; x=1777537647;\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=gZ9c/QPUCIYiqT/6G4zjKY9VFibIqgyzyOicvyBMlCE=;\n        b=ESfXel+iXEhRu8or/8B/CHlG2qgtSM62kF7DGBx3hjExRqRl+WrXFfdZlPjzsaorKC\n         JBfinXWjSlvnQGE2p7cC/YHkGoh7F08x1AwSkOq+hwRdkomRygM5qyp/H6m3Phcviyd4\n         px0HMJKigULib8w7RAO+A/zgSylw7rPBM+Y5E+hnEAuYWU/xdVjkA1Dy6MacGQTdlIHL\n         mj3B3wsrlu5gHf+puzWtwVioG7XmZ6KsWbLvwkQ33yCyionpR2ExWm/HDoCDgow81nDb\n         VdxzRl7SscSMFVLHI+Wb5MbhCMiw5H7IISwH6elm6rbkvUQ0lm3Qg66amYNTeJ0ubPHz\n         vyNg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1776932847; x=1777537647;\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=gZ9c/QPUCIYiqT/6G4zjKY9VFibIqgyzyOicvyBMlCE=;\n        b=DNEHuNcwDaKA5vpJ2eef8gNHKY+q94Pzh4Do9KjS5uGKHg0IkaYz13VBzicPDLVMgL\n         ayJWOhrG1u6pQj5gPH2f0NYtPyEBcxEgcYyudq/eW6SZdXMPj0uT20mNjoAlgaB78nGn\n         ifquJg++1Z1IdgLCuy3LeyzTmytYceF4QsBAULg8uYtGKXmnAdjeZoqgWIiysy3c3WxC\n         IOds3QjTP7AlyxrxWQX51U7bO5C5eUK9Jhzkt/R6XBny6Db7n5uLPG63NmVOdHTShs7k\n         kPNz2IHNHLZwzGpYGm5FdZ4l7RN8r0oNvY1UVhT7XR/iWymoFgFcC0fcUT2Sr58AtEVu\n         1A6Q==",
        "X-Forwarded-Encrypted": "i=1;\n AFNElJ+FQy5g7NwVYE8ZdFyr/Lg4xgykj3qS6knGoDn5tKojJar5RYjstMFpW8px0Ts0dr+BnG/WqwGyzqY=@vger.kernel.org",
        "X-Gm-Message-State": "AOJu0Yw+Xrw63+eLjrakPpOeUnUJSNJ377oOihiUe4HXITjTJiA9kUFI\n\tOR0fnEcsTxrL4okrxcj4VgfCandOv3Y3tJwgwbP3L1+kxe9uAtwbbHSbJzMF1xlxCFU=",
        "X-Gm-Gg": "AeBDietoisQYS9O953lD7YwLSasBqpDtxSSaTNFEP/SiQOJk/9FuGWK+w373jODg5fi\n\t7xu3QWyAck1GuPi6dIMyYjGshSQHA6ahcDHP0eYbril4n8e8NI3XiaRotckUnNpE9tQAAkADMVK\n\tXztkLrLFVv8PHnuNkT/4v9Qkjbq2jBxrZqE19KFI3YhW6WodnYvdxIWJDZetqH316Uz3Ty/dV21\n\tZxKy0bKlNaxoHEKeaetiAQ7ckxgpliAZQWXksAy5+rFTbxp9bR6AEkxQgLvyfbpb03Aps37a/O4\n\t/z70o6VpOGDoDTprrPJEdQCkguMDK54RY1IjEkiGNvW6p1GqormfyFQBih6GB3fesaBI9ygG5Vf\n\tYQKKodIURlNpxyU7qMg7JbMsrpnrQ4muASMqx4KuHsgO3BhRdJPlQkZA8FV0UgYye8oEcfVuL2x\n\twNNXLf3GLzdt/UC2V1IyphoENUrCpntawjebMI/jXaS8gMOkGV8xekvgvLY1zha8S/G7QkG5T3T\n\tKAubCF/T1S06xJqpg==",
        "X-Received": "by 2002:a05:6000:4313:b0:441:2ba8:79f with SMTP id\n ffacd0b85a97d-4412ba807bamr4088356f8f.37.1776932846520;\n        Thu, 23 Apr 2026 01:27:26 -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 v3 0/3] Add RP1 PWM controller support",
        "Date": "Thu, 23 Apr 2026 10:30:18 +0200",
        "Message-ID": "<cover.1776932336.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 V3:\n\n- Refactored all the register macros. They now have RP1_PWM_ prefix\n  and follow the register name.\n- Dropped the tab alignment in front of struct declarations (use a space\n  instead).\n- Added a check in tohw() to test (and bail out quickly) in case that\n  period_length_ns is zero.\n- Probing now returns an error if clk_rate > 1 GHz.\n- Added a check on minimum period ticks. Return 1 to signal round-up.\n- Fixed inverted polarity detection on edge cases.\n- Fixed rounding errors (in both tohwi() and fromhw()) in inverted\n  polarity calculations.\n- Dropped a redundant check on period >= duty.\n- Replaced memset by inline struct init.\n- Disabling a channel now is faster, skipping the duty/period/polarity\n  setup.\n- Fixed an error string (s/Fail/Failed)\n- Used %pe to signal error string instead of an integer.\n- Added several new sections to the Limitations paragraph to better\n  explain what will happen on edge cases.\n- Maximum period is now U32_MAX-1 to allow 100% duty cycle on all\n  selectable periods.\n- The hw period register now takes into account for the extra tick at\n  the end of the period (subtracted one to wfhw->period_ticks in tohw\n  and added 1 in fromhw).\n- Added .remove() callback to free resources even if the driver is\n  not unbindable/unloadable, to avoid accumulating tech debt.\n\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                         | 414 ++++++++++++++++++\n 6 files changed, 500 insertions(+)\n create mode 100644 Documentation/devicetree/bindings/pwm/raspberrypi,rp1-pwm.yaml\n create mode 100644 drivers/pwm/pwm-rp1.c"
}