Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217943/?format=api
{ "id": 2217943, "url": "http://patchwork.ozlabs.org/api/patches/2217943/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-tegra/patch/20260331-t264-pwm-v4-5-c041659677cf@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": "<20260331-t264-pwm-v4-5-c041659677cf@nvidia.com>", "list_archive_url": null, "date": "2026-03-31T02:12:17", "name": "[v4,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/20260331-t264-pwm-v4-5-c041659677cf@nvidia.com/mbox/", "series": [ { "id": 498119, "url": "http://patchwork.ozlabs.org/api/series/498119/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-tegra/list/?series=498119", "date": "2026-03-31T02:12:15", "name": "Tegra264 PWM support", "version": 4, "mbox": "http://patchwork.ozlabs.org/series/498119/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217943/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217943/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-tegra+bounces-13451-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=Kc2o8ADw;\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-tegra+bounces-13451-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=\"Kc2o8ADw\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.107.208.29", "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 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)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4flBYJ6jyXz1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 13:15:48 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 9D662305CDD2\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 02:12:59 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 3220E367F5E;\n\tTue, 31 Mar 2026 02:12:59 +0000 (UTC)", "from PH0PR06CU001.outbound.protection.outlook.com\n (mail-westus3azon11011029.outbound.protection.outlook.com [40.107.208.29])\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 97E1236680E;\n\tTue, 31 Mar 2026 02:12:57 +0000 (UTC)", "from SJ2PR12MB9161.namprd12.prod.outlook.com (2603:10b6:a03:566::20)\n by CH3PR12MB8330.namprd12.prod.outlook.com (2603:10b6:610:12c::22) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Tue, 31 Mar\n 2026 02:12:53 +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.9769.014; Tue, 31 Mar 2026\n 02:12:53 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774923179; cv=fail;\n b=MNp+trGsto5wHeFOScpbfu2MfOGWTr1wff/EiRYMY9usTlBU8Qiv4Ica3cjitKNJQEtpF4HE+g7yXou87t02KBH59Z5WTdInw1Nu8JXyAzd/i/Jsqnu4xO9Sxz/9SNvUCqYVZlXWqzFGYzmEzT9xFEzIv5NuhpG3DRKR+s/eJ6E=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=woLk6GznbXx1a0TWjWgk7Bab3J+aFK09AVgXEILferKQxB25gxRVC4Tlc+wuyd+UpVYOPjGNyW8oVEuL70YPhjl722CQTck8MuDxEBipD32EPrhc12YfJX/p54gSNpboanK8caGL+KMQZ93sxpsFowhkxInJBqev24JVi4lTtbor0+/XJbj3tNzAJbGv3gcabQVtuJFU2tGQ2CNa8bx7inm3i+fMYJrfMO6O30UB8dUlJwRuYslZECXtov7a8wOnMyytcXBAfg5lxYRGNws6RdCknK+O5XDQJ+2jFSwoSeileN95UhMIPK+wp4dJIpZaFkXXfvlDow7UwX05KjC88A==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774923179; c=relaxed/simple;\n\tbh=ZZX829wkEbStKuql+pnN7VobByEw3Wwgt4TVDHqZJtM=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=hJM89iFkH+qjNhDVRI8tljZqLbsBiHoNZMZlmw74/dIoGTIwkZ8rTAMX/X4nZRLBee/XBWrA13X/mJLFaay8LbJUCdPxmflyMbklPoz85NnwVtnLAB3IFxBUXcYQjVCYHktAAmwT5fTxEoWMG48sB48wvEKNPvXRK2tHMFeUA+c=", "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=Jb7yaNVzPG3NBK56+Bj81AVHoHwwJWxtZ4x75b+lKok=;\n b=u7MM6Mdvtpj+KccYEqZkkLGGh2npjgYcLnHi790U2Xyr3hhe4PjR7WkLGesIa3GFXFHLpaFm6mJ5C4riNmImR4+en8kK/+CbuT1Vq1sxoKZlhC/cXhdumprn7g8XtD5Z4Sah+5GnbBGHQYM59MOPO6htW1XNufMJVNY3vM47XCu+m6BMyMAU3slW+6q3v+29SLMolvQ+bvDCccjGRFycv1kmdeSojxgTNp4WB2PDV567VRW99HNsk+5CZbPZ6ANgabQHEk5Qx9fyB7/irVVixpnXRqpniCQvLGz8ZbctNHAENDvV3MG4T73MsRmENes8Q8SEYbyeY+NEtaGJMrCwcw==" ], "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=Kc2o8ADw; arc=fail smtp.client-ip=40.107.208.29", "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=Jb7yaNVzPG3NBK56+Bj81AVHoHwwJWxtZ4x75b+lKok=;\n b=Kc2o8ADw1KeKA1JVixsFukp/hNUpXNEWxkGucaK6/HPbae1VIzoAcbur4OdVdWkHcKI3vJVDJe3Rv+Q4sMYtGRJF0teiiEeewVWgpFiPPjUs81jpvFYvWWwknyp1IfC2fGykCH8nPKV88d6JZ+F26gd7edahkNpSKnIuYSw4yoeJdec58AkaF44YeMqNTBEJiG5gwvPy2P7ytJ/7r6laYBFpOBOd9Z57/SzyejFxWyTG5Qrn3SFInJk9EplXyLnAAJV07VW7nengNAF7wXwBNd9ATCR+z2XfmoLBRHXnvif2jaGdoXEqqfq78EQFLnQ+L22i300vxZrHf7e6YfMuYw==", "From": "Mikko Perttunen <mperttunen@nvidia.com>", "Date": "Tue, 31 Mar 2026 11:12:17 +0900", "Subject": "[PATCH v4 5/7] pwm: tegra: Parametrize duty and scale field widths", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260331-t264-pwm-v4-5-c041659677cf@nvidia.com>", "References": "<20260331-t264-pwm-v4-0-c041659677cf@nvidia.com>", "In-Reply-To": "<20260331-t264-pwm-v4-0-c041659677cf@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>, Thierry Reding <treding@nvidia.com>,\n Mikko Perttunen <mperttunen@nvidia.com>", "X-Mailer": "b4 0.14.3", "X-ClientProxiedBy": "TY4P301CA0109.JPNP301.PROD.OUTLOOK.COM\n (2603:1096:405:37b::16) To LV3PR12MB9166.namprd12.prod.outlook.com\n (2603:10b6:408:19c::13)", "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_|CH3PR12MB8330:EE_", "X-MS-Office365-Filtering-Correlation-Id": "c80b8f4d-77e3-4b44-ec80-08de8ecb03e5", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|1800799024|376014|10070799003|366016|56012099003|18002099003|22082099003;", "X-Microsoft-Antispam-Message-Info": "\n\tmmJSLXeFuC2hI67346QZpcHz6n8Li/Xig7aQJcJYwgu4mpIAwzvV6Kw0owT1ny4jVDppGEAd05uMphOxnULP2GmFuh6nyaozKDnl84IaBCmW9PE16r2wM2ccAS/f+N1B7G8fR7O68oeWonXqkLoLsq1NA4fPBWt8FmmIkEUdAN4nFJF8AXIZ6bf8SgEm5aV0bNhes31EtQ8lpju1NYX+pH3xVXdMolzNtqaekCZiahGZwYp2j5JRLV82da/4bhHbtEzohtmK/JcPvFkpb8/a6orGK4W2pi3CxzRVV4OY/lcB0xGUERde6BPoYXioXy2BrZ3UHshQRsRUbdRhwerNL5PIfPNcSJqLLMYB7ffBNWs4vnSNwgqqGswN7P8avXFEUQJTCy2RuFO5je8R6117Ax/kLy/UprSsL815GMscOca/HzN1e27A4O2t5hPNwvAuCNKB4swJMw59KXFb4sbv31BW5qYyC7EKDzY8yq58LCdgdoQJGp7G7lBie+Tgyw+DLXsIzg934ZmchNVfCPIQkZiu6k62saBy41LsxFDtkBOWQdEaCpEDvUhYQpHvIFUnedIXdqC4TVILBY0jBfiJ9uEEAzkQQP9I0BR15foTikVjzbxx0uWtqpuB55Ufke4JmmXHFE8Bdc2wSLOmVkM/yRmWXVQGKi+liW+bu4lkRdQe1hlqqO+zwN2JWtWR3Z3arQeqRtvw7n9OvWSwujYgNp3TKFRR685Twkv/gZAzK3s=", "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)(1800799024)(376014)(10070799003)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "2", "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?z+CTgcKZygGtKI0IM4QTkx5F/dJK?=\n\t=?utf-8?q?Yk1JX+pSAG45r7kvcnk6HDRNRRmnhy1/8beBt0aYiiliy8fh+l0lmIYZOaZPB9bxD?=\n\t=?utf-8?q?NvX1ofn9QZPlSHdIyqAwuNHwUszq4bI+Gk20cQzKu/dY2JGJIDucvU9Nd+H7ErAmM?=\n\t=?utf-8?q?nkfXYqcgEZzHkJN+ZoNKP9kqElPBJifPUzKiEIoA3eOML6dMPd4EqTZnPqFvZZnPz?=\n\t=?utf-8?q?2JM51obZKU3/Nw2RBDMIAcO97r28VfVSaQISmWGwZtR6x2jWI8ZymJWWJJZktL8l+?=\n\t=?utf-8?q?LZ3kHe0l0U79FpVbE1GB7vfy71b/d7z99Haz0RwRqNOJV3cesZy7wd9ALndO437Ae?=\n\t=?utf-8?q?rv870LQJ4gt1UZTW/MiCxhAPFz+NqmEYK567b9vcNJZpjVT6u3YfJcGu7mS4Qs/jH?=\n\t=?utf-8?q?QUdJaNcZwH4oHYOPbOREllbhaiK13qMz+gjTauC1B7VIE4TGt9mfLmgZhXZjcBI9s?=\n\t=?utf-8?q?TTmbBYIBo8op2q+g632eHQcKwV4t2ePcwjFYxyR3AdAYe+JWVyJV3hTM0VAWccRnj?=\n\t=?utf-8?q?44HC0KcWbkTJITAA1QqtvMmH7uV8c7FA4+u/A9ukRTBcHK2LvThDOBVX3afmBpnth?=\n\t=?utf-8?q?vFd8qj6a7JHD5LHlr+wHVNkoWFtum2+IdIgk7WFcm90+Bpi0a5RUINem3frx8UFiI?=\n\t=?utf-8?q?huKSCpKHNn7anyDkaqiTG/JLtTItasVKuYDY7XSM//wKcvkoXFrRG/+eJpdYFoqg0?=\n\t=?utf-8?q?wogJCUhrukV5tHT2Jx7LCuB5FPByF/7zdmctyWX8vjspzaCv4kPRR69WJeDoh9UkU?=\n\t=?utf-8?q?67GUw0cPRLX5SOJgjVxCBcGZ+bFViag4jwXSLOcp6p/+lVCYnBFp7PzAlIZtm+ZTE?=\n\t=?utf-8?q?yIxtikO9zfq9UPAX3eDzkPsZnGgnKpcQDUuhJ1oDFw3TYM8VSw7S7QaTshdih0AzW?=\n\t=?utf-8?q?y4rJauLVWaRVoMOjK1Y3cTcRI1SIzfnYsOq7i9lAj3HX4MNxjVBQGQt7vuMxmyaQW?=\n\t=?utf-8?q?uYgVjPMay69LGEzBT3czXSasHE4LU4vI55xl4DrnqI9ebo9Sdw4SOXK931wx320in?=\n\t=?utf-8?q?xlvKvymstDVpbe1ti/tutR2IBOD4s41c4CpfW7fA1d0Ogsx9OlY2ho3GmQFb3xnhi?=\n\t=?utf-8?q?D5SQfLu8GujlPdpN6tMIZ5hIJhozfnkWm93+KKDnF03bs0abY9nrxOnsOpnEKsm5X?=\n\t=?utf-8?q?nkrEbAm/8KKBP0JDICN9W2d4VCnnZrTEXu+lCV/iGP42a2vCPkWRsr3nAf1MjLgtZ?=\n\t=?utf-8?q?gnvpTOtiGAqaEZPSoPZ+g16MMi9rzGgjAadfcV5d4TNpJhsPM8AcIvtTCvnZ5svpl?=\n\t=?utf-8?q?nPikW/0Q5keww5f+E7rR1IrJ1JivXgTh9Hmfz9z721kfHH3fVEy7drLbY2hG7ushi?=\n\t=?utf-8?q?l84X+sNf/zLgLVPEjXDZJ4quV0yRawEEgrx2S9zbEUJnLrX9FWyx6aPbuCByoZQ4r?=\n\t=?utf-8?q?0lbZR3HfrQrKURrXL4mLEessgU2feytbRU6SHdkLFDpGbv7tPL0/AHyRJvI5vhYqE?=\n\t=?utf-8?q?f7YcbwP/q8oaT9WepBGEORNkARl9HF/LE3atOcZMgWwjaDQaEMvFAWR6NOtapIDVZ?=\n\t=?utf-8?q?rfIwr8xABUmh3B+XBR7TQs8n5/kqjJu+0tvK2oCTH2SgT3uZeoBX7Kx8j2YxH0Irx?=\n\t=?utf-8?q?DlMZp1O4/I6FQFy3JiYeVlLZZ2YnFAs/1LGuEODV0RPSmjRq5W5mzSot47OicYXJO?=\n\t=?utf-8?q?RCYGVHdpd5rXmz5gRsAnRrMB4b7sUMB18o7XxnYOzeaoAIjaA2t/zsKk/CQkxKwLz?=\n\t=?utf-8?q?K8XYBrnrnDm4aE75I?=", "X-MS-Exchange-AntiSpam-MessageData-1": "r1+sccdx3lyWFwJFKDItXZqezJzjBRymcPY=", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n c80b8f4d-77e3-4b44-ec80-08de8ecb03e5", "X-MS-Exchange-CrossTenant-AuthSource": "LV3PR12MB9166.namprd12.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "31 Mar 2026 02:12:53.6006\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 OwnzXEF1y9mC6vFrdG/AjtBgI+HXu+gHPU0KkJR/7fvy1qOLNkFB6gYDQyGyqpPMMVi+aYykTL2+JhomjiKYoA==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CH3PR12MB8330" }, "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>\nReviewed-by: Thierry Reding <treding@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 b925ef914411..d7968521fbfd 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": [ "v4", "5/7" ] }