Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217597/?format=api
{ "id": 2217597, "url": "http://patchwork.ozlabs.org/api/patches/2217597/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pwm/patch/20260330-t264-pwm-v3-5-5714427d5976@nvidia.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": "<20260330-t264-pwm-v3-5-5714427d5976@nvidia.com>", "list_archive_url": null, "date": "2026-03-30T08:53:54", "name": "[v3,5/7] pwm: tegra: Parametrize duty and scale field widths", "commit_ref": null, "pull_url": null, "state": "superseded", "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-pwm/patch/20260330-t264-pwm-v3-5-5714427d5976@nvidia.com/mbox/", "series": [ { "id": 497978, "url": "http://patchwork.ozlabs.org/api/series/497978/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pwm/list/?series=497978", "date": "2026-03-30T08:53:54", "name": "Tegra264 PWM support", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/497978/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217597/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217597/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-pwm+bounces-8415-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=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=fTpaYkwl;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.232.135.74; helo=sto.lore.kernel.org;\n envelope-from=linux-pwm+bounces-8415-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=\"fTpaYkwl\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=40.93.195.50", "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 sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74])\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 4fklT726Hqz1xrn\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 19:55:39 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sto.lore.kernel.org (Postfix) with ESMTP id 9852D3013460\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 08:54:58 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6AE9F3B47D9;\n\tMon, 30 Mar 2026 08:54:16 +0000 (UTC)", "from SN4PR2101CU001.outbound.protection.outlook.com\n (mail-southcentralusazon11012050.outbound.protection.outlook.com\n [40.93.195.50])\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 DA9CF3B38B2;\n\tMon, 30 Mar 2026 08:54:14 +0000 (UTC)", "from SJ2PR12MB9161.namprd12.prod.outlook.com (2603:10b6:a03:566::20)\n by DM6PR12MB4281.namprd12.prod.outlook.com (2603:10b6:5:21e::10) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Mon, 30 Mar\n 2026 08:54:10 +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.006; Mon, 30 Mar 2026\n 08:54:10 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774860856; cv=fail;\n b=Z8AkxPIOzneY6SOA+n+lE62BQO1u5eW+ANmrhdRCueLik/b/QE09KFS13BoURvVZZaIm63F+o0x8BX1USImo8vAYvN+YTHU+MeaRZbTiN+iZIUDRWO7liqkpsYwPZj3CEOiVGsDBvCtwky5bgXlpi7E84An3I02FyJwwGQqf09w=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=SY23d+mDChcJQpzaH0P8G3q3Q+wR/Rom3DUgZ/rPuInxmwRJ43qHvEh0BySWaQglD2VY3q4Ye+wbPvjZ79L/JC5/ecRV/ay8SFUgOIiUpY09Pr0Ctvk4esqkqi9ZKS8KcW3/qH50S5ZHLQX3mYhVyZOJu5PKy4B8kgTpFzzUMNJ8ezAPNQQlomBf/90P8jhV65vhFcN47OXhd73smCfQsZBcIYXCc/IoCk4bVYyVYLU30Ds9yiLugd02sLoTV2MViLgzYZ20jyS22NCOlQQzfJGUZUpCCJHnZE9OGTuzaifdJ16Umh4oQdNN9RLq9YKM/v74C+q21FDvSsYVitfFcA==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774860856; c=relaxed/simple;\n\tbh=R9vITPEgkYjrs8V7eNTrRiqRRDEtB0yfjoIa3pwKg9E=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=Mvk8L+A0hKYdgWRxlYVbJBgmSf8hdjuL1pxSb5WyabfymYuLlHSl4qlQbQI8y1/ny0A79b5w6/AkmOUO1K8PlFXK1aCjDmhaKE31GPQwVkhx4AOdbwcZnMsLb87zJHDIGNFjOdIFbIc/2JWn6bsH6SdDsrML3XuVut8QqwmD4t0=", "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=Ku8IRXIAwsfT2yuAvA6Zy9UcY742OjS5MDgc2pHh25s=;\n b=zUYoci30I1EeQGdPedeDK+Ujo2w1rO0kIIiFX6bqK/0IYh+IVf7jA7ymkWCeD9z7qU5uiOKcweErvoci8CvIzvZAbzalImz2d9oJiKVa/OG33Tnl5vPb6vM6iNnPWnKY3dxDuWBiVPBS4u8NOBFDjWSK6wPaZAs9VzIKqw14H2b5YcZUsSQbaLC6F4fGWucPDsDH65fQchDJ6OcK09rQPF53vtbVSmZs7XnmdA2W55ZzSIh6iJrE8evzZE2gxmhR9F2JG2VkijDzmh3AJCIRTNLlkdxsnjrpe0RtAxiF2T8Ziv/IqYfsj16keexJjpFYWnfrYbwoGPNifQd+nNLIxA==" ], "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=fTpaYkwl; arc=fail smtp.client-ip=40.93.195.50", "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=Ku8IRXIAwsfT2yuAvA6Zy9UcY742OjS5MDgc2pHh25s=;\n b=fTpaYkwlOYEXYp+gY38esOi4hyuzyTe7RTh0bb+AXsl3753WzVNljv7q0CvR7rGcSLiQr5/n9ULU0sF9Dkjh1VwpD7Ig3ES2+1f8lctAjoV7Fp4ZmwQU0D3cHLjPo2iXBiZrkatjv32lDjCnKE3T92Tj9WDDPTS1vNB8fy4HXSohbhzxEujAPRGHmkhfWCPBQmhp2cbZu3tNubUmLbNxTBraAPLNZzyEK9Fw/iQr9RsxBcWgkqTT9PrvVQZa6BwWM+axjjhqiHs71Li0gRwRWxGRY80Ss7wqP7328geSit2vTKB9zToVNSG/fUc1LQpOksa191BpUafnzDbDmTHAfg==", "From": "Mikko Perttunen <mperttunen@nvidia.com>", "Date": "Mon, 30 Mar 2026 17:53:54 +0900", "Subject": "[PATCH v3 5/7] pwm: tegra: Parametrize duty and scale field widths", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260330-t264-pwm-v3-5-5714427d5976@nvidia.com>", "References": "<20260330-t264-pwm-v3-0-5714427d5976@nvidia.com>", "In-Reply-To": "<20260330-t264-pwm-v3-0-5714427d5976@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": "MW4PR03CA0243.namprd03.prod.outlook.com\n (2603:10b6:303:b4::8) To SJ2PR12MB9161.namprd12.prod.outlook.com\n (2603:10b6:a03:566::20)", "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", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "SJ2PR12MB9161:EE_|DM6PR12MB4281:EE_", "X-MS-Office365-Filtering-Correlation-Id": "f78e1590-283a-4e6a-e9b0-08de8e39e87d", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|376014|10070799003|366016|1800799024|22082099003|56012099003|18002099003;", "X-Microsoft-Antispam-Message-Info": "\n\tfMl2YrIor1NYqp9lXWBe0KmkzmX6efgw73tNWCHyqTwfbgUxCjzJjmzEQtVK388Szn+lT22ynH9UnWUU6tLCP76lMN7C1nP3uYlcSKzAxsHYJoIzgH2aZZcr8PuP6kXRV8rgGiqm/LZGrkX/Tazk7QCRav/4MQu9n6fobALgYe0MSeUL6Hpt+fm3WSidHkZygimM5JC4/GbTUJce5mKI1GkRsJAYQ6wObXbbYWneqJ58B+GTLSG7+79cCMrRetvDhKKHClihrV+j4OcqWpwOjipOSZ3DFeVXn/0jPm4GrPswcKTvWbUcw4dRfC3oGbyQikM/euosnon6lQjxIOcrrHPAtor/55N1c7eurjtjDN6AhDvYmKyD/eyHwEV1zuA3j3/IZPJBqAVIwKdjYa1dDioNlvRTWJp8XBEKBpOMDhw27a6JYhk76draDZgcLkjDLl5X2tPbRNRpMxAnC88bb18y7ws6zCui3j8vEAEA9Gw6tvPGScPMBjcfyozZ7i3M9s0D7+3UNo2BwkacZaRpZg1jViunNwNGzoMsatwPniCd3NjguOzCaimkwNbeWlM4Gg09b7K18EdMyAGk9AYGX1g0EByAR+MkqKL1jThYMiedfRlwA1G/ifTIRR6nYYB+Ja9wNIAAQk6AeCFbmYNhz8PEJiWPWofmWfP3grf+7hxqkkJhqLykXnQbpvDdNscZAoNSuR8RT7v3qgCNxWKbrfG3Qf6nz7sh1EGTgT59wy8=", "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)(376014)(10070799003)(366016)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "2", "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?q+coYbqN9gUk8ZVlUfFGfk4GdJUb?=\n\t=?utf-8?q?vCv0/tcrjRRV/UY2G1bIzuz8F2fvFmzRqFZA42iqQDkAmLow0NTkHQzDEgs73Z9m6?=\n\t=?utf-8?q?aBp5/cwHRmMX+0sRGoqpR+dVwBC8cDgCbchJ7ynLkaS7h9bYnpT2BjstoSnR+f4lQ?=\n\t=?utf-8?q?OoH7X8cXP8GrNPIzBxzTxPqf5geA4hdAJ+VYHQRbVEk40jb3NNUEi2xLzpbTJLOd7?=\n\t=?utf-8?q?mFRtQOPpiSZ7ofGsBjWEAPSO0oxFw7+cV7bRE7arZvhuXcA9Yy6pk+tksET2J8pF+?=\n\t=?utf-8?q?jJpmiw2KY3jzkLbKyAekhHi+V0k/Qp6gUhEZylQs7VVg5zB3aqAls06rbgx3CVKf/?=\n\t=?utf-8?q?uPmqJrK4bwdrxZkcBXSRN4qeFQrbMx/vFXYJsXIs4XMgg6fCoqngKuIFkbU5y8sGw?=\n\t=?utf-8?q?RpNDaws2NSkzkII94Vh4WWMEdcTF+AFCCj60saiOIyRmTMeLoDOIvFET0QRTTZq4u?=\n\t=?utf-8?q?A/Zm7tWERGC0FADTUNSHBUrjsXWn9ZBGLw7z4vlAPgG8hTLk+v1zpPyNlN0QTKPla?=\n\t=?utf-8?q?zVFNqxnIpHZEPIy8AMcrIVCR3jSHXXLKWt/FqCDCXy7qVHNkyFKWAd1EOhLnHKkXq?=\n\t=?utf-8?q?LvDnqzyFx7VQ7PoMOU3Eqf5qxL192bH4H6AcU8pFO2UQ8G9gfMJDBofQd2mqqayJD?=\n\t=?utf-8?q?2quznv2CZQBK40a4biA6dU90t2MfDkFYVCrMW6Vmy6wE/NOkEzWylYtnjNMRnMG+n?=\n\t=?utf-8?q?40QFVVNw3FRYpjFT41kvRV8jE+sfGNwgL4YRIS2OHLq3Up8zl4UHKQOr34xDDfGBE?=\n\t=?utf-8?q?6WgtebQP+9PlEJA2sjFTuqW9TKhRYYtllF9bmehLkY1dGGYcSezwL9DvIAkJcJJHv?=\n\t=?utf-8?q?xCx5N1057MOsIXHI+GcdurtK0NDYkYrWbLqFh2p/IQRabpL3mYQIu27eNZH3AUtfs?=\n\t=?utf-8?q?euf69m61W5wwrM5A3vRvse3vXUeJFXywI2HvTP43FIUt4rOL7gJ+7s0VBLZxrD7+N?=\n\t=?utf-8?q?CC9Yd+N+YiJusngRNhAWpE1Cr6DZU4w82+kGrItRg5Dpn0gpy3W365upigZqj2NbY?=\n\t=?utf-8?q?93nDMAoDWH9acSUwTLmzVvjwf+S7/Tq70NNcrjBBCJK2l+iV1ydWiu1QI7X1olATw?=\n\t=?utf-8?q?vKotfkjo8TY4T6pU7pxldMGXw8FWeMZhcfJDrIDeu2dvjpNihp6TO/2KqQZhe2eCi?=\n\t=?utf-8?q?KwZ5FR33xRwI5qkn676zLaQ4dUmMnhlm+EJd27GnhLodabBi6owDpWC/+uL+7RQtC?=\n\t=?utf-8?q?t+eoEhLHTKAYlkpFdrlZ255kEOKLzfGxTnjYMp2TKEJeIqXNS6c1APjxkRpuFAa0x?=\n\t=?utf-8?q?cKLvdZmLESieOmjZu49kSbsSgTqcIMiIwjz4EK4Tzb1zCB2eCuWHCflGlfiHZ2iLe?=\n\t=?utf-8?q?C3K7TbTEUv3OqoSPAr6kKIsA4bxFsjL3yRGlUz1wVQQsFkIRa30vax2a/xLHZ30Xr?=\n\t=?utf-8?q?x4i8vnb90U+PyG9QAypXJHeyHfvSfhDcJX24ydh3JYSix8lE7d6TldfWZ39q1OHNE?=\n\t=?utf-8?q?f5Ot3EeRsGECqEAGeTEOhtjJ7dOIUwDnFXJSmA/CW1798ZB+rLP5/1B4tOyT7jLba?=\n\t=?utf-8?q?hy2pwnGq4RSO+vU+P40tRz4TRaeTGSCwkgvoF90Y7A+aU2ijra8db8kSWYJDgps5P?=\n\t=?utf-8?q?BCqRtzt0d12rOVYAjJkcaWXkMqWV0hGaSUFbrzrwvZ1DvZIMRzVTQlxS4z6qiNS8r?=\n\t=?utf-8?q?TCt3W7IEuBHQL6yzCrTcbXN/pASEy8apwSAp1nDFnkfSDzSUjhUKTvqxwFUa+OLT5?=\n\t=?utf-8?q?GgZMGrMIPo3uKNzCp?=", "X-MS-Exchange-AntiSpam-MessageData-1": "CDlXJi9Rwg0nTQ==", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n f78e1590-283a-4e6a-e9b0-08de8e39e87d", "X-MS-Exchange-CrossTenant-AuthSource": "SJ2PR12MB9161.namprd12.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "30 Mar 2026 08:54:09.9999\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 KjTZ5S5PgI714ypkWho7r+XJ/gbTz9uVaHGAEQMvyen7ItNs3Y5EcA60LGyQ7iF+2W8DWKgnjvxNGMqD/Dltjg==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR12MB4281" }, "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 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": [ "v3", "5/7" ] }