Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217944/?format=api
{ "id": 2217944, "url": "http://patchwork.ozlabs.org/api/patches/2217944/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-tegra/patch/20260331-t264-pwm-v4-6-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-6-c041659677cf@nvidia.com>", "list_archive_url": null, "date": "2026-03-31T02:12:18", "name": "[v4,6/7] pwm: tegra: Add support for Tegra264", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "2b4b091067139932ae074d98953a4b7862163ae7", "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-6-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/2217944/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217944/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-tegra+bounces-13452-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=iA1sMG1r;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-tegra+bounces-13452-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=\"iA1sMG1r\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.43.6", "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\n [IPv6:2600:3c0a:e001:db::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 4flBYn1YxYz1y1q\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 13:16:13 +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 87306302615C\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 02:13:07 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 6548D367F32;\n\tTue, 31 Mar 2026 02:13:07 +0000 (UTC)", "from SJ2PR03CU001.outbound.protection.outlook.com\n (mail-westusazon11012006.outbound.protection.outlook.com [52.101.43.6])\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 C208F367F2E;\n\tTue, 31 Mar 2026 02:13:05 +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:59 +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:59 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774923187; cv=fail;\n b=bhCyELfcWNpihir+cc98dHxhZgEyJGuOFa5pP5htRSU5ECN9o+Iwk8+T10CyF6ahvTWzDCRY6TH2U8nF9TmBWFH8zEXM6TCMNTtd5gIhgCUU0pXPgSm7pTq81ggJ8rJIY3LqYFhFnIYR0BPQuTj4ZWuOeVZXsAxrII6xHYRxmNA=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=rh51qmGYxlkDu9tQp92RS/gDGI5rzQPixex3+sq4ZqWgzzh4DsV4tosPRq/d3G4p+GnoAQljy8kVy3SVgbx8P/oi6ngRf/OgPNfbBqZ+C7Sevwn4+oGnXlnqSciHMWajt8qWwsJtPOHZR1gBgDtWHj2KtKbIuY7pj3V96Sn+IXlTFcnL6QK8Q6RaZcv3cT5yag8afbQhFf4NS9HdVZvSheuKVUmMi4WTn/OU9OJ1dArrYJsg+HqWfqsxkRJeWLXQ2kDi3RuM9pkadm6SJih9XwkB6bv3uT3Domf9bSJfo8hh9bk5W8J3kEBsAN/pWT0DXzsccxO+aZI+qGlVsQMxQA==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774923187; c=relaxed/simple;\n\tbh=97cs0BldpwMRZZ5VgVfzjCB4kvLz17mVWd9LccAZWq0=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=dcP51Kw2+aTNwFMIhgYfWFsK/kFPME+C2M+COMBa7t093GxLG8MCJl4bW5o0fQnE11cbm8hF0jSu6yN4whEVXSIk+CpK443HLQMgsp56TkedfcKKt8vFl9x21afykwF5kxIScrtMFEQL2LV0HNQlOD4tjEUxUlYpKYQqtBnZIZg=", "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=8ITbnE+EK7BwRi1mY+Xlbmebj2HNsHhVD8L26tDSRP8=;\n b=Xdei/Q2y+YQ8GpOalNixB5M+gKAxrm2dvC8k15bldS5HhYCpctM9sOfwStnpC5QyR1soYth0l7ReAU+vIfOll7whjEW+Xef8QV0UCrE1lXUej1koFkKWwPfX3n6FlmmwJ0tu4r6NDNtpUZnyqeBSIO5G3Irn+SjqPJm1uNFFSxfWDEwI1KBN/+WLnZJFMuiFoFuGVGtm4ZyRGZmQvcVlqNwCG8TNPd6E59JzOENCia22ag5ZT9OrIXaBVkwTj+QtE2z3h9984nzxxzaSA43qNNsEqHWHQvK69KyN04PxK//qkBl8O/OHiDl3ZeyRVkwCd8ttCpC1PyjRCKeGVPKQuA==" ], "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=iA1sMG1r; arc=fail smtp.client-ip=52.101.43.6", "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=8ITbnE+EK7BwRi1mY+Xlbmebj2HNsHhVD8L26tDSRP8=;\n b=iA1sMG1rjvXGSeSuW8os3k71JHJaoAV70K2W5HK6ofZJYoH8U2vgKjobTVI4/QQqcp3n1nED7lB8abJyG2tQf+bdyzOWMsSJRYK8gzgdtUScedtb1slRElClKDpQXeznSeTxMmUbxH/JEyoMch1wZxakrGNTPU3hH+Fpl2Khgy0bm/BKOm1C292QmkLCwUHqqGcAJM4Zxke9pjRrAIBenZNnhAqMYflfQxHH9zhUv+jYvZucPQJDj4tpeZIoTKJ33+gxPw83t42mu3kmnGmhzBqdiNPvx319bQWNH4zV/9KctddMd6aIOqgLu+y1A/RJD6dLgT1IRooovFL4bFNH7A==", "From": "Mikko Perttunen <mperttunen@nvidia.com>", "Date": "Tue, 31 Mar 2026 11:12:18 +0900", "Subject": "[PATCH v4 6/7] pwm: tegra: Add support for Tegra264", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "8bit", "Message-Id": "<20260331-t264-pwm-v4-6-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>, Mikko Perttunen <mperttunen@nvidia.com>", "X-Mailer": "b4 0.14.3", "X-ClientProxiedBy": "TY4P301CA0024.JPNP301.PROD.OUTLOOK.COM\n (2603:1096:405:2b1::11) To SJ2PR12MB9161.namprd12.prod.outlook.com\n (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_|CH3PR12MB8330:EE_", "X-MS-Office365-Filtering-Correlation-Id": "8cc0f7d1-404a-4861-7686-08de8ecb0783", "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\tMkjoDx7rrNJPMetr1Vu3UZLic/ocP5Qq1aO/q2Gtqf4ynuu9q9P9nMEhbR/tZZznn9hiFxvjWjDvcwZEGdtHTgvcn9aazWsWEAdUB5LlqTDfRYlnMfFqiJrHeUiTqvaqWr/Ok0HlgD7hxSg9gOvLAh7/yoq1HKL3Yb8qwOSRKEsbMZdUXdip2UigN1CVP5j/At2GBeikUz8R7Ubw35bzi/ocCkcUpBUmYR6qUUF3IbKRU6MO/o33n32G9aoB7pGjbuXhVdRcXumOBogorDPMmsb6icgd5UQeNrgNWSN8apO0x33N3Q8r1S9mQP9z3LkZ8/ZHCu9R/61XIs59wZoVJbjI2M9GgMQvSjn9YUDFzsqRhtYd+vq5Q/HF0H8CmwuAPO6xcaGK8d+tGnEd4zIod2uXnxx7vzvFX6YswzAqiGK7csrNLNxMDlmmGPojcwuyX6PNDxSoLKPrFUloUkwZu5z2zT1FYrRmKEkOt7DuKN0HlANib0LAzhE1LUUzjBLTmqM/Fi8wUskZsDNWJSJ1vB5W38geLSYRJ+kVHNhzxlUNnAFWHASvfX3hXZYiMj+IFDLprAzmMZGWkHwC++ofd4FRJ0NbUmu8tynvReidPXV+8e4nWHIFvurMIwxEHkx78Q8y1SMWmEuyZBG2gww7VH0qgjFMD84zzLN80B07tQ2haeUVL1rpQiw0lxQ17bj+Kl79aRmz/mnDlRcQI1phV4sef80pivuacx9HW3tkwNw=", "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?mLnwo6vlmH1g2agJeyTibmgxccFY?=\n\t=?utf-8?q?tawmtlFxIz4Pi+EetJ1iaiHZ7cMN++1/5tWOd8UxwrnkJ1x/e14HDQTokbSqJGmF1?=\n\t=?utf-8?q?ujrtBhIJ3L2+ZPppSeqxWG8MWHuZTUzCauqnvDGxUw7UZxtzk9+4sA1/TGxkwhumY?=\n\t=?utf-8?q?4nwaHsmCq5INx+RGADcGiaY3zKqsbD5JfD6St5bi+N8r/yQct5S5v3yd9rxXd2ff3?=\n\t=?utf-8?q?ciOcbtgXtsLltGQmZL9/qB5UDeNOk29b1EEPDdKWyinlnHU+J/akwhscoXAV5It5l?=\n\t=?utf-8?q?ma5TtyrqbCr2LxpzniEQI/3nUh0OMsXBMnkglaiK/+1hPmASNLfUB4F9whu3DOmpU?=\n\t=?utf-8?q?Zx9GQ4oD1Xa08iVtSKwMotqQfFdF0v/ByFpauBI+dI7YuQ4N4wLCh5vMjQgQVfwco?=\n\t=?utf-8?q?zlwKJIhKmhU30E9Lq1gc7dFfmQmG3H3pZl13jN4Q3dHxgXSRxt/SLN3hAEXQm9SPa?=\n\t=?utf-8?q?N9lIZ2RnXuYZuWedgISLx1PSgk33yUM3UoYPuPFQUvN7O/N5e0PHzlH/Xw1JRkNQG?=\n\t=?utf-8?q?vQt+Y9P5SLW3s7VQyQSPkwwG09KlAFLdXLEN36iLC3MqyYGa/m9jZ5HeTKXwUBuAN?=\n\t=?utf-8?q?E56b9qJa9Oxd5wgzJRwryNk6IySAzdfOizzuUbtolD07EbZQ3L2ntHh+Iz7Ph7hmn?=\n\t=?utf-8?q?4j+iJEaRpTnzrV822r5ZXQsUtp/9ZiKNGdIP8XFn6P4kXwFhxdai3KGor+XoaWTZv?=\n\t=?utf-8?q?sPW2Cj09A9G/pfrXT1dH/Kez+mwnhIgrlbvr44vnmSWhi0G5q50BqYVoaWLpYDpJU?=\n\t=?utf-8?q?TpsxHHdppO7faN9kP2PEBo4Byt6xux1qDx7wtWStfAptC/4XI9Zm5PwTpjqNk7h3A?=\n\t=?utf-8?q?pSUhEGbrx1a2VcJJm/MG1BYtVCubpGpuryKSCH6GN97i8X6yiSKR/XeHzHdU/oMng?=\n\t=?utf-8?q?hp82cbQjKb4zCAYn2ATjqaGvjV86g6ICaZg/cniDgsjT9Uz2jy/QrZbZ3kJcAzry3?=\n\t=?utf-8?q?CKeu7OBnZmquFdLKLmItB3Xk+hG7IryM8CIyBvagQgKWGtbLYHKPKhsO5Q3xgSpPp?=\n\t=?utf-8?q?5487xIp3rg8XiIEzlJHt2tFFYu06WhBAK3suDLsfROlc6MWuRgwVxqk8zKd6FTYOo?=\n\t=?utf-8?q?tn2xDwWAHqnnl3u+2HAF1PpBhjH7x+rvOeKDoHRrwYB9sxVuLGCkeQqis1AG5zcn5?=\n\t=?utf-8?q?8Qcb5wbfXbTd61m8be0kpSpd40/UtuB4CHYpU/Su7fhcC46qa3qkSRolo/UuNjdIL?=\n\t=?utf-8?q?lBOu95dnBk5x5EfHBKQS2M8om96ZTPdfb4nyIFbSodM5BXjFGIFWb8IFIOFxxTfPQ?=\n\t=?utf-8?q?D6dDIoyKYvlxYkncOiw+q7AZJn4xtQ/A/2IiTBlR1dxo38aFOtOmNI01ixYs2maI2?=\n\t=?utf-8?q?eJbx/omt2DHhCMSHE4Q1Zv3JqrsijrajP1X1ijHJwjEm0m8C5iCgOeOCXVPUacvtg?=\n\t=?utf-8?q?b5RLf/ObPhHRsP5n4XrNbRmMMM8SIl64W8V8biF3Q2cBpI0U1A+ygSo4MC0N9sTqJ?=\n\t=?utf-8?q?/V+6d6thUi9QI76tzZstjSGLTpkd+b87OeyEoSX83cnarxzziaFMju1ZyDIUlD3/B?=\n\t=?utf-8?q?vFiFQxpNgxRLB/ysmKh2xjgDz3kSQVG1EjEt049np02sXoa+msEf+mUOY5Ubq1X/t?=\n\t=?utf-8?q?FobC1eTQJAW3co/1RfvyZ/3Eh3dVQ6wqxr3sXDGIIrchAgKFB1d/vzgO3ZnoLNbLt?=\n\t=?utf-8?q?6k7Z7avBXIsqsbxzl1FUb51gx9cfG/YvSys9wryEF9MB8fn9r/G65vkTpaS4aXwRq?=\n\t=?utf-8?q?/0hZcJXz0kCS8JVfV?=", "X-MS-Exchange-AntiSpam-MessageData-1": "jvcLV7DcvW9pYRQHyw7e/DW0hyK24kEvsbg=", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 8cc0f7d1-404a-4861-7686-08de8ecb0783", "X-MS-Exchange-CrossTenant-AuthSource": "SJ2PR12MB9161.namprd12.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "31 Mar 2026 02:12:59.0826\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 ls6Qg/6SA9FdeyFuwUT2aeOiCVybb0iD8nt7rHhE38mgSZayvrbnq1ujTKUM5r5dFEiroh9z/VzQqGSscgrpAA==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CH3PR12MB8330" }, "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 d7968521fbfd..c9d30724e339 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": [ "v4", "6/7" ] }