From patchwork Mon Jul 24 10:05:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Delphine CC Chiu X-Patchwork-Id: 705933 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6B61AC001DE for ; Mon, 24 Jul 2023 10:13:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231921AbjGXKNp (ORCPT ); Mon, 24 Jul 2023 06:13:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233257AbjGXKNB (ORCPT ); Mon, 24 Jul 2023 06:13:01 -0400 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2060d.outbound.protection.outlook.com [IPv6:2a01:111:f403:704b::60d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9D9A3A8F; Mon, 24 Jul 2023 03:05:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hz7y73/m3q2GuqjLomgOA07CwykmOTe35BLY/X13CDa1bc06q/VHDdNzNDBUp0rxoxQUEDDatWkbYijYUtYDcOzhymzzsgy5S/1RRVW5hjjLMafJM4MIhaitF7dnn8lFLqD7Pe2TOZ9oBFc6h2Zfqhh4iqyJJkrrAFH+MC2umnt4jk0DIt1QkwFLNJY1dz6IHRjABvdxePgsX9qL4ps1RF5FHlqBDyihBAxlzXp/T1825RNoAcuu1Fsq3uCZFmHpxhU4UoJDJRa0VrpqFDlwvTiIrhjXiSM37qN7Gir33mI5uZ91q6Rxt/GprimBtIOVEtZ0Pc/EMFcewOb++VyMJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=YgtaTGJTGGDEWVPGuXCbtqSZt939gq+qKbfx+/9idvY=; b=hT5cGuykYf+etY8Iz54jn7hklM0t/0+cdLqT3uM0Cn1UkkzYOmazeAPz+JZGRqC+rzj/StJTyKBslLnOgtIN18rAiobLRslfHQ6aeLy96P2TA1PONk5MscXOzS+HSE7GrhUQN7Qn/NXrfUEvdaF8udwdQhyupwaKAP5CGOls4z6eSyZLm9ds16RLeGya7VrPc3n+VrFugW4JEWBY/G4DY/s5lP8d1BOXIr3YCIefcRyiInIJrz89TZybbXCFjNxPzmxmog1sc/M2QJ2PrITiOncUY0vKqVKiOVC4z2ATpGJjOLw7goy1n8dPfhfm03wby1TquKiLxuFRZSptC57UbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 211.20.1.79) smtp.rcpttodomain=stwcx.xyz smtp.mailfrom=wiwynn.com; dmarc=fail (p=quarantine sp=quarantine pct=100) action=quarantine header.from=wiwynn.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wiwynn.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YgtaTGJTGGDEWVPGuXCbtqSZt939gq+qKbfx+/9idvY=; b=iROe70+Y3yeFrWPxoh/Ksy8fxVVLc1TaU+lLmgejK8FgBDqBoqL/5Kxer4Nt18gG3vthU5d304MPXr3AzIhBsZqkFCeXXX6xxIIHjU+rIZ/MTlnFOpo7p806Z84U3KCV/ZuoLyNCaWs70WwcFiNUBJt89yoGVzIbAXxbmgKxul992wGot+oIdJ7UOGgQBMaLCfBY3vOgr8GuEvBmet9dU2d7oanqEIP3jaYQJ+b/ukJDI+86ZAfZyLqYldDx6i6TXLF2cZ+cRroYIzZgfpuwLOcQgbaDhxdu4L+XDw2M/nxKEXMufIMjCjTGpztFH/gl0inHrRzVlaNLv1EpDDV2wg== Received: from PU1PR01CA0010.apcprd01.prod.exchangelabs.com (2603:1096:803:15::22) by PUZPR04MB6650.apcprd04.prod.outlook.com (2603:1096:301:11c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31; Mon, 24 Jul 2023 10:05:19 +0000 Received: from HK3PEPF0000021F.apcprd03.prod.outlook.com (2603:1096:803:15:cafe::16) by PU1PR01CA0010.outlook.office365.com (2603:1096:803:15::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32 via Frontend Transport; Mon, 24 Jul 2023 10:05:19 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 211.20.1.79) smtp.mailfrom=Wiwynn.com; dkim=none (message not signed) header.d=none;dmarc=fail action=quarantine header.from=Wiwynn.com; Received-SPF: Fail (protection.outlook.com: domain of Wiwynn.com does not designate 211.20.1.79 as permitted sender) receiver=protection.outlook.com; client-ip=211.20.1.79; helo=localhost.localdomain; Received: from localhost.localdomain (211.20.1.79) by HK3PEPF0000021F.mail.protection.outlook.com (10.167.8.41) with Microsoft SMTP Server id 15.20.6631.22 via Frontend Transport; Mon, 24 Jul 2023 10:05:18 +0000 From: Delphine CC Chiu To: patrick@stwcx.xyz, Delphine CC Chiu , Jean Delvare , Guenter Roeck , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-i2c@vger.kernel.org, linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] dt-bindings: hwmon: Add lltc ltc4286 driver bindings Date: Mon, 24 Jul 2023 18:05:11 +0800 Message-Id: <20230724100514.1028061-1-Delphine_CC_Chiu@Wiwynn.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230424101352.28117-1-Delphine_CC_Chiu@Wiwynn.com> References: <20230424101352.28117-1-Delphine_CC_Chiu@Wiwynn.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HK3PEPF0000021F:EE_|PUZPR04MB6650:EE_ X-MS-Office365-Filtering-Correlation-Id: e83d5d8b-ffc1-4fb0-ca9c-08db8c2d7c50 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yGTlxN18OufeHpvaeBpd4ktS7BXavgdvjk5oNv1hmiDP0yt/X7q6goLCi83wBfgbko+LEpmATP0PagYZ9PAuyNcCRtpIxKZ4vvw0s7Ou9XomN9HzUzrGiPGZor8VJlIXzu6l/XQD2mahuY48wmFB/f3m4HWlMBpa5hvtRe1PHccCm4Cbzht/llSuLnogb6NqEp6LIF1PuhVj5Xnyr+eyHuSLosJVM8TJKPSCiASM1cy7eCwySOeGatfgxBviQ1fsXLkeZwRa10vBmacz+K4L5THuYZh4eJKGbGrB4GZhJZkKrWyQ4otOK/oqWXkzztI2XEADMnWkoMyeSP24gKq9wlsUPTsHQ3tXa8Nh9R8hluX+uxLn0dFGqOsA306Jfi0vrEI168vhv9LJNt8AOYSc5o757BkXmw/iPKb0rD181ioC1rZACHOs7cl3pAvYb2t8zxGjd8fL51vJBRIYO4CZjzaXLUGXtGro76uYm8RTUOu8VQRlNdGYfApbpP4LCK+/a2iYzoEjXA1BzYyIy2iDCNIAeilEGU82fpYRy/6M+X+yVIVfft3+aW2h3wM4PATdtsfNaYCPNZaRnkM7YB2+OYOXZ3Lu1gFKe4rZYNtyqncQspU4/pEi+xSkKjP/zxJdt1MwD1HWUACWhYNfWZrwOcM8ncMQoiaHeYkpPlPF9eosIUCpiQAnHUs3InbEjINkQLMqNO+7SCdEg9hwWUXemg== X-Forefront-Antispam-Report: CIP:211.20.1.79; CTRY:TW; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:localhost.localdomain; PTR:211-20-1-79.hinet-ip.hinet.net; CAT:NONE; SFS:(13230028)(6069001)(4636009)(396003)(346002)(136003)(376002)(39860400002)(451199021)(82310400008)(46966006)(36840700001)(2906002)(40480700001)(478600001)(8676002)(966005)(6512007)(81166007)(356005)(47076005)(82740400003)(186003)(6506007)(336012)(26005)(956004)(2616005)(1076003)(36860700001)(86362001)(8936002)(5660300002)(9316004)(7416002)(36756003)(6666004)(6486002)(70586007)(70206006)(316002)(36736006)(110136005)(41300700001)(4326008); DIR:OUT; SFP:1101; X-OriginatorOrg: wiwynn.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 10:05:18.7487 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e83d5d8b-ffc1-4fb0-ca9c-08db8c2d7c50 X-MS-Exchange-CrossTenant-Id: da6e0628-fc83-4caf-9dd2-73061cbab167 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=da6e0628-fc83-4caf-9dd2-73061cbab167; Ip=[211.20.1.79]; Helo=[localhost.localdomain] X-MS-Exchange-CrossTenant-AuthSource: HK3PEPF0000021F.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PUZPR04MB6650 Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Add a device tree bindings for ltc4286 driver. Signed-off-by: Delphine CC Chiu --- .../bindings/hwmon/lltc,ltc4286.yaml | 49 +++++++++++++++++++ MAINTAINERS | 9 ++++ 2 files changed, 58 insertions(+) create mode 100644 Documentation/devicetree/bindings/hwmon/lltc,ltc4286.yaml diff --git a/Documentation/devicetree/bindings/hwmon/lltc,ltc4286.yaml b/Documentation/devicetree/bindings/hwmon/lltc,ltc4286.yaml new file mode 100644 index 000000000000..ad7f6ad888e4 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/lltc,ltc4286.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hwmon/lltc,ltc4286.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: LTC4286 power monitors + +maintainers: + - Delphine CC Chiu + +properties: + compatible: + enum: + - lltc,ltc4286 + - lltc,ltc4287 + + reg: + maxItems: 1 + + vrange_select_25p6: + description: + This property is a bool parameter to represent the + voltage range is 25.6 or not for this chip. + + shunt-resistor-micro-ohms: + description: + Resistor value in micro-Ohm + +required: + - compatible + - reg + - shunt-resistor-micro-ohms + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + power-sensor@40 { + compatible = "lltc,ltc4286"; + reg = <0x40>; + vrange_select_25p6; + shunt-resistor-micro-ohms = <300>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index d516295978a4..7c1cb9bd4f45 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -12344,6 +12344,15 @@ S: Maintained F: Documentation/hwmon/ltc4261.rst F: drivers/hwmon/ltc4261.c +LTC4286 HARDWARE MONITOR DRIVER +M: Delphine CC Chiu +L: linux-i2c@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/hwmon/lltc,ltc4286.yaml +F: drivers/hwmon/pmbus/Kconfig +F: drivers/hwmon/pmbus/Makefile +F: drivers/hwmon/pmbus/ltc4286.c + LTC4306 I2C MULTIPLEXER DRIVER M: Michael Hennerich L: linux-i2c@vger.kernel.org From patchwork Mon Jul 24 10:05:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Delphine CC Chiu X-Patchwork-Id: 706776 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 985FCC07E8A for ; Mon, 24 Jul 2023 10:13:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232775AbjGXKNq (ORCPT ); Mon, 24 Jul 2023 06:13:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233270AbjGXKND (ORCPT ); Mon, 24 Jul 2023 06:13:03 -0400 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on20616.outbound.protection.outlook.com [IPv6:2a01:111:f400:feab::616]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3584A3A9D; Mon, 24 Jul 2023 03:05:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hCc36QMwa1aagVwFX+a3oOpaWCyLK7+qoitcT6bSaVoSiMY1InthxPHhJXF3xA84GLbxEAPrTc3hcVIgJgBJqfnWYMzgqGUslkg99SGl9ld3M6baBFAlZsDUOl8kpmym+2IMvB994NFjAh+o/alrve+qof6nlKrfkbVUVqjb5IzorK/3WBU9UJIw3QK3Zxuvy1LqBjPCLUrBomx7QCzS6dvxdQ/ZZZyIczCfEaFSxvwZWgMFl7+ceX3izGMbw9k0W2dlf47HCHk9R6iGW+tYL64dEW/jjFq6/8dDZYmWJU54sf8dpTxTW9iwwlixVFmLv+ovByfUI8yj+u9HTOL6rQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=HqrZmnOWPD/wzqSzm8Vs5iuVS1GO4FouTc4H76ITF0s=; b=jGSUsqlPqCJv3gMX1H1xEK2TT5zzdIDZuViLGK8XJ0i9ioecrzHPRt2Av/Qt9g+B+OGBXUgOSzyhUEiOrFW+FbcTOkQ5eeHT500B+mw/2k6p9gsayTZ/xDvWlaUqSYCQ13mNujZgfBGBKncD74AXi3LaGl5jf0e4PnCOPXbQ19G6utk549Al58IxiRE8XJ9p7DLdpgTKvyFbw9yEDGVEJapDCZLHCRGwP4Bv/4V1c2oHyG7REF/GFyrklbnt37GV7To+Sq2FNyPtZ0TLVZV2BTm74pRpoH1xC3026oyvCDnPHWSaIgjs6i2Cpqqtrpq9MK0rQQY/vkEu24uacpeixw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 211.20.1.79) smtp.rcpttodomain=stwcx.xyz smtp.mailfrom=wiwynn.com; dmarc=fail (p=quarantine sp=quarantine pct=100) action=quarantine header.from=wiwynn.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wiwynn.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HqrZmnOWPD/wzqSzm8Vs5iuVS1GO4FouTc4H76ITF0s=; b=uHWILuS/m6jQsQTYd82KxZEO+qNWwpUatUJph3daXUbprxwG8zX+4ktn+3V3oYAZUrncQSZWqrw0k9bfX9ovu5JBBPykPBhuWQyG00wbRnJrSDnSpV9fg3SvUA5BVRwdcDQ3iN1MsYfPh/0lI1QS/77g1b7j7s6+DKNhKqkN1J2J+Z3mswzbwSd9N3IXN3LqyvkeubwhMPWWSNNCQNWJ5e6UEElx0/3iVLprwsvFYYUTXImvc2a2inW+RakmFsXXQ2StMZCKUFheggvBBr8UYb1olB76TCnVFPjVUksNem0idZ5gzTAhxrBfLc7T7JaEf6r0SKr2meUHvYcm+PnueA== Received: from PU1PR01CA0007.apcprd01.prod.exchangelabs.com (2603:1096:803:15::19) by JH0PR04MB7022.apcprd04.prod.outlook.com (2603:1096:990:38::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 10:05:25 +0000 Received: from HK3PEPF0000021F.apcprd03.prod.outlook.com (2603:1096:803:15:cafe::4d) by PU1PR01CA0007.outlook.office365.com (2603:1096:803:15::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32 via Frontend Transport; Mon, 24 Jul 2023 10:05:24 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 211.20.1.79) smtp.mailfrom=Wiwynn.com; dkim=none (message not signed) header.d=none;dmarc=fail action=quarantine header.from=Wiwynn.com; Received-SPF: Fail (protection.outlook.com: domain of Wiwynn.com does not designate 211.20.1.79 as permitted sender) receiver=protection.outlook.com; client-ip=211.20.1.79; helo=localhost.localdomain; Received: from localhost.localdomain (211.20.1.79) by HK3PEPF0000021F.mail.protection.outlook.com (10.167.8.41) with Microsoft SMTP Server id 15.20.6631.22 via Frontend Transport; Mon, 24 Jul 2023 10:05:24 +0000 From: Delphine CC Chiu To: patrick@stwcx.xyz, Delphine CC Chiu , Guenter Roeck , Jean Delvare Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-i2c@vger.kernel.org, linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/2] hwmon: pmbus: Add ltc4286 driver Date: Mon, 24 Jul 2023 18:05:12 +0800 Message-Id: <20230724100514.1028061-2-Delphine_CC_Chiu@Wiwynn.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230724100514.1028061-1-Delphine_CC_Chiu@Wiwynn.com> References: <20230424101352.28117-1-Delphine_CC_Chiu@Wiwynn.com> <20230724100514.1028061-1-Delphine_CC_Chiu@Wiwynn.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HK3PEPF0000021F:EE_|JH0PR04MB7022:EE_ X-MS-Office365-Filtering-Correlation-Id: a2ab3769-bfc8-43ff-6b0e-08db8c2d7f7b X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 47XahZNgS9oTMxBvZ8u0dR1WIvDgCxChj3OOPxCGilxkElE8dHgJB1Ird0F4euDhoxIZzrAaXZx4ZZYkPX+6BHY8r0gDmUbK6rIy/wm4kTlEfaeTHKsxnGp0d8dFycoWBlpI3eom1i6TtiyXYTxGqmJPOuclVstcyZUsTxt4DxwlEfzfG1a8H9H0enFbO4KjkqmcmbtyWWbfOXD06io7XSayIN/ZQSsKgDF08Sy6/4J284SzJnkeAFo5my3ychiFMpEqnlj8SZZms+PLpPj7cTzlvJF/ZVVYCEpsugew/Z5nsByq7Ty+2qlf71W1zOtF6fyWqRMr93eFHUaC3iJf0fHa8nWmMcjU7JUnEub9QxR6eqLK0EXSEBBXgD943jeqcuyihVRFgl4rmGDoA8Hu+AKYKsloWIV0HvVRnDVsTZbUm1RRm+EqjV4Pk5V0MTix1S6Ui2PZv2aLzWgVgj61qk4lCoHgrqGS13lrgwJEYkYRlAsVRAurpMTEt41i9LpOXYMj2ighxpPCKjhmrXyoC/wQBxyExxJp1c0s+4pjYd65+WyhCOY78tQ6sS6Kjje/mi74Yh6Kg/5Avd93eSWVIuO3hFcW4TTO68EL7+mHFTcxSa3g6A9vFoZVahOT9Ohjjpd4qpl3yuO1buyhjHJsfm+paZV8E0HusNQM+8TlvFRoKFYU0z3KdKTQqxs8Ae6UvXrbiSKBjnvMvetgtPpa+g== X-Forefront-Antispam-Report: CIP:211.20.1.79; CTRY:TW; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:localhost.localdomain; PTR:211-20-1-79.hinet-ip.hinet.net; CAT:NONE; SFS:(13230028)(6069001)(4636009)(396003)(136003)(376002)(39860400002)(346002)(82310400008)(451199021)(46966006)(36840700001)(36756003)(5660300002)(186003)(1076003)(6506007)(336012)(26005)(4326008)(316002)(70586007)(70206006)(41300700001)(36736006)(6486002)(47076005)(2616005)(66574015)(956004)(2906002)(6512007)(6666004)(36860700001)(54906003)(110136005)(478600001)(7416002)(8676002)(8936002)(83380400001)(82740400003)(86362001)(356005)(40480700001)(81166007)(9316004); DIR:OUT; SFP:1101; X-OriginatorOrg: wiwynn.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 10:05:24.0925 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2ab3769-bfc8-43ff-6b0e-08db8c2d7f7b X-MS-Exchange-CrossTenant-Id: da6e0628-fc83-4caf-9dd2-73061cbab167 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=da6e0628-fc83-4caf-9dd2-73061cbab167; Ip=[211.20.1.79]; Helo=[localhost.localdomain] X-MS-Exchange-CrossTenant-AuthSource: HK3PEPF0000021F.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: JH0PR04MB7022 Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Add a driver to support ltc4286 chip Signed-off-by: Delphine CC Chiu --- drivers/hwmon/pmbus/Kconfig | 9 +++ drivers/hwmon/pmbus/Makefile | 1 + drivers/hwmon/pmbus/ltc4286.c | 147 ++++++++++++++++++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 drivers/hwmon/pmbus/ltc4286.c diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig index 270b6336b76d..7cb9cbff587d 100644 --- a/drivers/hwmon/pmbus/Kconfig +++ b/drivers/hwmon/pmbus/Kconfig @@ -226,6 +226,15 @@ config SENSORS_LTC3815 This driver can also be built as a module. If so, the module will be called ltc3815. +config SENSORS_LTC4286 + bool "Analog Devices LTC4286" + help + LTC4286 is an integrated solution for hot swap applications that + allows a board to be safely inserted and removed from a + live backplane. + This chip could be used to monitor voltage, current, ...etc. + If you say yes here you get hardware monitoring support for Analog + Devices LTC4286. config SENSORS_MAX15301 tristate "Maxim MAX15301" diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile index 84ee960a6c2d..94e28f6d6a61 100644 --- a/drivers/hwmon/pmbus/Makefile +++ b/drivers/hwmon/pmbus/Makefile @@ -24,6 +24,7 @@ obj-$(CONFIG_SENSORS_LM25066) += lm25066.o obj-$(CONFIG_SENSORS_LT7182S) += lt7182s.o obj-$(CONFIG_SENSORS_LTC2978) += ltc2978.o obj-$(CONFIG_SENSORS_LTC3815) += ltc3815.o +obj-$(CONFIG_SENSORS_LTC4286) += ltc4286.o obj-$(CONFIG_SENSORS_MAX15301) += max15301.o obj-$(CONFIG_SENSORS_MAX16064) += max16064.o obj-$(CONFIG_SENSORS_MAX16601) += max16601.o diff --git a/drivers/hwmon/pmbus/ltc4286.c b/drivers/hwmon/pmbus/ltc4286.c new file mode 100644 index 000000000000..b86bf31cfbae --- /dev/null +++ b/drivers/hwmon/pmbus/ltc4286.c @@ -0,0 +1,147 @@ +#include +#include +#include +#include +#include +#include +#include "pmbus.h" + +/* LTC4286 register */ +#define LTC4286_MFR_CONFIG1 0xF2 + +/* LTC4286 configuration */ +#define VRANGE_SELECT_BIT BIT(1) + +#define LTC4286_MFR_ID_SIZE 3 + +enum chips { ltc4286, ltc4287 }; + +/* + * Initialize the MBR as default settings which is referred to LTC4286 datasheet + * (March 22, 2022 version) table 3 page 16 + */ +static struct pmbus_driver_info ltc4286_info = { + .pages = 1, + .format[PSC_VOLTAGE_IN] = direct, + .format[PSC_VOLTAGE_OUT] = direct, + .format[PSC_CURRENT_OUT] = direct, + .format[PSC_POWER] = direct, + .format[PSC_TEMPERATURE] = direct, + .m[PSC_VOLTAGE_IN] = 32, + .b[PSC_VOLTAGE_IN] = 0, + .R[PSC_VOLTAGE_IN] = 1, + .m[PSC_VOLTAGE_OUT] = 32, + .b[PSC_VOLTAGE_OUT] = 0, + .R[PSC_VOLTAGE_OUT] = 1, + .m[PSC_CURRENT_OUT] = 1024, + .b[PSC_CURRENT_OUT] = 0, + .R[PSC_CURRENT_OUT] = 3 - 6, /* To support small shunt resistor value */ + .m[PSC_POWER] = 1, + .b[PSC_POWER] = 0, + .R[PSC_POWER] = 4 - 6, /* To support small shunt resistor value */ + .m[PSC_TEMPERATURE] = 1, + .b[PSC_TEMPERATURE] = 273, + .R[PSC_TEMPERATURE] = 0, + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_IOUT | + PMBUS_HAVE_PIN | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_STATUS_TEMP, +}; + +static const struct i2c_device_id ltc4286_id[] = { { "ltc4286", ltc4286 }, + { "ltc4287", ltc4287 }, + {} }; +MODULE_DEVICE_TABLE(i2c, ltc4286_id); + +static int ltc4286_probe(struct i2c_client *client) +{ + int ret; + u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1]; + struct pmbus_driver_info *info; + u32 rsense; + + ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID, block_buffer); + if (ret < 0) { + dev_err(&client->dev, "failed to read manufacturer id\n"); + return ret; + } + + /* + * Refer to ltc4286 datasheet page 20 + * the manufacturer id is LTC + */ + if (ret != LTC4286_MFR_ID_SIZE || + strncmp(block_buffer, "LTC", LTC4286_MFR_ID_SIZE)) { + return dev_err_probe(&client->dev, err, + "failed to read manufacturer id\n"); + } + + ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL, block_buffer); + if (ret < 0) { + dev_err(&client->dev, "failed to read manufacturer model\n"); + return ret; + } + + for (mid = ltc4286_id; mid->name[0]; mid++) { + if (!strncasecmp(mid->name, block_buffer, strlen(mid->name))) + break; + } + + ret = of_property_read_u32(client->dev.of_node, + "shunt-resistor-micro-ohms", &rsense); + if (ret < 0) + return ret; + + if (rsense == 0) + return -EINVAL; + + info = <c4286_info; + + /* Default of VRANGE_SELECT = 1, 102.4V */ + if (device_property_read_bool(client->dev, "vrange_select_25p6")) { + /* Setup MFR1 CONFIG register bit 1 VRANGE_SELECT */ + ret = i2c_smbus_read_word_data(client, LTC4286_MFR_CONFIG1); + if (ret < 0) { + dev_err(&client->dev, + "failed to read manufacturer configuration one\n"); + return ret; + } + + ret &= ~VRANGE_SELECT; /* VRANGE_SELECT = 0, 25.6V */ + ret = i2c_smbus_write_word_data(client, LTC4286_MFR_CONFIG1, + ret); + if (ret < 0) { + dev_err(&client->dev, "failed to set vrange\n"); + return ret; + } + + info->m[PSC_VOLTAGE_IN] = 128; + info->m[PSC_VOLTAGE_OUT] = 128; + info->m[PSC_POWER] = 4 * rsense; + } else + info->m[PSC_POWER] = rsense; + + info->m[PSC_CURRENT_OUT] = 1024 * rsense; + + return pmbus_do_probe(client, info); +} + +static const struct of_device_id ltc4286_of_match[] = { + { .compatible = "lltc,ltc4286" }, + { .compatible = "lltc,ltc4287" }, + {} +}; + +static struct i2c_driver ltc4286_driver = { + .driver = { + .name = "ltc4286", + .of_match_table = ltc4286_of_match, + }, + .probe = ltc4286_probe, + .id_table = ltc4286_id, +}; + +module_i2c_driver(ltc4286_driver); + +MODULE_AUTHOR("Delphine CC Chiu "); +MODULE_DESCRIPTION("PMBUS driver for LTC4286 and compatibles"); +MODULE_LICENSE("GPL");