get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2215784/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2215784,
    "url": "http://patchwork.ozlabs.org/api/patches/2215784/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-tegra/patch/20260325-t264-pwm-v2-5-998d885984b3@nvidia.com/",
    "project": {
        "id": 21,
        "url": "http://patchwork.ozlabs.org/api/projects/21/?format=api",
        "name": "Linux Tegra Development",
        "link_name": "linux-tegra",
        "list_id": "linux-tegra.vger.kernel.org",
        "list_email": "linux-tegra@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260325-t264-pwm-v2-5-998d885984b3@nvidia.com>",
    "list_archive_url": null,
    "date": "2026-03-25T10:17:03",
    "name": "[v2,5/7] pwm: tegra: Parametrize duty and scale field widths",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "59207791330660d6302f445b2883b780407bacb6",
    "submitter": {
        "id": 26499,
        "url": "http://patchwork.ozlabs.org/api/people/26499/?format=api",
        "name": "Mikko Perttunen",
        "email": "mperttunen@nvidia.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linux-tegra/patch/20260325-t264-pwm-v2-5-998d885984b3@nvidia.com/mbox/",
    "series": [
        {
            "id": 497411,
            "url": "http://patchwork.ozlabs.org/api/series/497411/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-tegra/list/?series=497411",
            "date": "2026-03-25T10:16:58",
            "name": "Tegra264 PWM support",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/497411/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2215784/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2215784/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linux-tegra+bounces-13203-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-tegra@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=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=PY0l9WUt;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13203-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"PY0l9WUt\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.93.198.0",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com",
            "smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;"
        ],
        "Received": [
            "from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgjh65jCqz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 21:24:38 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 458E7301DEF1\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 10:18:13 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id A651A3AF647;\n\tWed, 25 Mar 2026 10:18:12 +0000 (UTC)",
            "from CY7PR03CU001.outbound.protection.outlook.com\n (mail-westcentralusazon11010000.outbound.protection.outlook.com\n [40.93.198.0])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 12A95396587;\n\tWed, 25 Mar 2026 10:18:07 +0000 (UTC)",
            "from SJ2PR12MB9161.namprd12.prod.outlook.com (2603:10b6:a03:566::20)\n by DS5PPFA3734E4BA.namprd12.prod.outlook.com (2603:10b6:f:fc00::65c) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Wed, 25 Mar\n 2026 10:18:00 +0000",
            "from SJ2PR12MB9161.namprd12.prod.outlook.com\n ([fe80::d9d1:8c49:a703:b017]) by SJ2PR12MB9161.namprd12.prod.outlook.com\n ([fe80::d9d1:8c49:a703:b017%4]) with mapi id 15.20.9745.019; Wed, 25 Mar 2026\n 10:18:00 +0000"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774433891; cv=fail;\n b=iex1s8KZSOyvxJCxRQhRG0EjD4SkEPmj9lxuEYo6G0GXBITdBtJrUPFhEQ7nTXteAMYl/Dc+d9gfgLgz1e5J4pcxVKC0J7dJXltBAyYrcVKFGUlc/rcFGYUkbkMWw10c7Zt7SfaL84UQG/Y8+2wSKWM0b1XbD4/YRbA4Sx3OO8U=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=RC+XTvobae8ZgsOXVWE2ov83zaVmQSWZB89VBEc7ClCwIuhOnFZX2QTupjE0h2VelzUr1f2UxAvw3cvlTtnyGF4CxudvWLKdogL9ZORU7UjuVihuPklOfLncMDLSUme5g9wiqUFOA88Po/snfdRTp8YCztZEapuPk+asCz8HJVWuRQlZH3sPfvY1ge5IQv9SfdmDXXCy8DJGYYxcx9ScBeiDXdig9tGzh9azLL4VWFWFekJldpJv0jOwBDdD8hpl2s4ziHArKW+rdStM24lK/l1mbH0og+ByBEk+yU/Qi+qRz3s9lutqkA78pQ9aAa1NhtccHP1GOBTymlj+QPKo+A=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774433891; c=relaxed/simple;\n\tbh=CvEDDxhl1fQITOzJwP9B3ngqq6SfzMFb3/Q7UMCe+fA=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=uVqXNlAPPRy1qIXu5oqtVGeEAPgWYYVHJDTE7o36z2TwLMkGpiGx81sousQGmTT7f40q7ght36CWkyjYaf4RQJRmPsf1sQ+k1emYHWnOh1zpx6zxo7o0/UXHlShI5JhsAy3JZm5MBwU7DydMVrqw/s8fEp3OYH/1Y6ZIvBzFHgc=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=yWTuFH2ku7rYybzhP0qo9F0sgEx2rGXM3tRrGkq4dlo=;\n b=c6PSgrcD8yV+c74YUWW1DYYQGPahwq6Zk3w2VUbblSCLfESXWnnwT1et/D47TNZtCiPx71X+VYi5ITtdnwNlRXfFHJwIpP0e1DtLxfDeJPT9X6kJSGyuUglafkGXPUqClE643f60Ddlk8dm6vUJdw2pidqnUAh1bXL5z+KtYHYjsvaeoGzljM8I7jEO2HphzRSPxWLt/0eXkhJlcOUS/msRKI+HxZSGxJZDNk/gRkWAaonuD03cAmL4/49NCJGwkPLTH70RNTUrJSnu7vgbgB6amVdFVwVwjfhvibRDLn9TS9MCtxVsN1ZYDNyF2nwRss+A9aaYxNBA+XQzI/zt+ug=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=PY0l9WUt; arc=fail smtp.client-ip=40.93.198.0",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=yWTuFH2ku7rYybzhP0qo9F0sgEx2rGXM3tRrGkq4dlo=;\n b=PY0l9WUtCUbiZRpdOS3a4dGMHhM/XBlaJEJF7rBUmYJGkrRfvgUFBGId4KAsx4fWEHRjdn4j2Zc8oIrXnsG0UZCksy/ThKT3b94HMi4wvfZ6mdHneY4t6hICBzP5g4WDgxqsrjWE/hO1aaCsRJMVpqwQ2ehew4d6oZ6JafxC/ZfFUYxSzqQ8WPXGXqWO6yLCJ4HwnJ129NDPnGOWvT8ZcTKmXe2WEuEvanYQflT0b1Zt67/QUG2BVACQ7Y1zuBcoWIjuT3ruOi+Yf56QELQrEep6V/KPVOW2P2PwE4Y+9S/A3M7IwCxIpNlH5R95q/q5BN2uIqbhLG1lu/7e3JkL/g==",
        "From": "Mikko Perttunen <mperttunen@nvidia.com>",
        "Date": "Wed, 25 Mar 2026 19:17:03 +0900",
        "Subject": "[PATCH v2 5/7] pwm: tegra: Parametrize duty and scale field widths",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "Message-Id": "<20260325-t264-pwm-v2-5-998d885984b3@nvidia.com>",
        "References": "<20260325-t264-pwm-v2-0-998d885984b3@nvidia.com>",
        "In-Reply-To": "<20260325-t264-pwm-v2-0-998d885984b3@nvidia.com>",
        "To": "Thierry Reding <thierry.reding@gmail.com>, =?utf-8?q?Uwe_Kleine-K=C3=B6n?=\n\t=?utf-8?q?ig?= <ukleinek@kernel.org>,\n  Jonathan Hunter <jonathanh@nvidia.com>, Rob Herring <robh@kernel.org>,\n  Krzysztof Kozlowski <krzk+dt@kernel.org>,\n  Conor Dooley <conor+dt@kernel.org>",
        "Cc": "linux-pwm@vger.kernel.org, linux-tegra@vger.kernel.org,\n linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,\n Yi-Wei Wang <yiweiw@nvidia.com>, Mikko Perttunen <mperttunen@nvidia.com>",
        "X-Mailer": "b4 0.14.3",
        "X-ClientProxiedBy": "TPYP295CA0031.TWNP295.PROD.OUTLOOK.COM (2603:1096:7d0:7::9)\n To SJ2PR12MB9161.namprd12.prod.outlook.com (2603:10b6:a03:566::20)",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-tegra@vger.kernel.org",
        "List-Id": "<linux-tegra.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-tegra+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-tegra+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ2PR12MB9161:EE_|DS5PPFA3734E4BA:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "08496e34-edb6-4f91-d893-08de8a57ca93",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|366016|1800799024|10070799003|376014|22082099003|56012099003|18002099003;",
        "X-Microsoft-Antispam-Message-Info": "\n\tq2J6NlcpEhpiYXDQYuKOLb4C/xMgwnZBfOZWMdpxJlSrW8MxabboZd8++HHcurPxV4EuditYU14/LTiwir2noxo1BqfPqfGztZtMFBccyRJv5cHCJY5XadMscWBhTXe2O+41Ec416TivVesUjjeW2DS2GWsX0AsuC8vzN0FU75fa4ARGbbjC9BVTjDHQsyAoRL+HtYbJkPdXjK2eoZieAkvctb6VrP//geuzxfcBn7Qo8bBCCwRoKOd1G4G+yEj/J3klV+GGuTAlmyAl6gJQP6SxLhiNxz9F9erxewgbeAmIQDB16S34C+aj58nXyiWVMx4aM4CaTZ2zRwUf6xDFpTqTfIgE2Kr4ZieGDfrEifsiNaTIUQVucoPAzPK8CXEYDHI1vsQPq1QQMwOMU89XxmF+ZWSt9FwcH7YH1nzQsv/5B7JQNGe1336sSEnvaKg7VZTqHaLW17f9KgiFyLpH/7E4gGKKO6C0f0dw5k+HlXfadwDeaWcWGfL3NbnItBuWxVkksCBF+t2RWSWbOHot8FE8oPINniZ8cQzjhddtQBmokEvrCYzzdoB68bN7H8TGaRMbQpbFjE0RO84FN5xMyEnec7yeaDmCPi0PoHAgnyNaJj5sFm6IXkgiNf3T2SinQurxwUZGi8Ayt2bN2m8+WsnxJ4uD0v2gccFeGDH6VHHkgIXv23GPnGsHJ+LnhBB5Ld/zd7BSJwFh8Kf8kr5ARXxjbtRmYzo8ro/v179rIMA=",
        "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ2PR12MB9161.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(10070799003)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "2",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?39CBb85XyT+NJLIEizY+Zd7BEJrN?=\n\t=?utf-8?q?xzMvTnPaskdpbxBNwgrzkvHQveWwXuJuSjJ61qAQKdsqgU3gQ059CSbHmt68E7Swf?=\n\t=?utf-8?q?zDyoRR/DnQmLsuwYypY4iN67DOiCHLhzq6N5fzQro1RE2gb7T7e96UZBomTIbIVq8?=\n\t=?utf-8?q?/viziu0ad9tJL55QdWUl3/7yxUG4EF0tQNioZOAWUXmge5UOhVjzbGImMVHe9vxh+?=\n\t=?utf-8?q?vbaQHy8X5Fuo0CbxGKkhQMbSRgeJiUYiWYb91iM70/7Lc00cBzUYUGUvqlf947fsN?=\n\t=?utf-8?q?It9Ihv7SKO2eE1Phc4v6ltcVmMmYlxlKHXVmXDItwfSrFqtp2syeHC3mrxhg+BL9a?=\n\t=?utf-8?q?ZXzF9/HvoJ+J59dRVzfc75FY/inrF1/Ab+XK25LRsNtawKZMpJOxDfRfu0v/mfeAQ?=\n\t=?utf-8?q?CHZVPMyaurr+t51jZRmodcAdtR0jbLM5n+7fEZ/T1DRiinmfpxMFXTL0O9dlub/0x?=\n\t=?utf-8?q?q2ZLS99ujUvNseEdBOcOqaRjesAXMagMKMkHwb4r0TI0zuXQ+nS9MK6hii4k9Dn1k?=\n\t=?utf-8?q?oR829oaZDNdi5RtsPueeYHx+IcY0blBhkqAbs2cZv7o2VX0aKyLNn/aXGhgRPz9AG?=\n\t=?utf-8?q?K1PRLZvfpZU1fBBWeR8Bhe/+YKtmyilh/clZZSygWSZQvkr32SmX+gN+izY48+y+e?=\n\t=?utf-8?q?dxQYxMO+5vV2eW+zZJu6cyDDj801ROWDGm/E+L5tohqwSeP25HAI3HUjtearsP51r?=\n\t=?utf-8?q?oxsSQzisxE0ad4yj0lQ999SNE1gBgbG8ymOPaYXizUXO8qKq241NUJS9hBQ+kOyjw?=\n\t=?utf-8?q?eXyJiZ/j9VW+XuJbtLpI7qNFVNxQ8c/2fQ9HSWJBg6iu8fSAwyC0g9Bk77MltLsoY?=\n\t=?utf-8?q?ASEBoXKxRgNwISMLLikviPXpb+wjxFbJz/OkCVUFgkkbxPd6KKOAouy/Nw0yF0bYz?=\n\t=?utf-8?q?8b5/Kedp2P9vtZYktIkBkMmqMJSF1L2UhQ0P94zq4+Tk/UKu/1IjAABFzaKznHtks?=\n\t=?utf-8?q?QOXoaxIu3nl2W5Gucm+2rBWtvGgy2K2N0fJYes8K9x4YwG41oLOgTJHN3yoKGtLPK?=\n\t=?utf-8?q?rjoMOYRrSe29elu71HOaqrRuu1P+3o/PN3MH1GmX0YNP3y2XS63YW2EMt3SYkjc1A?=\n\t=?utf-8?q?kds+CmZICFRgyyOydqT0lWfonbr/hFnKioO0mgMEtY2D9Fjh5RHm308HAMA5/vFRn?=\n\t=?utf-8?q?xWNNk6mi4IZISgmpYcDkH7yEWgCcTUjujfzsSyxUlcWf4yVvEh91mgcePfcz5V4Cj?=\n\t=?utf-8?q?yk9PCm90h9jgoOI/kbXha7EB6juujJI+Nlw/OCifaZRbcJPqVFTzBH4s3ueJgEzlF?=\n\t=?utf-8?q?7CJJQtxObUT4GN0BHuJO2FuBrlch6ahi9Q1/eO5tbub9xl+7ejR3meE4WDz/9XTLD?=\n\t=?utf-8?q?hEWwLEqre1IIUpELZzENL8/VLGOU1Ga0pT5l698yhisgXBTQxtg/TqTxKpqxU1OeQ?=\n\t=?utf-8?q?2usA2SURgBbLroXLIfeUuMNahOY1BJjRewuHT6xUM8MKfbWb4Vt6910Ka+sXqxDON?=\n\t=?utf-8?q?aDE6xxceZiCwAIC2cCqcI8Vt5x7/j3JlYSEtjyUz2sMLBby58ZNpZQxdusY46zIpL?=\n\t=?utf-8?q?nJyxNyVwlO9/Iqbe4Ham2ZuwqxCotuNKLKVrhMtdf0SAuWZwzzzYmJAg6gEBKeyuW?=\n\t=?utf-8?q?ShTrE/qBxUvto6bUR88KwHiLVFX4fPSWmeaCiGxLfkvwNWWA5Pn5sPhWPtEn4rXQw?=\n\t=?utf-8?q?WusknkOvrOj2LkoX7g/wxIyYbBKtsSbR+mAvxQfcdkX/QeieM2hjaPWWKY6Uwgibl?=\n\t=?utf-8?q?ZuPRw+/B15cD+cGzQ?=",
        "X-MS-Exchange-AntiSpam-MessageData-1": "Jc306IebehhoNKJEyRcTz8UJADtkvWpfe9E=",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 08496e34-edb6-4f91-d893-08de8a57ca93",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ2PR12MB9161.namprd12.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "25 Mar 2026 10:18:00.1680\n (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n Qs+WwcOnN/VUFfVZ9qJkV+z4zlPz8R9HrU8PICroB+X1z2KJWFnkL2L4itpjHcq0O0xmPdEs5VgIvYJ3dqBuqQ==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DS5PPFA3734E4BA"
    },
    "content": "Tegra264 has wider fields for the duty and scale register fields.\nParameterize the driver in preparation. The depth value also\nbecomes disconnected from the width of the duty field, so define\nit separately.\n\nCo-developed-by: Yi-Wei Wang <yiweiw@nvidia.com>\nSigned-off-by: Yi-Wei Wang <yiweiw@nvidia.com>\nSigned-off-by: Mikko Perttunen <mperttunen@nvidia.com>\n---\n drivers/pwm/pwm-tegra.c | 29 ++++++++++++++++++-----------\n 1 file changed, 18 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c\nindex 22d709986e8c..857301baad51 100644\n--- a/drivers/pwm/pwm-tegra.c\n+++ b/drivers/pwm/pwm-tegra.c\n@@ -52,16 +52,19 @@\n #include <soc/tegra/common.h>\n \n #define PWM_ENABLE\t(1 << 31)\n-#define PWM_DUTY_WIDTH\t8\n #define PWM_DUTY_SHIFT\t16\n-#define PWM_SCALE_WIDTH\t13\n #define PWM_SCALE_SHIFT\t0\n \n #define PWM_CSR_0\t0\n \n+#define PWM_DEPTH\t256\n+\n struct tegra_pwm_soc {\n \tunsigned int num_channels;\n \tunsigned int enable_reg;\n+\n+\tunsigned int duty_width;\n+\tunsigned int scale_width;\n };\n \n struct tegra_pwm_chip {\n@@ -106,22 +109,22 @@ static int tegra_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,\n \n \t/*\n \t * Convert from duty_ns / period_ns to a fixed number of duty ticks\n-\t * per (1 << PWM_DUTY_WIDTH) cycles and make sure to round to the\n+\t * per PWM_DEPTH cycles and make sure to round to the\n \t * nearest integer during division.\n \t */\n-\tc *= (1 << PWM_DUTY_WIDTH);\n+\tc *= PWM_DEPTH;\n \tc = DIV_ROUND_CLOSEST_ULL(c, period_ns);\n \n \tval = (u32)c << PWM_DUTY_SHIFT;\n \n \t/*\n-\t *  min period = max clock limit >> PWM_DUTY_WIDTH\n+\t *  min period = max clock limit / PWM_DEPTH\n \t */\n \tif (period_ns < pc->min_period_ns)\n \t\treturn -EINVAL;\n \n \t/*\n-\t * Compute the prescaler value for which (1 << PWM_DUTY_WIDTH)\n+\t * Compute the prescaler value for which PWM_DEPTH\n \t * cycles at the PWM clock rate will take period_ns nanoseconds.\n \t *\n \t * num_channels: If single instance of PWM controller has multiple\n@@ -135,7 +138,7 @@ static int tegra_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,\n \t */\n \tif (pc->soc->num_channels == 1) {\n \t\t/*\n-\t\t * Rate is multiplied with 2^PWM_DUTY_WIDTH so that it matches\n+\t\t * Rate is multiplied with PWM_DEPTH so that it matches\n \t\t * with the maximum possible rate that the controller can\n \t\t * provide. Any further lower value can be derived by setting\n \t\t * PFM bits[0:12].\n@@ -145,7 +148,7 @@ static int tegra_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,\n \t\t * source clock rate as required_clk_rate, PWM controller will\n \t\t * be able to configure the requested period.\n \t\t */\n-\t\trequired_clk_rate = DIV_ROUND_UP_ULL((u64)NSEC_PER_SEC << PWM_DUTY_WIDTH,\n+\t\trequired_clk_rate = DIV_ROUND_UP_ULL((u64)NSEC_PER_SEC * PWM_DEPTH,\n \t\t\t\t\t\t     period_ns);\n \n \t\tif (required_clk_rate > clk_round_rate(pc->clk, required_clk_rate))\n@@ -169,7 +172,7 @@ static int tegra_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,\n \n \t/* Consider precision in PWM_SCALE_WIDTH rate calculation */\n \trate = mul_u64_u64_div_u64(pc->clk_rate, period_ns,\n-\t\t\t\t   (u64)NSEC_PER_SEC << PWM_DUTY_WIDTH);\n+\t\t\t\t   (u64)NSEC_PER_SEC * PWM_DEPTH);\n \n \t/*\n \t * Since the actual PWM divider is the register's frequency divider\n@@ -185,7 +188,7 @@ static int tegra_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,\n \t * Make sure that the rate will fit in the register's frequency\n \t * divider field.\n \t */\n-\tif (rate >> PWM_SCALE_WIDTH)\n+\tif (rate >> pc->soc->scale_width)\n \t\treturn -EINVAL;\n \n \tval |= rate << PWM_SCALE_SHIFT;\n@@ -324,7 +327,7 @@ static int tegra_pwm_probe(struct platform_device *pdev)\n \n \t/* Set minimum limit of PWM period for the IP */\n \tpc->min_period_ns =\n-\t    (NSEC_PER_SEC / (pc->clk_rate >> PWM_DUTY_WIDTH)) + 1;\n+\t    (NSEC_PER_SEC / (pc->clk_rate / PWM_DEPTH)) + 1;\n \n \tpc->rst = devm_reset_control_get_exclusive(&pdev->dev, \"pwm\");\n \tif (IS_ERR(pc->rst)) {\n@@ -404,11 +407,15 @@ static int __maybe_unused tegra_pwm_runtime_resume(struct device *dev)\n static const struct tegra_pwm_soc tegra20_pwm_soc = {\n \t.num_channels = 4,\n \t.enable_reg = PWM_CSR_0,\n+\t.duty_width = 8,\n+\t.scale_width = 13,\n };\n \n static const struct tegra_pwm_soc tegra186_pwm_soc = {\n \t.num_channels = 1,\n \t.enable_reg = PWM_CSR_0,\n+\t.duty_width = 8,\n+\t.scale_width = 13,\n };\n \n static const struct of_device_id tegra_pwm_of_match[] = {\n",
    "prefixes": [
        "v2",
        "5/7"
    ]
}