{"id":2215789,"url":"http://patchwork.ozlabs.org/api/patches/2215789/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pwm/patch/20260325-t264-pwm-v2-6-998d885984b3@nvidia.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":"<20260325-t264-pwm-v2-6-998d885984b3@nvidia.com>","list_archive_url":null,"date":"2026-03-25T10:17:04","name":"[v2,6/7] pwm: tegra: Add support for Tegra264","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"2b4b091067139932ae074d98953a4b7862163ae7","submitter":{"id":26499,"url":"http://patchwork.ozlabs.org/api/people/26499/?format=json","name":"Mikko Perttunen","email":"mperttunen@nvidia.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pwm/patch/20260325-t264-pwm-v2-6-998d885984b3@nvidia.com/mbox/","series":[{"id":497412,"url":"http://patchwork.ozlabs.org/api/series/497412/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pwm/list/?series=497412","date":"2026-03-25T10:17:00","name":"Tegra264 PWM support","version":2,"mbox":"http://patchwork.ozlabs.org/series/497412/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2215789/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2215789/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pwm+bounces-8363-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=OEgQWO1a;\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-8363-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=\"OEgQWO1a\"","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 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)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fgjj73yz5z1xy3\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 21:25:31 +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 227683084684\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 10:20:14 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6E1B63B7769;\n\tWed, 25 Mar 2026 10:18:16 +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 1DD693B6C19;\n\tWed, 25 Mar 2026 10:18:11 +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:05 +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:04 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774433896; cv=fail;\n b=NK4UwLcGQD4EJ/Lag+IDrnIPs0os9ZBGv8XPCqD+00KnyGXhDYZ/R52UpZoN2iy0Tfik6GKAipvGLG9g1rGUCGmKSxReVTcMixhDJjU3wDHy8EOy2tEsMOz5ZZYQmkFVKRD10sAJNxjTl9Cq+ERL2aD8gLsOtbxnd52B1BKllho=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=q51d8zYraiMzq9vljkTSu8R2tM/Lywc3SI+SzP46XRBqSkVs0O3GT7mtCooLY6d5u0slY0JVQjinOrTjUG+y0P2raZoq/T1ypzNCYsPdu3cIryisTzok/POjSWQmBBzl+UBx7XlwdS0sAsK8lYfElsfuxGP32xE+qgDeNxszhapJ3YjsM7ybiFNXcd62/aEK7RvH0YAdx+JjD9gUbmH9bvBFratr/Va5T5ypaN/n2+oZFMXMFztbcrJBYTfbfPuCZ5maQ1gFHPz/b6GLoHr8LqC7oDAY9KStX9zRTfT8uEhUfhPsxBOnNTFFXMZdK6iWmGKAikyGhURiFE3cjcH2GA=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774433896; c=relaxed/simple;\n\tbh=/Ta0Axt7KJjBrFu00qLjZJNsY3MmjgJ0zry7Jm+m/dw=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=R0qJj4+ipJngJAjFRirjtpbwZ7VJ/O/Q3nZAMU6if2qNuf/pjWm9p6ggpgUE3Z2oDOM12tzO3+H85hdnbIqhCNhRNaS67c4Qu345Wk73uXNO1mwnThN6C0qqGQtrOgMPvtgw8hNitVNEY5jivICFIRAQkpJXBj9a91uCygdu8cs=","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=6lI5vCtTJRWEYYBs6iFamPe8E0USN1Uctqb9jRn6Rgs=;\n b=pNvvJx1FldCzgytQFhJf2oDUpmYKcjXMOmLIVqI6PfPwWdgvHgAdEKx2Ac4ttu7Db/yV9taqP0jSsUPo9v2BuwIMEUa60zUHMzaDrckd6V1A0VFmAYtWbmN+/RtP2cjD8gngGOW5UefCF68QAGS1ufITXcTf85Mrj63mxBV/c6Uyv275tCbURoyXQPiSxKRxi7E4zHVC8uWk6v6Yx4xU0oBOyhUe+CW54J5K6vWK/LEjtUXVUqGW/tp2DeYIDiQU5EVxWfGTrt4tdx8GVwj36Z5+lj389xjtAwBLpKkZkaiAyin8o9ZpRvyBD9PirAwUREd42loB12BuflgV5n3FIw=="],"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=OEgQWO1a; 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=6lI5vCtTJRWEYYBs6iFamPe8E0USN1Uctqb9jRn6Rgs=;\n b=OEgQWO1adOUq4q1CYzu+jnc4X1MfdnkWGeKcgh25oZ+d3GwApAZ355nNbrurdX9ggchnk8E+UVf5YVEfsqmbDV4BXJ7EAtWpsQHiBzHAaxdaiPRR8jTbF54amC+gFrgYssFW+u0St3C7sxJNyJ24bV7duAif0SrZfWtWflTRjFhWpcGvDsyqIah2EK0ytFiFLmS/vit8PRfno5xLtxg2O5YumFsy95uNwtti92pvuxPP+EcpUtZupiQG38UPF7eLppWberZgFFg8rE2ev4yFoNlIcEmWPLGmzUZfER+CyDl8iGUQBA9zWXat5KqrZIZ6S+hJdvf3He9r4f+6SBbOSg==","From":"Mikko Perttunen <mperttunen@nvidia.com>","Date":"Wed, 25 Mar 2026 19:17:04 +0900","Subject":"[PATCH v2 6/7] pwm: tegra: Add support for Tegra264","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","Message-Id":"<20260325-t264-pwm-v2-6-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":"TP0P295CA0055.TWNP295.PROD.OUTLOOK.COM\n (2603:1096:910:3::11) 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_|DS5PPFA3734E4BA:EE_","X-MS-Office365-Filtering-Correlation-Id":"d2f1a4c2-6f10-4d36-c3d9-08de8a57cd6a","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\tonqOAKvLSEv07S6hsFDCjx9rYesmUWjJTlpgxduQkrKcX+KENAmB08xWaRWfNuNuOpyiD8qyJ9wN05hU6bNXmuRy33rTKoj80byVPX+MZq6V1UYDoczlfVZUGtWAuoHp67Oj3qFLmg7jk0kuVUrARzAyreVgyVUwLaa+DOBiN6oy7a1YgItv5pYAI73vizEStswyfD7LW4GiJv5FLvbsMjOByySxE1aoslWeYJD8KS/Wqpb7t5HyvxAlilZSE9If/gWdIlYhPW5qiUZedS9SVbGPKfhweYXdpmKLeXuMNrhJo9atb8AI4tSlvlXD7y3EXb5kSIkRMhgusYVAnHf/gi9mPJ+0WLH4vt/PqQICwPiFG6cIQ+LIN+AwpoPxK+HLyCdd3+cKW8U7WxBGOS0HNx0CY9csmGucXLT0fL4TUyctTToogijMj5I/Vn7fvW6MdRp8aTsEuM0DakIcM/4UjH0DOzf0NvmP7PXb6HeLVmX+EfU6LFjs08okPX026B3X5XAuozWXLSxomgXHQQR+Ci3uqA7Eq1ukWuW5mBell/y66F5rF17XZhHugHj4fGQD1Hyz841DZ/MytualWh1cfO2sWQCNwc3nC6jPcvIJ/jXWZgUw6L/dOOHBijbCcz6UT/6zKxeDvmdQaXpMGY8xMMz1BBCHjTIkCQYdTcqseRHn1dRRT+72Hk/yC/yVKfNTI1Hqw0/d/hGmgyZx8Y+kdSkgLIJgBzGnWPk2PUtxHho=","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?okgw/Kjg38w2cUk+zsORIZUIlMyR?=\n\t=?utf-8?q?9cGJ8reIKUBNtQ8K0HEEwZ2c8tAnUkXcyI4tCfH14VtbekqPHIu3N390mU3lqwWv6?=\n\t=?utf-8?q?4rdfgNsjdsjzLbN/B5LTB6VIXbMve+QTLuqaU0p0g8jFGoMsFx+IP7bQ+LYcmEyYa?=\n\t=?utf-8?q?ZBoVcVZ87oF7anodZVpx8Bq1ZBgcS/MrNmPBQhfzLfPuLIwjLz2HNCPcr6IbCG8cw?=\n\t=?utf-8?q?T6pD3h7mcQ27+FLX2sKAlcjyoVKrWBbuBFowZKnZf1mu7M9wXg+S+mWrlGa7qUhns?=\n\t=?utf-8?q?NyDh8kf61d3GuxLOZeqvtGJN2q9DOFnpqQRe6P20/9R+wQQTaQfLpkYmNnGjDYy1e?=\n\t=?utf-8?q?m8pXor/bbpBKwBNH4FRB2B7OjjDMEZo3+LxQ1qhddBgNnJoRFmBwaRjZg/PwwKX97?=\n\t=?utf-8?q?wXKNkXf3HArRwafdbSbusE6lS+e21ruy47MT1qkYIs2CC5LoU57ZKRxdCjDwu0NyJ?=\n\t=?utf-8?q?ag31gJ1ae2eFhNKrCruQu8BMSpBuPpst4k17crQNI8nJK8jZzfndgb2/eyJGz6Lcm?=\n\t=?utf-8?q?HoK4ZtodOfDTa2tK0cmUjoRYxwJktXs6B9IIqPeEmgsHMjmdC9LuRJ+YMvxFBH1lZ?=\n\t=?utf-8?q?mL+SEHk/FV+/+sgZWDyTiMdYjQ/mAizkAj/bbT6A/l1sM3sqaoJQuQrYd57yTI7RX?=\n\t=?utf-8?q?D6MDavuKM5L9qudpVoriooNdcNeQWCI0x4IyYy5LxlOAUbX9eyBCcUL59GbiOl5og?=\n\t=?utf-8?q?maoZo7q5W5qvSjN1ekQt+DD5mOc2YrnTVnqw+82yWlsfqLjX4fcGu0KB8eI4VXkoY?=\n\t=?utf-8?q?P419dih081gOEF6GADRbv65h78GMvE9u7LNCx/39OgvidfLgOqBXsHkqs21Bc4i9u?=\n\t=?utf-8?q?9aXU5mIvymDWYyBAkf8x/CiwrrpGgGoUvQ+f80Ajc0HrY86rt+Cf3vFHxOOW0OxhK?=\n\t=?utf-8?q?lUcE62zuIfdkO1uTW7IgPR5z8iLB2KywxkY5EjiQV8N7UVcjfrDz6S0GW0uhRhVO3?=\n\t=?utf-8?q?jB6Az2gRGr1IjYRn4hhgjnovKiWwCisxzB6YbooB3vIofb228jCtFphQ+LatoZQjA?=\n\t=?utf-8?q?0EFq8ofmrVf1WH3rLwh74tRQM6QxUSXpWP/k71iehwBk1nL16+pPd5qEZtKQWX2R1?=\n\t=?utf-8?q?cvX61cTSmqUI+JOy+2SfJebli6CLWY1qzQPAlVh6aSdOX3yCgMUXqrRmdixLmv2lN?=\n\t=?utf-8?q?PKAffYZyN/8Uaz5SDp7qJ+VmjqCZ1QUCm1/UdmYzoo9D9LEn20fxWZpqWlcdXp1iH?=\n\t=?utf-8?q?/AihN3oFe60uVWMc9J65n5Udwj4zc/AQ6eqW9lOfYqfpIaqJgoGovz6s+EGlbz3+/?=\n\t=?utf-8?q?LeFrCST42vLZvhWwWdmeUrJ9QMYG8uFRvvBR/NwVzqCDjyovAfNbIuZ6LrtNQJYWM?=\n\t=?utf-8?q?ZF1G/X29S1lZ1Umhmrc+BAW/0gZtfnXZ4pgoG+ESnWeOpEBQDrh0rLQepW2YHSpQu?=\n\t=?utf-8?q?/pdZ1XJ/dKtMC8vCUIvPI9pkQ00RpHDQsQ7LBqwjAZGa/GeMcEp3slZC7y2vErdhC?=\n\t=?utf-8?q?ok80Sgyuqlqqh5soZLq0KUZlBBqqtAI8kjDVYnkB8Ll3u/8YcHlG0MHTrsAysa7WF?=\n\t=?utf-8?q?7BSXcnkHHDC/lDMUzWfg5LOSmOrw/EMM9AqYMUlBnPT9XbtvhftS8jqMA1492xfeR?=\n\t=?utf-8?q?QbfMkeO+ZCn2TcWAmMfFikjhu5EENOkGBU/c+4d0xzLDYzvnMTUBRm3zVXtO1aZvt?=\n\t=?utf-8?q?Nv4E/aRc2t3Sry3tYvxaivB7A2uy5sGRdXtmXkczQCdQHRCcW0Q2Lfp/K8f2BAHsg?=\n\t=?utf-8?q?DGLQND4iATJk8uBJU?=","X-MS-Exchange-AntiSpam-MessageData-1":"lkdbCdBo/NDBGjEcLlH87i0tqGu3qQ57XrM=","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n d2f1a4c2-6f10-4d36-c3d9-08de8a57cd6a","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:04.8425\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 wuRxXa5IhzMO9EkRlx4UjFwleAgtbhTuLiAAJVhAnTq62qvl+JVXXFz8pon3Ns5fvI3nqs2TVUUrmFWmgPFK+A==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DS5PPFA3734E4BA"},"content":"Tegra264 changes the register layout to accommodate wider fields\nfor duty and scale, and adds configurable depth which will be\nsupported in a later patch.\n\nAdd SoC data and update top comment to describe register layout\nin more detail.\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 | 75 ++++++++++++++++++++++++++++++++++++++++---------\n 1 file changed, 61 insertions(+), 14 deletions(-)","diff":"diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c\nindex 857301baad51..c1e8a804d783 100644\n--- a/drivers/pwm/pwm-tegra.c\n+++ b/drivers/pwm/pwm-tegra.c\n@@ -7,22 +7,60 @@\n  * Copyright (c) 2010-2020, NVIDIA Corporation.\n  * Based on arch/arm/plat-mxc/pwm.c by Sascha Hauer <s.hauer@pengutronix.de>\n  *\n- * Overview of Tegra Pulse Width Modulator Register:\n- * 1. 13-bit: Frequency division (SCALE)\n- * 2. 8-bit : Pulse division (DUTY)\n- * 3. 1-bit : Enable bit\n+ * Overview of Tegra Pulse Width Modulator Register\n+ * CSR_0 of Tegra20, Tegra186, and Tegra194:\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | Bit   | Field | Description                                               |\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | 31    | ENB   | Enable Pulse width modulator.                             |\n+ * |       |       | 0 = DISABLE, 1 = ENABLE.                                  |\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | 30:16 | PWM_0 | Pulse width that needs to be programmed.                  |\n+ * |       |       | 0 = Always low.                                           |\n+ * |       |       | 1 = 1 / 256 pulse high.                                   |\n+ * |       |       | 2 = 2 / 256 pulse high.                                   |\n+ * |       |       | N = N / 256 pulse high.                                   |\n+ * |       |       | Only 8 bits are usable [23:16].                           |\n+ * |       |       | Bit[24] can be programmed to 1 to achieve 100% duty       |\n+ * |       |       | cycle. In this case the other bits [23:16] are set to     |\n+ * |       |       | don’t care.                                               |\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | 12:0  | PFM_0 | Frequency divider that needs to be programmed, also known |\n+ * |       |       | as SCALE. Division by (1 + PFM_0).                        |\n+ * +-------+-------+-----------------------------------------------------------+\n  *\n- * The PWM clock frequency is divided by 256 before subdividing it based\n- * on the programmable frequency division value to generate the required\n- * frequency for PWM output. The maximum output frequency that can be\n- * achieved is (max rate of source clock) / 256.\n- * e.g. if source clock rate is 408 MHz, maximum output frequency can be:\n- * 408 MHz/256 = 1.6 MHz.\n- * This 1.6 MHz frequency can further be divided using SCALE value in PWM.\n+ * CSR_0 of Tegra264:\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | Bit   | Field | Description                                               |\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | 31:16 | PWM_0 | Pulse width that needs to be programmed.                  |\n+ * |       |       | 0 = Always low.                                           |\n+ * |       |       | 1 = 1 / (1 + CSR_1.DEPTH) pulse high.                     |\n+ * |       |       | 2 = 2 / (1 + CSR_1.DEPTH) pulse high.                     |\n+ * |       |       | N = N / (1 + CSR_1.DEPTH) pulse high.                     |\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | 15:0  | PFM_0 | Frequency divider that needs to be programmed, also known |\n+ * |       |       | as SCALE. Division by (1 + PFM_0).                        |\n+ * +-------+-------+-----------------------------------------------------------+\n+ *\n+ * CSR_1 of Tegra264:\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | Bit   | Field | Description                                               |\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | 31    | ENB   | Enable Pulse width modulator.                             |\n+ * |       |       | 0 = DISABLE, 1 = ENABLE.                                  |\n+ * +-------+-------+-----------------------------------------------------------+\n+ * | 30:15 | DEPTH | Depth for pulse width modulator. This controls the pulse  |\n+ * |       |       | time generated. Division by (1 + CSR_1.DEPTH).            |\n+ * +-------+-------+-----------------------------------------------------------+\n  *\n- * PWM pulse width: 8 bits are usable [23:16] for varying pulse width.\n- * To achieve 100% duty cycle, program Bit [24] of this register to\n- * 1’b1. In which case the other bits [23:16] are set to don't care.\n+ * The PWM clock frequency is divided by DEPTH = (1 + CSR_1.DEPTH) before subdividing it\n+ * based on the programmable frequency division value to generate the required frequency\n+ * for PWM output. DEPTH is fixed to 256 before Tegra264. The maximum output frequency\n+ * that can be achieved is (max rate of source clock) / DEPTH.\n+ * e.g. if source clock rate is 408 MHz, and DEPTH = 256, maximum output frequency can be:\n+ * 408 MHz / 256 ~= 1.6 MHz.\n+ * This 1.6 MHz frequency can further be divided using SCALE value in PWM.\n  *\n  * Limitations:\n  * -\tWhen PWM is disabled, the output is driven to inactive.\n@@ -56,6 +94,7 @@\n #define PWM_SCALE_SHIFT\t0\n \n #define PWM_CSR_0\t0\n+#define PWM_CSR_1\t4\n \n #define PWM_DEPTH\t256\n \n@@ -418,10 +457,18 @@ static const struct tegra_pwm_soc tegra186_pwm_soc = {\n \t.scale_width = 13,\n };\n \n+static const struct tegra_pwm_soc tegra264_pwm_soc = {\n+\t.num_channels = 1,\n+\t.enable_reg = PWM_CSR_1,\n+\t.duty_width = 16,\n+\t.scale_width = 16,\n+};\n+\n static const struct of_device_id tegra_pwm_of_match[] = {\n \t{ .compatible = \"nvidia,tegra20-pwm\", .data = &tegra20_pwm_soc },\n \t{ .compatible = \"nvidia,tegra186-pwm\", .data = &tegra186_pwm_soc },\n \t{ .compatible = \"nvidia,tegra194-pwm\", .data = &tegra186_pwm_soc },\n+\t{ .compatible = \"nvidia,tegra264-pwm\", .data = &tegra264_pwm_soc },\n \t{ }\n };\n MODULE_DEVICE_TABLE(of, tegra_pwm_of_match);\n","prefixes":["v2","6/7"]}