Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/806500/?format=api
{ "id": 806500, "url": "http://patchwork.ozlabs.org/api/patches/806500/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/1503915996-11495-7-git-send-email-rajesh.bhagat@nxp.com/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1503915996-11495-7-git-send-email-rajesh.bhagat@nxp.com>", "list_archive_url": null, "date": "2017-08-28T10:26:35", "name": "[U-Boot,v3,6/7] board: common: vid: Add support for LTC3882 voltage regulator chip", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "7524d583ec64fa49c7d9b8c559cdd8c6a5762008", "submitter": { "id": 68498, "url": "http://patchwork.ozlabs.org/api/people/68498/?format=api", "name": "Rajesh Bhagat", "email": "rajesh.bhagat@nxp.com" }, "delegate": { "id": 2666, "url": "http://patchwork.ozlabs.org/api/users/2666/?format=api", "username": "yorksun", "first_name": "York", "last_name": "Sun", "email": "yorksun@freescale.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/1503915996-11495-7-git-send-email-rajesh.bhagat@nxp.com/mbox/", "series": [ { "id": 128, "url": "http://patchwork.ozlabs.org/api/series/128/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=128", "date": "2017-08-28T10:26:29", "name": "Add VID support for QDS and RDB platforms", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/128/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/806500/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/806500/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)", "spf=fail (sender IP is 192.88.168.50)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;" ], "Received": [ "from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xgp9K3Bcrz9s8P\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 28 Aug 2017 20:36:53 +1000 (AEST)", "by lists.denx.de (Postfix, from userid 105)\n\tid DDC44C22419; Mon, 28 Aug 2017 10:33:44 +0000 (UTC)", "from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 98C6DC224DF;\n\tMon, 28 Aug 2017 10:27:41 +0000 (UTC)", "by lists.denx.de (Postfix, from userid 105)\n\tid 7A9C0C2249A; Mon, 28 Aug 2017 10:27:37 +0000 (UTC)", "from NAM03-CO1-obe.outbound.protection.outlook.com\n\t(mail-co1nam03on0088.outbound.protection.outlook.com [104.47.40.88])\n\tby lists.denx.de (Postfix) with ESMTPS id 57FE6C224EA\n\tfor <u-boot@lists.denx.de>; Mon, 28 Aug 2017 10:26:54 +0000 (UTC)", "from BN3PR03CA0099.namprd03.prod.outlook.com (10.174.66.17) by\n\tBN6PR03MB3315.namprd03.prod.outlook.com (10.174.233.144) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1385.9; Mon, 28 Aug 2017 10:26:51 +0000", "from BY2FFO11FD045.protection.gbl (2a01:111:f400:7c0c::179) by\n\tBN3PR03CA0099.outlook.office365.com (2603:10b6:400:4::17) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id\n\t15.1.1362.18 via Frontend Transport; Mon, 28 Aug 2017 10:26:51 +0000", "from tx30smr01.am.freescale.net (192.88.168.50) by\n\tBY2FFO11FD045.mail.protection.outlook.com (10.1.15.177) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1341.15\n\tvia Frontend Transport; Mon, 28 Aug 2017 10:26:51 +0000", "from ubuntu1604.ap.freescale.net (ubuntu1604.ap.freescale.net\n\t[10.232.133.7])\n\tby tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv7SAQZfQ021815; Mon, 28 Aug 2017 03:26:49 -0700" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-0.0 required=5.0 tests=BAD_ENC_HEADER,\n\tRCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,\n\tSPF_HELO_PASS\n\tautolearn=unavailable autolearn_force=no version=3.4.0", "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.168.50 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;", "From": "Rajesh Bhagat <rajesh.bhagat@nxp.com>", "To": "<u-boot@lists.denx.de>", "Date": "Mon, 28 Aug 2017 15:56:35 +0530", "Message-ID": "<1503915996-11495-7-git-send-email-rajesh.bhagat@nxp.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1503915996-11495-1-git-send-email-rajesh.bhagat@nxp.com>", "References": "<1503915996-11495-1-git-send-email-rajesh.bhagat@nxp.com>", "X-EOPAttributedMessage": "0", "X-Matching-Connectors": "131483896115463762;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()", "X-Forefront-Antispam-Report": "CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(575784001)(86362001)(50226002)(8656003)(81156014)(8676002)(81166006)(2906002)(8936002)(48376002)(33646002)(356003)(50466002)(5660300001)(5003940100001)(305945005)(85426001)(2351001)(4326008)(106466001)(104016004)(498600001)(105606002)(6916009)(626005)(47776003)(189998001)(68736007)(53936002)(77096006)(2950100002)(54906002)(97736004)(36756003)(76176999)(110136004)(6666003)(50986999);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB3315;\n\tH:tx30smr01.am.freescale.net; \n\tFPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; ", "X-Microsoft-Exchange-Diagnostics": [ "1; BY2FFO11FD045;\n\t1:jFNnBu29x1p3thX8wG2tybwKu5XpWq7lbzoOnerBV+Q3Ecxpb9TkoqUhFnXF7QT8ndGrt2JVsP4OX2Q8ruXhClmvZbYFGl0gv/aGoE31jdYiqeqkdv4+szXded/SlYqw", "1; BN6PR03MB3315;\n\t3:IYUbWeOD2ZX/lSiFdIFMNWXHL7rKM1idBjFibW9fizNUPbwG7CbMikX6RR8D0QUW1KappId1ZjP3+mQi2E6VmavWuYGW3Blx2GSTXPMvNQY4N+yXGzx9ZIofWN38/hS1NogoNHe+I1oni2kvJ1kiRpF+w1W01EbZTZr8PngBRUUAcWqwbPzqzhhp7haBX58Dn3G6T5dYyD2oVSCfPzeRrK/ZSvBtPIB59lwJ5O+FM2nEoOBRmprLv/3q/4u58F4Ja1kIdvtqVeBl45aFgzN2hpfSn0CGdflP8hcjrraexnmogb6MdheMKfYZM+DknTa2UwT0HPacyYZXpkO02Ycs6F7rFiWNczIughZ30TL1iyE=;\n\t25:KwcaflwfuAuuZ57bmCwuVpKHoOfJPCEc5mCciReBoJsst1jlYXnBT8nBLcWUCTgX1wwbxr6ilzKKA2nZHhmwNTHvId0GaSp7ZGho1X2xrd5AgWuA9dxwuxW0a0MF6IYGsgjoqpqtKzFgzWRUpbUipetwIQaCrRSWDHAjG8UB51PpystccHGPgTpoWXpRD5qDJ0aVbjyfv1alnkA3m0qU4kd/RXYxSVefQm6Als5bBLvNKHyvTpQOdNwfAQNW/h7Rks34kgeImfb4EVnBbWI8fh10xmJRCmkM0FVyjOSC/zKry6AZLdqKxYnTDNRmjXUQuq1F6joR+r8NbZz8F9QEWA==", "1; BN6PR03MB3315;\n\t31:rNnsreUPGQMBAA1/tJmomfgGd/y7bcTOMk+Zlpm1LemHSFNZ3y9CXy2Pe/Ni1NGjBLJM+0cb+N/WEVgaL5uZtdf3NlGKwTOLC8mef5649UwGVp8qkcqFSQhXFSo1dwEFr0Go0Tx9n8v+06+EP+u0nMocweYByPympl5n7GfyqrbLkzoDqex82pGEywVwQljsD1zKou70zlNGOHTFGEAFqxO9mgkfVf8O0FK8bdCn6Gg=;\n\t4:m4wUw0b22DuGiPf+A+F5pvAnr2rbJxDZQCtlT8GAFFByGeuB+Wtrx/NQ1XF72mgMuRukDmOiqDOnHyvE7Fzh7R2k9X1zEFbuNaOl+vU/gsttwh5XcvDrP0G4/xaiM0/JlkZU5vB5U0bi15t9SXJpLBIQODNfggJmeIt/t++aVBzfzeVG4Zp5n599329k8/7SnQsjImuA45ybgePx2lVCSXPa+qfTyToslQqihAwg9ntJxNbpXB2nhNdPjUQSHy4vQWyCHR/nZ5Ki157BmTdzp+LPBHOM55U3itt16UKLL6w=", "=?us-ascii?Q?1; BN6PR03MB3315;\n\t23:dHD9U0K/2jGjPW/ZLCKxXdfgD0Qq39QJjtJ07RsUP?=\n\tdMpFWzMzocLCfruw8N1NV0MLzQg1igBYgtaTW/Gr4rkrHYjYTyg5cFqBUqL0FMyxPR8zNEr34xhgDaDsSIsxdm/g4pPS0bJFwOAZLT0B+fXv4qAesJ40PoFKvMLA6+ovohTpKJR3E9VAoR7oh9XEb3QWy+zGojBHllf08Yni6IN5M6bCy4G9iIE2RmFLcJkyXkbciy4O1Pn7K/M371R8PFz9mzUijVi6Wg73r0/V5kKnoWhya26AVsuzAEK63nEnc8BcmVzWK6hPGsUsxdSdxdD7JpzDLFgGE1YErSQFSimrCI65QLagWHNbl0au1ZYgoVFUAGHaiY1r6AubLhgtNfdVnQa1NybhXivA3La4DI6cthva/166eEa0vxqid09QSNlrAZoRYpaLB/pyJRaMpmLVS6nAxLvHz38hg9Msma3JLGVwh60hmK9Y2m+LopQynMvthupl/bnkCLr8xx73NK+BODFAGozcf8qlFB0hWifGAAh1AjFG6QlOv4I6UHEYWGmh0H5FOiVM61jA347QCZgT5wmg+DMPZbzs+V4C9CXMjBBv9wfeD0mf37hZEw/gbwWSkh6y9MWuW9gtYMO9iJYpO/g+1afpEag/3YtIjcbl48zMb9HCk6nAhJlOfcoUtNP4+zv8jC4T3WOZQyfVKZr9gq5OzCVAslQi6lja8vM0lnD2Siw/fUQrCOoEPnIsLpYBi1wywgL0Mg23zh8V9pFDnqwseqdNGSCw0Ao3qHYVVC64F90cg/9hy6bBIpFzrbbJc0cbC5DzSlYccBUVnAZZBAE/gsv7Iar0AEMzarzlIAKDfXTuRjPeNFPr4c6r2pY0vxTtEkl6iBpno4DubzzPdo0sLFLnvznVFih+YoSXAVPU22SulgWoI2RpHZaoJcuk8YxKDXhcm5qcS5Iwvw/2xWyGJ8mtiV7vgq0jMf8WKQR+DBbOWqf7byxImvRRYBZ1N5632A8YPv/odm5BvX+pqqMlF1shE4/eqi9akLMD+spH8/go6Su5fmuyooUomEuT1TT1HFrNgJVUDC1t/nId5EClvGPFirmQxfn2ISyWhdCgjQ9Db27ZEFbaRaNaAZE3sDA6S4Ym3bCS0XfRwWCpLUT4xaFH8hyZGjcCFSjhQ==", "1; BN6PR03MB3315;\n\t6:AMYd8QpvNGe2eNtgrr4MiiO1qrDQmmTwts5o9w590F7lCA0FHk3OXvR4PgazSS0fhxXk4rYrRoGn90yjN63eUKwK31Wpv3a7N7jX4XG8YXiN9kmqOFb/MAKWdJJPNPRJ/JxUO9yhU5WZrVqsnd2BlhVmD/j8bpFEsfWh9b13Q9peNZiGKqvimtV0mv2cXkwrxMWIKF08qJTsI6u8a2ZZMOvdGnhJCXpy6kODOH2FFjU1Q4NAyDMlSuDRsGAy7zbc/GB183WBkB2/ipuII3CvRDF2T8kOXyflppiWtz5BDQxYYsfgOf1sDwTPzh9BG+a34nYIbqT3w+pwTWDtcYfqug==;\n\t5:sCOb2304533P9ZKjtb+1lBi8ZNXdXXnNmCtY6VDSPcolGxyD5qwM1qtYaAGeiVD+Lajr565sPPvyItaROIVMwtL3qik2GmxUPFueQUGEaKoQxUXyOPuUyv9Tt+DRGI9jN1/sjWdPfAdac9G4ccrKCg==;\n\t24:fJXX/u7KptCfo39dH4/zJAcVnEuMn6P/1tEMEimyEP8tvPnmd3aGnTxteSe7zGnkoR7NlRAp4sbN8SNy+97qbYaGuRDkc4IMB5Ud5FiWWvo=;\n\t7:AAggxE64PDxaHfuRAI3RfgWJ5cFIvn++uDz6H2wbiZQuxT7Ud3JumybIts5ADIzcj0+lMEU0r56uhuVJyUv+2Bq+LRY9enb0PGz6ejLlj3FuzS1z8NadvtuZzVz+UQkuD7u9OQVnGA5WjBpWR3QQHC/p04qePI2a7PNxB8Qo5JLHP9EypKl1KjWxrXkNwZxfcSwGeFxiBJ5BbhpTSLVEBMaxDQ+yKBjJ1VRFAvcJgyI=" ], "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id": "e807f4aa-ff80-4c8a-24f4-08d4edff4c1a", "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:BN6PR03MB3315; ", "X-MS-TrafficTypeDiagnostic": "BN6PR03MB3315:", "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);", "X-Microsoft-Antispam-PRVS": "<BN6PR03MB3315AC0B67DF2537C8704AA8E39E0@BN6PR03MB3315.namprd03.prod.outlook.com>", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(13016025)(5005006)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6096035)(20161123565025)(20161123563025)(20161123556025)(20161123561025)(20161123559100)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:BN6PR03MB3315; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:BN6PR03MB3315; ", "X-Forefront-PRVS": "0413C9F1ED", "SpamDiagnosticOutput": "1:99", "SpamDiagnosticMetadata": "NSPM", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "28 Aug 2017 10:26:51.3435\n\t(UTC)", "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.168.50]; \n\tHelo=[tx30smr01.am.freescale.net]", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN6PR03MB3315", "Cc": "albert.u.boot@aribaud.net", "Subject": "[U-Boot] [PATCH v3 6/7] board: common: vid: Add support for LTC3882\n\tvoltage regulator chip", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.18", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<http://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>" }, "content": "Restructures common driver to support LTC3882 voltage regulator\nchip.\n\nSigned-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>\nSigned-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>\n---\nChanges in v3:\n Restructured LS1088A VID support to use common VID driver\n Added the coding for voltage in comments i.e. 1/4096V\n Removed APIs getLSB/MSB and used bit operations.\n\nChanges in v2:\n Checkpatch errors fixed\n\n .../include/asm/arch-fsl-layerscape/immap_lsch3.h | 9 ++-\n board/freescale/common/vid.c | 75 ++++++++++++++++++++++\n include/configs/ls1088aqds.h | 16 +++++\n include/configs/ls1088ardb.h | 15 +++++\n 4 files changed, 113 insertions(+), 2 deletions(-)", "diff": "diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h\nindex 2706ea8..1394b75 100644\n--- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h\n+++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h\n@@ -184,10 +184,15 @@ struct ccsr_gur {\n \tu32\tgpporcr3;\n \tu32\tgpporcr4;\n \tu8\tres_030[0x60-0x30];\n-#define FSL_CHASSIS3_DCFG_FUSESR_VID_SHIFT\t2\n #define FSL_CHASSIS3_DCFG_FUSESR_VID_MASK\t0x1F\n-#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_SHIFT\t7\n #define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_MASK\t0x1F\n+#if defined(CONFIG_ARCH_LS1088A)\n+#define FSL_CHASSIS3_DCFG_FUSESR_VID_SHIFT\t25\n+#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_SHIFT\t20\n+#else\n+#define FSL_CHASSIS3_DCFG_FUSESR_VID_SHIFT\t2\n+#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_SHIFT\t7\n+#endif\n \tu32\tdcfg_fusesr;\t/* Fuse status register */\n \tu8\tres_064[0x70-0x64];\n \tu32\tdevdisr;\t/* Device disable control 1 */\ndiff --git a/board/freescale/common/vid.c b/board/freescale/common/vid.c\nindex cdf877d..197e08e 100644\n--- a/board/freescale/common/vid.c\n+++ b/board/freescale/common/vid.c\n@@ -171,6 +171,35 @@ static int read_voltage_from_IR(int i2caddress)\n }\n #endif\n \n+#ifdef CONFIG_VOL_MONITOR_LTC3882_READ\n+/* read the current value of the LTC Regulator Voltage */\n+static int read_voltage_from_LTC(int i2caddress)\n+{\n+\tint ret, vcode = 0;\n+\n+\t/* select the PAGE 0 using PMBus commands PAGE for VDD*/\n+\tret = i2c_write(I2C_VOL_MONITOR_ADDR,\n+\t\t\tPMBUS_CMD_PAGE, 1, PWM_CHANNEL0, 1);\n+\tif (ret) {\n+\t\tprintf(\"VID: failed to select VDD Page 0\\n\");\n+\t\treturn ret;\n+\t}\n+\n+\t/*read the output voltage using PMBus command READ_VOUT*/\n+\tret = i2c_read(I2C_VOL_MONITOR_ADDR,\n+\t\t PMBUS_CMD_READ_VOUT, 1, (void *)&vcode, 2);\n+\tif (ret) {\n+\t\tprintf(\"VID: failed to read the volatge\\n\");\n+\t\treturn ret;\n+\t}\n+\n+\t/* Scale down to the real mV as LTC resolution is 1/4096V,rounding up */\n+\tvcode = DIV_ROUND_UP(vcode * 1000, 4096);\n+\n+\treturn vcode;\n+}\n+#endif\n+\n static int read_voltage(int i2caddress)\n {\n \tint voltage_read;\n@@ -178,6 +207,8 @@ static int read_voltage(int i2caddress)\n \tvoltage_read = read_voltage_from_INA220(i2caddress);\n #elif defined CONFIG_VOL_MONITOR_IR36021_READ\n \tvoltage_read = read_voltage_from_IR(i2caddress);\n+#elif defined CONFIG_VOL_MONITOR_LTC3882_READ\n+\tvoltage_read = read_voltage_from_LTC(i2caddress);\n #else\n \treturn -1;\n #endif\n@@ -278,6 +309,42 @@ static int set_voltage_to_IR(int i2caddress, int vdd)\n \tdebug(\"VID: Current voltage is %d mV\\n\", vdd_last);\n \treturn vdd_last;\n }\n+\n+#endif\n+\n+#ifdef CONFIG_VOL_MONITOR_LTC3882_SET\n+/* this function sets the VDD and returns the value set */\n+static int set_voltage_to_LTC(int i2caddress, int vdd)\n+{\n+\tint ret, vdd_last, vdd_target = vdd;\n+\n+\t/* Scale up to the LTC resolution is 1/4096V */\n+\tvdd = (vdd * 4096) / 1000;\n+\n+\t/* 5-byte buffer which needs to be sent following the\n+\t * PMBus command PAGE_PLUS_WRITE.\n+\t */\n+\tu8 buff[5] = {0x04, PWM_CHANNEL0, PMBUS_CMD_VOUT_COMMAND,\n+\t\t\tvdd & 0xFF, (vdd & 0xFF00) >> 8};\n+\n+\t/* Write the desired voltage code to the regulator */\n+\tret = i2c_write(I2C_VOL_MONITOR_ADDR,\n+\t\t\tPMBUS_CMD_PAGE_PLUS_WRITE, 1, (void *)&buff, 5);\n+\tif (ret) {\n+\t\tprintf(\"VID: I2C failed to write to the volatge regulator\\n\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Wait for the volatge to get to the desired value */\n+\tdo {\n+\t\tvdd_last = read_voltage_from_LTC(i2caddress);\n+\t\tif (vdd_last < 0) {\n+\t\t\tprintf(\"VID: Couldn't read sensor abort VID adjust\\n\");\n+\t\t\treturn -1;\n+\t\t}\n+\t} while (vdd_last != vdd_target);\n+\treturn vdd_last;\n+}\n #endif\n \n static int set_voltage(int i2caddress, int vdd)\n@@ -286,6 +353,8 @@ static int set_voltage(int i2caddress, int vdd)\n \n #ifdef CONFIG_VOL_MONITOR_IR36021_SET\n \tvdd_last = set_voltage_to_IR(i2caddress, vdd);\n+#elif defined CONFIG_VOL_MONITOR_LTC3882_SET\n+\tvdd_last = set_voltage_to_LTC(i2caddress, vdd);\n #else\n \t#error Specific voltage monitor must be defined\n #endif\n@@ -452,6 +521,11 @@ int adjust_vdd(ulong vdd_override)\n \t}\n \tvdd_current = vdd_last;\n \tdebug(\"VID: Core voltage is currently at %d mV\\n\", vdd_last);\n+\n+#ifdef CONFIG_VOL_MONITOR_LTC3882_SET\n+\t/* Set the target voltage */\n+\tvdd_last = vdd_current = set_voltage(i2caddress, vdd_target);\n+#else\n \t/*\n \t * Adjust voltage to at or one step above target.\n \t * As measurements are less precise than setting the values\n@@ -469,6 +543,7 @@ int adjust_vdd(ulong vdd_override)\n \t\tvdd_last = set_voltage(i2caddress, vdd_current);\n \t}\n \n+#endif\n \tif (board_adjust_vdd(vdd_target) < 0) {\n \t\tret = -1;\n \t\tgoto exit;\ndiff --git a/include/configs/ls1088aqds.h b/include/configs/ls1088aqds.h\nindex 3547b0b..8ae98e1 100644\n--- a/include/configs/ls1088aqds.h\n+++ b/include/configs/ls1088aqds.h\n@@ -277,6 +277,22 @@ unsigned long get_board_ddr_clk(void);\n #define I2C_MUX_CH_DEFAULT\t\t0x8\n #define I2C_MUX_CH5\t\t\t0xD\n \n+#define I2C_MUX_CH_VOL_MONITOR 0xA\n+\n+/* Voltage monitor on channel 2*/\n+#define I2C_VOL_MONITOR_ADDR 0x63\n+#define I2C_VOL_MONITOR_BUS_V_OFFSET 0x2\n+#define I2C_VOL_MONITOR_BUS_V_OVF 0x1\n+#define I2C_VOL_MONITOR_BUS_V_SHIFT 3\n+\n+/* PM Bus commands code for LTC3882*/\n+#define PMBUS_CMD_PAGE 0x0\n+#define PMBUS_CMD_READ_VOUT 0x8B\n+#define PMBUS_CMD_PAGE_PLUS_WRITE 0x05\n+#define PMBUS_CMD_VOUT_COMMAND 0x21\n+\n+#define PWM_CHANNEL0 0x0\n+\n /*\n * RTC configuration\n */\ndiff --git a/include/configs/ls1088ardb.h b/include/configs/ls1088ardb.h\nindex d943fa4..86fa033 100644\n--- a/include/configs/ls1088ardb.h\n+++ b/include/configs/ls1088ardb.h\n@@ -210,6 +210,21 @@\n \n #define CONFIG_SYS_LS_MC_BOOT_TIMEOUT_MS 5000\n \n+#define I2C_MUX_CH_VOL_MONITOR 0xA\n+/* Voltage monitor on channel 2*/\n+#define I2C_VOL_MONITOR_ADDR 0x63\n+#define I2C_VOL_MONITOR_BUS_V_OFFSET 0x2\n+#define I2C_VOL_MONITOR_BUS_V_OVF 0x1\n+#define I2C_VOL_MONITOR_BUS_V_SHIFT 3\n+\n+/* PM Bus commands code for LTC3882*/\n+#define PMBUS_CMD_PAGE 0x0\n+#define PMBUS_CMD_READ_VOUT 0x8B\n+#define PMBUS_CMD_PAGE_PLUS_WRITE 0x05\n+#define PMBUS_CMD_VOUT_COMMAND 0x21\n+\n+#define PWM_CHANNEL0 0x0\n+\n /*\n * I2C bus multiplexer\n */\n", "prefixes": [ "U-Boot", "v3", "6/7" ] }