From patchwork Tue Nov 14 07:06:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajesh Bhagat X-Patchwork-Id: 837709 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3ybdxL5nnVz9s7F for ; Tue, 14 Nov 2017 18:12:22 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 898FBC21F27; Tue, 14 Nov 2017 07:09:07 +0000 (UTC) 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, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 58DABC21EFB; Tue, 14 Nov 2017 07:08:26 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 1FDC8C21EA2; Tue, 14 Nov 2017 07:06:52 +0000 (UTC) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0042.outbound.protection.outlook.com [104.47.42.42]) by lists.denx.de (Postfix) with ESMTPS id 7863DC21EFB for ; Tue, 14 Nov 2017 07:06:47 +0000 (UTC) Received: from CY4PR03CA0089.namprd03.prod.outlook.com (2603:10b6:910:4d::30) by SN2PR03MB2367.namprd03.prod.outlook.com (2603:10b6:804:e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.218.12; Tue, 14 Nov 2017 07:06:44 +0000 Received: from BL2FFO11FD019.protection.gbl (2a01:111:f400:7c09::159) by CY4PR03CA0089.outlook.office365.com (2603:10b6:910:4d::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.218.12 via Frontend Transport; Tue, 14 Nov 2017 07:06:44 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD019.mail.protection.outlook.com (10.173.161.37) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.197.9 via Frontend Transport; Tue, 14 Nov 2017 07:06:44 +0000 Received: from ubuntu1604.ap.freescale.net (ubuntu1604.ap.freescale.net [10.232.133.7]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id vAE76LKv030592; Tue, 14 Nov 2017 00:06:41 -0700 From: Rajesh Bhagat To: Date: Tue, 14 Nov 2017 12:36:46 +0530 Message-ID: <1510643206-28716-8-git-send-email-rajesh.bhagat@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1510643206-28716-1-git-send-email-rajesh.bhagat@nxp.com> References: <1510643206-28716-1-git-send-email-rajesh.bhagat@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131551168045271754; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7966004)(39860400002)(376002)(39380400002)(346002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(68736007)(50466002)(54906003)(5660300001)(47776003)(50226002)(76176999)(6916009)(4326008)(105606002)(106466001)(16586007)(2950100002)(50986999)(2906002)(305945005)(8656006)(498600001)(97736004)(81156014)(8676002)(104016004)(48376002)(5003940100001)(8936002)(77096006)(2351001)(81166006)(33646002)(86362001)(53936002)(85426001)(36756003)(356003)(316002)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2367; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD019; 1:LBRGk1KOv1WSrl516V5cK5+cF6UHQZ8up0f3ClaKRy42Pk5R6HeiHzItur1INErNEq49OFh7bfZZZnedj9mj32gqXvx8hiqAK8scQdoXYMpbF8qKPgvqrOcVk+l+ZOtQ MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1b50cd64-1c58-48a7-e96a-08d52b2e4394 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4628075)(201703131517081)(2017052603258); SRVR:SN2PR03MB2367; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2367; 3:nmMpBEGxsLty4uP05aFMU7SwPp8NaSVEn+kTB3LGUJySqJ59iv45z+x5HoQ0wkMuUm0BsxXKpRJK9A3lFQnGbTIP2GI3WmbqObwHJQ7Reb3t+Jo/ADAs8cmCWjJv9jHm58nc13hDo5ZfpCChkFVo0P17pS155Kf6lrOT/c8+mt1cMCgvnuE5IqVAk45gzwmGw+inEQuNEuz4AMKwW/jfEA9NuCPOo2+FdunOfcAjQw4VwPRSS875B3qN9DGyHN4gBDcsoiX0lVy25l2fRkh2lt9XIym1KvLV/LNdY0dRDwk8p6hGEAwCEgKvE8s867chwTWhablTz/1RpDxcLQI4o8H74NQs+G/oJaXy+CyEavY=; 25:wIZTUA4Y3OW2feABRGwUrjYly5gx9F8G6nuTEy+0qgnGDKx0HnunL0GzN/yxsX1hqERoAZOUu/At4KU5rCSjFwZK8GCNEAphi7vIih+v08RV4fX8ia+3XsedBqnbhpMQNk/7CIBjDF2DEjzBUZl49qfqJJo+Ci4cBi65qCBbzIFYqBTYfiZCpGsE76Uub8cpq3o7lqSozQOK6HR2lfQdej2MkEZc9mF1res384MgRXlh8ao9c4VBIwRV4aYWxrGsaXNmAC2q020MQ/BRclONdPhh0ntuHPgUBy/qrP8/mGjpDokUIUtyIPqFBtRCi8JOXQonhK1CIAWeK6Att4EPzA== X-MS-TrafficTypeDiagnostic: SN2PR03MB2367: X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2367; 31:2Y0Zv1+Q6lt4irTauzcG22YcsACU89Y9LLMo80dy5GSf6Zn+f1I2GzNQK5NqxHxvil1yiKx2/KsQ/CGKPMPLyxwNrG8EGmk5vrwbc4c8F9eyhOAK0kz5Bytg8CfchkaFmlW8IkF+o7t0eel22G5ZL4NSo816BLUeG5ZWQRF7hfyAiLhnRXbA/vma7VpSeBh3g+AWt1GsFX8vMg/Df5/8BBacQqGvRoGwj9QrfN6X/CI=; 4:OrmqedaaKAZ8yztX2M6WuV/IoXZLB3MCfYtD+LKCFryKVq/RF/dOXfr8vPd+WF6umAkZcu4VBGTzmUcuWHa6xT51PGKGSffeZoJSgHvvVt08pBY8dkrnNml3FipJkbrhVB+Qi/la2PTdyt3w1sY3q4UcNqatJbFWewovUXZEswewGlFFassrIAm0kxY0c/4H+IdH+aRgBC+Zz8udySMrKR9Phuvr/rDPQMGBNLbdbak3B86D9RKQlbUL4E3GhL1+KI1f93X4noOoNPh84C8lgeRxxJbsAszi/OoIXiHYHl2AQFFolUd41eG/AF4ApvPh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(3231022)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123559100)(20161123565025)(20161123556025)(20161123561025)(20161123563025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR03MB2367; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR03MB2367; X-Forefront-PRVS: 04916EA04C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR03MB2367; 23:WOtS8nwAAOGUjWNRZOld5K5Fi3xqq/ja+MabgWSvX?= JAkmSt0XcJ2Bh5bcBVe1MEjuW04qjmpKHNgJklalNHbITBAeBYghUzASClslJto7/gEW5TormeXlP52d7ou3NcwtixXHKu1ginb+NCYLevPrXwXYAItsWJR3eBSf+nZFiXPXQMTYk/jeya0rJkzDb3bWclZvhY8q9dnmmrrhXu6+6sHjiv1Po+zm7m0p7sRz7Ca+000j4AqeGH9WrBuBq8POcfvFmdIA+TRIfBToutY83T9oGUnKQ5NpPXn2XrpstmbSek6bMR0DksdU7VQ+lCIShnD0tk4JXGB7UmLgn7hgrEwreBz4NGVk6MgTjInh6FZDJSY/0Ac7TV5oC05Q8mk44XFXe3MdWGGoJPqNZ6nRliBf11W5eZgwWqoZ9V41Mt4KN8pRPAhYYbroSPj7/LxfuOd9Fo9dEo3c0nzt/MwZaOyAlWuIlJjzFSQkptAu+UNilevUbGjnBjdPqY9NIL7a7w4t9KYb1KTpg1T9aTzPOuFNhvlCf0WxIiNbIScHRx0SDfUmRzOOqpONyOfIgk2XABo5adBzucEIugKgUhc096yp323S04DYXLLD2VeVr0MPCGxGr3+Is2qNnbs+CsKWycAgNhEKLaoLbKCLPWfzqy31mPi0iDcklFDGSYTFepSRWvRgtUOAMYGfa449HY1OexJZcNz5FzRPt9kUdbN0D00PMYTmGQUiUXga7p4D89MfZuiOJ2Or9RHtgqqGMXZ7qhymMGtL4cOMtP/CRdnAL7awSgmWAK9XNtd1PXjMCL+8vcyCNFMqJ2wpzTzpdMg15jdFgpCBflVz8tNpa/y0H4w6+N8+zlrZJuHAIlmG6dZfuVqvwT+8oJrpQkPv+yhccqSSuZFHlvJBzI0XLrlSFfHx1FloriyUpL9x5+DCcVX9CslH5Vazc0k1S/WxGOpyVWCpREpQqizd/PGf4DJkjI74KqXLV57/NB+Iit96NNCmyGkXHbIqpi3Et1HSMq+qDrZqcH3eb1DKDVaA15KRVHG6V133t7W0pmo3/kpu7MPxbiwB1pWTY+tJWQKiEEyrD3RXhyCMm0vlsnyaK61J5owO8OojmyQ0EkQqbY2i5KwtNKE5KXLVpVSjtFEKczVBoNEVLRaVifE/DL5cY3aKg== X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2367; 6:Tstwmv6JT4Jf3gWqmzBxYj+XSt6vhVSnQlT8xFo/pSeUT4uwFyB9zex2e1aBtsDz6nYW5h2ibXRrUv//327EQ/JfJSkrCJxJDvJxXtEFva8ZQrDbpdeiYxgLXx5r09mfeyoqwC+3qf76D8d+utcmUmScjMYnzYrb+v9yj+9nS7ClAPxH2IJIIygqLC1FfFizy8mozplF2CQ1LYPpzvTFL06x2bvSrmx4RWrvyfFRW+OYIS02Tcw4ZQVMIhZ7pvPU7wPtAB/BsshGrlg1j7ZnrYPQZji/84i6TxLMqMtZivvJFFTjYmgyWGwJPwfn62OJpMrujYfHUvsj294TcLGiyBHiXgpPyfwWbRnvGIHQkuc=; 5:3umCoJ4h0yYmKtXrKChUuISKOoj3JAVbLvy8WCodly1eXldtodZmRi3nbb8BKHfnOHVoeCxopy4vFE/hZ/73qfJPvHKXN+QEmwPAe628fXWEIXEeIEyWV59BJRYNpqEcGyTXSKEQHP4aoU9YnW5fuYsHL8TTFKrtLUQOhYyiG70=; 24:osIa6YFD/x9bz2btkzeX4iRmImgpv+13mFVASvsrlfSNWKKN0+XUADof1LpKFJD2N64EuIW61WYSn/beggLanHXAlaFHb8T2gug1bISPqlQ=; 7:PdHn7toXFn7nDH1j/Wyf2+a1abSwtAnIdxlEutzhhLR1vsTHVugG+qXKJTwAqhO6aHCPEZ8kYndkqFKahWejtye92S/kn4xVGgS6Laa9R3iIgAKQc+pVQaXoZKXb4iQHkkRNJ31bqiVD1Nb52h9/ZQzBN8N59CemKO7CfMEymf17NclpjTrEOp9CCZNctBtc+2EkMhPV1cCeXA1C7y45vDPtGMXoRq6fT+pbGHZPoeqmd9TOmyfcOVuXZOANEgo5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2017 07:06:44.3399 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1b50cd64-1c58-48a7-e96a-08d52b2e4394 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR03MB2367 Cc: priyanka.jain@nxp.com, Amrita Kumari , Raghav Dogra Subject: [U-Boot] [PATCH v6 7/7] ls1088a: Add VID support for QDS and RDB platforms X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This patch adds the support for VID on LS1088AQDS and LS1088ARDB systems. It reads the fusesr register and changes the VDD accordingly by adjusting the voltage via LTC3882 regulator. This patch also takes care of the special case of 0.9V VDD is present in fusesr register. In that case,it also changes the SERDES voltage by disabling the SERDES, changing the SVDD and then re-enabling SERDES. Signed-off-by: Raghav Dogra Signed-off-by: Ashish Kumar Signed-off-by: Amrita Kumari Signed-off-by: Rajesh Bhagat --- Changes in v6: None Changes in v5: None Changes in v4: None Changes in v3: Restructured LS1088A VID support to use common VID driver Removed APIs getLSB/MSB and used bit operations. Changes in v2: Checkpatch errors fixed board/freescale/ls1088a/ls1088a.c | 121 ++++++++++++++++++++++++++++++++++++++ include/configs/ls1088aqds.h | 13 ++++ include/configs/ls1088ardb.h | 14 +++++ 3 files changed, 148 insertions(+) diff --git a/board/freescale/ls1088a/ls1088a.c b/board/freescale/ls1088a/ls1088a.c index 96d9ae7..94f76df 100644 --- a/board/freescale/ls1088a/ls1088a.c +++ b/board/freescale/ls1088a/ls1088a.c @@ -18,9 +18,13 @@ #include #include #include +#include +#include #include "../common/qixis.h" #include "ls1088a_qixis.h" +#include "../common/vid.h" +#include DECLARE_GLOBAL_DATA_PTR; @@ -296,6 +300,121 @@ void board_retimer_init(void) select_i2c_ch_pca9547(I2C_MUX_CH_DEFAULT); } +int i2c_multiplexer_select_vid_channel(u8 channel) +{ + return select_i2c_ch_pca9547(channel); +} + +#ifdef CONFIG_TARGET_LS1088AQDS +/* read the current value(SVDD) of the LTM Regulator Voltage */ +int get_serdes_volt(void) +{ + int ret, vcode = 0; + u8 chan = PWM_CHANNEL0; + + /* Select the PAGE 0 using PMBus commands PAGE for VDD */ + ret = i2c_write(I2C_SVDD_MONITOR_ADDR, + PMBUS_CMD_PAGE, 1, &chan, 1); + if (ret) { + printf("VID: failed to select VDD Page 0\n"); + return ret; + } + + /* Read the output voltage using PMBus command READ_VOUT */ + ret = i2c_read(I2C_SVDD_MONITOR_ADDR, + PMBUS_CMD_READ_VOUT, 1, (void *)&vcode, 2); + if (ret) { + printf("VID: failed to read the volatge\n"); + return ret; + } + return vcode; +} + +int set_serdes_volt(int svdd) +{ + int ret, vdd_last; + u8 buff[5] = {0x04, PWM_CHANNEL0, PMBUS_CMD_VOUT_COMMAND, + svdd & 0xFF, (svdd & 0xFF00) >> 8}; + + /* Write the desired voltage code to the SVDD regulator */ + ret = i2c_write(I2C_SVDD_MONITOR_ADDR, + PMBUS_CMD_PAGE_PLUS_WRITE, 1, (void *)&buff, 5); + if (ret) { + printf("VID: I2C failed to write to the volatge regulator\n"); + return -1; + } + + /* Wait for the volatge to get to the desired value */ + do { + vdd_last = get_serdes_volt(); + if (vdd_last < 0) { + printf("VID: Couldn't read sensor abort VID adjust\n"); + return -1; + } + } while (vdd_last != svdd); + + return 1; +} +#else +int get_serdes_volt(void) +{ + return 0; +} + +int set_serdes_volt(int svdd) +{ + int ret; + u8 brdcfg4; + + printf("SVDD changing of RDB\n"); + + /* Read the BRDCFG54 via CLPD */ + ret = i2c_read(CONFIG_SYS_I2C_FPGA_ADDR, + QIXIS_BRDCFG4_OFFSET, 1, (void *)&brdcfg4, 1); + if (ret) { + printf("VID: I2C failed to read the CPLD BRDCFG4\n"); + return -1; + } + + brdcfg4 = brdcfg4 | 0x08; + + /* Write to the BRDCFG4 */ + ret = i2c_write(CONFIG_SYS_I2C_FPGA_ADDR, + QIXIS_BRDCFG4_OFFSET, 1, (void *)&brdcfg4, 1); + if (ret) { + debug("VID: I2C failed to set the SVDD CPLD BRDCFG4\n"); + return -1; + } + + /* Wait for the volatge to get to the desired value */ + udelay(10000); + + return 1; +} +#endif + +/* this function disables the SERDES, changes the SVDD Voltage and enables it*/ +int board_adjust_vdd(int vdd) +{ + int ret = 0; + + debug("%s: vdd = %d\n", __func__, vdd); + + /* Special settings to be performed when voltage is 900mV */ + if (vdd == 900) { +#ifdef CONFIG_SYS_FSL_DDR + ddr_enable_0v9_volt(true); +#endif + ret = setup_serdes_volt(vdd); + if (ret < 0) { + ret = -1; + goto exit; + } + } +exit: + return ret; +} + int board_init(void) { init_final_memctl_regs(); @@ -314,6 +433,8 @@ int board_init(void) /* invert AQR105 IRQ pins polarity */ out_le32(irq_ccsr + IRQCR_OFFSET / 4, AQR105_IRQ_MASK); #endif + if (adjust_vdd(0) < 0) + printf("core voltage not adjusted\n"); #ifdef CONFIG_FSL_LS_PPA ppa_init(); diff --git a/include/configs/ls1088aqds.h b/include/configs/ls1088aqds.h index 76570f2..417fe17 100644 --- a/include/configs/ls1088aqds.h +++ b/include/configs/ls1088aqds.h @@ -287,6 +287,19 @@ unsigned long get_board_ddr_clk(void); #define I2C_VOL_MONITOR_BUS_V_OFFSET 0x2 #define I2C_VOL_MONITOR_BUS_V_OVF 0x1 #define I2C_VOL_MONITOR_BUS_V_SHIFT 3 +#define I2C_SVDD_MONITOR_ADDR 0x4F + +#define CONFIG_VID_FLS_ENV "ls1088aqds_vdd_mv" +#ifndef CONFIG_SPL_BUILD +#define CONFIG_VID +#endif + +/* The lowest and highest voltage allowed for LS1088AQDS */ +#define VDD_MV_MIN 819 +#define VDD_MV_MAX 1212 + +#define CONFIG_VOL_MONITOR_LTC3882_SET +#define CONFIG_VOL_MONITOR_LTC3882_READ /* PM Bus commands code for LTC3882*/ #define PMBUS_CMD_PAGE 0x0 diff --git a/include/configs/ls1088ardb.h b/include/configs/ls1088ardb.h index feffd33..283b35c 100644 --- a/include/configs/ls1088ardb.h +++ b/include/configs/ls1088ardb.h @@ -137,6 +137,7 @@ #define CONFIG_FSL_QIXIS #define CONFIG_SYS_I2C_FPGA_ADDR 0x66 +#define QIXIS_BRDCFG4_OFFSET 0x54 #define QIXIS_LBMAP_SWITCH 2 #define QIXIS_QMAP_MASK 0xe0 #define QIXIS_QMAP_SHIFT 5 @@ -217,6 +218,19 @@ #define I2C_VOL_MONITOR_BUS_V_OFFSET 0x2 #define I2C_VOL_MONITOR_BUS_V_OVF 0x1 #define I2C_VOL_MONITOR_BUS_V_SHIFT 3 +#define I2C_SVDD_MONITOR_ADDR 0x4F + +#define CONFIG_VID_FLS_ENV "ls1088ardb_vdd_mv" +#ifndef CONFIG_SPL_BUILD +#define CONFIG_VID +#endif + +/* The lowest and highest voltage allowed for LS1088ARDB */ +#define VDD_MV_MIN 819 +#define VDD_MV_MAX 1212 + +#define CONFIG_VOL_MONITOR_LTC3882_SET +#define CONFIG_VOL_MONITOR_LTC3882_READ /* PM Bus commands code for LTC3882*/ #define PMBUS_CMD_PAGE 0x0