From patchwork Wed Jul 12 11:47:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119113 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1093866vqm; Wed, 12 Jul 2023 04:59:31 -0700 (PDT) X-Google-Smtp-Source: APBJJlFGT76aiT0ZJSTmoQ9dKNODKSOJql+J9iaJiuMiagvay9rX+4RAvTFAS9ilObxkPuPmKK+x X-Received: by 2002:a05:6512:ac6:b0:4f8:714e:27a8 with SMTP id n6-20020a0565120ac600b004f8714e27a8mr17960310lfu.0.1689163170992; Wed, 12 Jul 2023 04:59:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689163170; cv=none; d=google.com; s=arc-20160816; b=tdwituij0m9J3ByOtN0IZ3mOKhPYZd8NWB0UrB35kumKver7wI7onjG+zlSDVYCJsS ugnIrIhIOgENWEg2MN85wKtqC00bCoYVSrrDeMlTkVs1QwDJ5XWywLCp9yS4LykB0uO6 1WRGwnp4klEhKFiYUk9xyoKHaXicRWl6oww3lVehBNRKJFHxgiuEspnobCWFbG04uOzG S3ZcER9p0WP8zFA17jPlrecxBLcu3Lz5v++Bi+90MZy5ogKPHTPcVHOo7u3tFZ69rEC/ N97GG8C4L+ahYU4oyOWmPL8w9gDWmBdGbVOgpq4NoI7+ngtQpsqCVUrKn1pbBX2qWTgc u4ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=aBRkWVB0g8Qm8dyh6//o7Lwn4Q/uU6uVP9gh0M6sy3E=; fh=JUrxmAGZpf2um0PJXMa+5wJ3JrTNc+xhv0SKeec5FHw=; b=oNY2+5fVoQQfePlPwAWZS0cG3ksP1YzzZSfvtw1bHbwFDW7y26aCLXDawHJO2wZsaV YQxdnajEYAtQFrpfLapns7kspfp1TRY2THGzHAPxelsdw/iKi017sXOVmGyNmip9mngK EhVIdHU5fpYOdPKmhShUmDNTt2ivIT0Y4W92Ysa0n/OVAYFoQZTZ0q0m0U57rjc4/5XH k5YU6Y2pbYreg5lMOAl2jl8ZrGulBjUK/GxapIwhG+0d9/PP5EAhNxU6HF13nr8HkxbS AjTkWvj0qYVdh0QD+8C0erW6V5Fsq4L19mAl3cqSvbfPRCAfHwI30SUCfYh/R1JSVaoW vXtw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=fTIJA5YW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m12-20020a50ef0c000000b0051df544225csi4183793eds.540.2023.07.12.04.59.07; Wed, 12 Jul 2023 04:59:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=fTIJA5YW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233435AbjGLLtg (ORCPT + 99 others); Wed, 12 Jul 2023 07:49:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37810 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233375AbjGLLtE (ORCPT ); Wed, 12 Jul 2023 07:49:04 -0400 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91A7C199D for ; Wed, 12 Jul 2023 04:48:19 -0700 (PDT) Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fbc5d5742bso73914135e9.2 for ; Wed, 12 Jul 2023 04:48:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162494; x=1691754494; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=aBRkWVB0g8Qm8dyh6//o7Lwn4Q/uU6uVP9gh0M6sy3E=; b=fTIJA5YWg1SqPJuzssiDs0yYHsqNJ66pstFXEt7VlU1tk8rVnITiG8JTQmwgl6hV8a pSBRdwZaQ+pYkTnPGFrXvqEz+lRTDiG8MO4k6cwQYV4EgsNIJhNSKcferBqERRW+LZZE kd3O9+1koszCdxgeP8kAK39Kq/PzenfZSPuF+rBe/vpMRKIWGzyAL+40FTlmqOI3Go5D TO9WAlj//Q2nTbFJQyIS+GoVuevgITahxz53lRKXA2KUbC8IoLTKYV8omFo7KymmqicB d29bf/G5ipf67kPN342AatvB+Z/5HHMT4ENfjMif5A7HM9J5hH6exDsDBPd8LoyyX9Gt M0fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162494; x=1691754494; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=aBRkWVB0g8Qm8dyh6//o7Lwn4Q/uU6uVP9gh0M6sy3E=; b=HSf1dqmeHvv7Lih4rFusdtTYPDS9XaVck33/I0u1f2Aoayn7XTSO1s+aX2S04ExRpk wVGAAFAeAu6zTBa7GVDZMfftcItCVKPJuABtevDKgiPQZRW7nqexXu4VT5P+NzWqhaGp 4Ooft4P9PvT4f8n18hSlRiNWQugua07OgZZ6yehlVe6SQgaeV9pHDhg8PEjlVys7MHFe 9ATVgexvtIeaSp4+ePaWs3OaXCjTB8O4o1Sj5aEeOa237yhAyeizarTZXMi0nerqgEEj stg0PUyKodP/tKDJajknbg2uJ5/YzncVV4SobXdouP75HD4ZEHkQBP3hs5j58uXSq4fx z9ig== X-Gm-Message-State: ABy/qLbLpM7jd1G4Wt6M2rOxkzgnUn0/bOQ3qcqeOiW2tGUAKhldr8n4 u/XAeJaWP+ITe+KLkAx4oIclnw== X-Received: by 2002:a7b:c7d9:0:b0:3fa:964e:e85 with SMTP id z25-20020a7bc7d9000000b003fa964e0e85mr18987790wmk.5.1689162494106; Wed, 12 Jul 2023 04:48:14 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:13 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki Subject: [PATCH 1/8] hwmon: (pmbus/mp2975) Fix whitespace error Date: Wed, 12 Jul 2023 13:47:42 +0200 Message-ID: <20230712114754.500477-1-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771215961113218405 X-GMAIL-MSGID: 1771215961113218405 From: Patrick Rudolph Fix whitespace error reported by checkpatch.pl Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki --- drivers/hwmon/pmbus/mp2975.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) base-commit: 4dbbaf8fbdbd13adc80731b2452257857e4c2d8b diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index 2109b0458a8b..130cfde52e42 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -600,7 +600,7 @@ mp2975_vout_ov_scale_get(struct i2c_client *client, struct mp2975_data *data, if (ret < 0) return ret; thres_dev = ret & MP2975_PRT_THRES_DIV_OV_EN ? MP2975_PROT_DEV_OV_ON : - MP2975_PROT_DEV_OV_OFF; + MP2975_PROT_DEV_OV_OFF; /* Select the gain of remote sense amplifier. */ ret = i2c_smbus_read_word_data(client, PMBUS_VOUT_SCALE_LOOP); From patchwork Wed Jul 12 11:47:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119117 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1095805vqm; Wed, 12 Jul 2023 05:01:57 -0700 (PDT) X-Google-Smtp-Source: APBJJlEbGbytVIvGjtJQnMGP41iNXFCctqd8yUTaxoTAL7++WzxLmAG8kMflHXc7oljFA5j11qmA X-Received: by 2002:a05:6512:2141:b0:4f6:2e4e:e425 with SMTP id s1-20020a056512214100b004f62e4ee425mr13200788lfr.50.1689163317062; Wed, 12 Jul 2023 05:01:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689163317; cv=none; d=google.com; s=arc-20160816; b=cDArSt5c1wQR2GlADbTrQn2vim/k0UQ2jL2//xImgkEkLTSYyIJCdnMvjXhEupTQW6 0ZYpefAWX/9v6ffLl9JAO+OW2WTNbaZ6Ihect7gDyDYq7eTQepUB76vQqmJlEy4TGz0P +8vLs80EyigMqP2s3w4H7SdKxzfNtG9R9C4ZFbX5vJhT8M+Da09T0iH7ADqm4/5sOnZf bkhzjVqLSwmXDlt8b0s1uQVQy9VA+ADA0cP8GNmAkec2lrgLA6z+y/CSFB0zX6A9j+bw 7BL3xtrsF8+cXR3FpqIoH2Whd/daRd7qXm/QF03NLMwVlJZlIIw0LZh1+np4kUZ1dEik OjBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fjCB4TOOxP7qsKNovkEsxKqV1LmaPoV1I20uND0A77g=; fh=Ck2hY0rpuAJ/31fw5Bzi6QA9/SrqmhMeNYmrJKoVCdQ=; b=lfCrtZLA7f0qRSQcbvYsMwZt1jANgkMxre2SqzIaOIPhrkin6o+5xufAhjkksGL/yd h2ZwrwhsGdSEQqKvGBtZsWGflWf4ARKTWUo3rpURAxaM5bexsWROUhxl99v5l79gftvy eeMKk00oIAuA4EcNdF+R24pUq59SBCE5fQoiKyiUV/tLblToq7UCBTrH/KU0sCO3WoA2 SyMOCdLNKd+szRjStH9qGOE1CdQXnCP80haxH9+liy8nle9J9OhS0zSiuNk3z6kBwSBz 39BZH2tUes53Ubck15jQwkt5E6dOQQQtxCBzrKjdxfuVDptsecMsw95hPbyArZwcjEiC IyzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=BFmaEGMw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id by11-20020a0564021b0b00b0051df537f3bfsi4272979edb.676.2023.07.12.05.01.32; Wed, 12 Jul 2023 05:01:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=BFmaEGMw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233453AbjGLLtj (ORCPT + 99 others); Wed, 12 Jul 2023 07:49:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233242AbjGLLtE (ORCPT ); Wed, 12 Jul 2023 07:49:04 -0400 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64ECC1BEF for ; Wed, 12 Jul 2023 04:48:20 -0700 (PDT) Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fbdfda88f4so69790715e9.1 for ; Wed, 12 Jul 2023 04:48:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162495; x=1691754495; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fjCB4TOOxP7qsKNovkEsxKqV1LmaPoV1I20uND0A77g=; b=BFmaEGMw6Ft9GutczKIxNVxp9G1Ddpl+pAgdl5Rgpma7ch99AWsRPEuMfBkkyVQl3F w1DxYcYB2jI2O/b5AF4obdotjBMVItmIAe06ELlYExaTXCB7XCC0WXlLlH66OzSLgj5J AADN8Ldh/8dyv371o8tQebfv3N8vr5lpSVcvYq7YLNyqSWIj4K7HvTxAMDkMIsG8TJTQ EpiE2QRyOaK24dqPlG42Rp8LzMu6/Yxj2l2Q3lbotJHwMDSvXULRAXgEwCFNoBSAol0A vUQ1Qb7nVVipVPGN/KB2VLM4MeJw84QZNiBvwL8c0C2Py/SrL4qZgpHyCMpZszMiDa2p FPQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162495; x=1691754495; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fjCB4TOOxP7qsKNovkEsxKqV1LmaPoV1I20uND0A77g=; b=Lc8Wwu7hT5MoHhed+k337ThcZ869kxTuQFPx/aUpSCjj6OYb2ZSBNA85K0KU4wnvDA 9Z/dkhNlh9tWu4rzofubA3RU8+RjCEDtNNoVuUC1zOcyrBBImWiEy+Klp9KXN/LEPsGE ZxemYrdP5eJ43VZHMlXZjZ/FIJVZ3iRQ4e6b0d6j2a8DYtQ8L0uNEyjKnz+hmiOqZyrN 6Wql2D1c8jMfgNMYsL1K0cFctmGLpPI1UWat+J0stNcK0XctZFBZIWFeV+3paccW2qt7 tWpH7ROGNYJ7N8IJ4+0LDF7QPdjSs+mas6q3RSo9ahfOwqySbFhCkl82bndplmO4OjI1 pXFg== X-Gm-Message-State: ABy/qLbG5govsUynwl3N2+WRdCtZykCrMKLXEUtJRGWdRw0NvFXDYSMh Xngh4BhyTmZ8YvVaz+djWBQ9pQ== X-Received: by 2002:a05:600c:221a:b0:3fc:1bd:95a6 with SMTP id z26-20020a05600c221a00b003fc01bd95a6mr13025227wml.31.1689162495408; Wed, 12 Jul 2023 04:48:15 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:15 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki , Rob Herring Subject: [PATCH 2/8] dt-bindings: trivial-devices: Add MPS MP2971 and MP2973 Date: Wed, 12 Jul 2023 13:47:43 +0200 Message-ID: <20230712114754.500477-2-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230712114754.500477-1-Naresh.Solanki@9elements.com> References: <20230712114754.500477-1-Naresh.Solanki@9elements.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771216114312077739 X-GMAIL-MSGID: 1771216114312077739 From: Patrick Rudolph Add Monolithic Power Systems MP2971 & MP2973 to trivial devices. Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki Acked-by: Krzysztof Kozlowski --- Documentation/devicetree/bindings/trivial-devices.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml index 246863a9bc7e..f639618508a9 100644 --- a/Documentation/devicetree/bindings/trivial-devices.yaml +++ b/Documentation/devicetree/bindings/trivial-devices.yaml @@ -119,6 +119,10 @@ properties: - fsl,mpr121 # Monolithic Power Systems Inc. multi-phase controller mp2888 - mps,mp2888 + # Monolithic Power Systems Inc. multi-phase controller mp2971 + - mps,mp2971 + # Monolithic Power Systems Inc. multi-phase controller mp2973 + - mps,mp2973 # Monolithic Power Systems Inc. multi-phase controller mp2975 - mps,mp2975 # Honeywell Humidicon HIH-6130 humidity/temperature sensor From patchwork Wed Jul 12 11:47:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119131 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1105162vqm; Wed, 12 Jul 2023 05:15:22 -0700 (PDT) X-Google-Smtp-Source: APBJJlHanP+rSzkDcTu9NYEJJeENjSgWLVMEiRV0fy/L7Z18W35R9v0rDzr0vm8J65TXiu417iwt X-Received: by 2002:a05:6512:3e03:b0:4f8:b349:6938 with SMTP id i3-20020a0565123e0300b004f8b3496938mr18704377lfv.65.1689164121554; Wed, 12 Jul 2023 05:15:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689164121; cv=none; d=google.com; s=arc-20160816; b=TrGRtdP5ADPgkVVtcBoKgpTQVJUyk+L4vw9sXWeomkxVyg15JTVSGyqYRHu3pT8uzH rysZ4AUcnGV0ioB89eq7amYC+uzH6ONtlvO4m4htbQqu5FbCWc3CUnvjl2L2PWf+Usym PWv4mivs9fTkrJc6HoJJ2UzpOPjhuV1d3nTKk3q+vMS1GPI54OHoV6zUlsaxwqhm6oii 5oKYYARORrejMn/nVj5iwWAn3YCScmT3ibEXJz7U4HEaxdUTVRwEaCz2ZZsFGxvQigFz MQBfihN5na4nna3ObKIa0Qogfm/+XgBoko4wT6qnxP3pdY/MVAwvb31D1BfWG2RmI9Do toHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=nNQjkE8rt0loSfu/6IF9XOAi/Sv+jFDCxC5ymTmcAL4=; fh=JUrxmAGZpf2um0PJXMa+5wJ3JrTNc+xhv0SKeec5FHw=; b=cY7abhLHd5swiOcPT2ZX92A6vwQuiQjnLJ+iuUd331ViwUaldgqHQPcEE6q6ajbCJE HNYNgWeMTwhwFdZhAmYiJX3m2+sWZHs9SU4catshj1Ihb2CC/78a4A6jklteCpLfEeDD b0twtu/j4+/OEfyG0LmfD0E+Vc1YAAbrp9t/sI00OIiGePejPvtSeg1rqEwXhl/RKAiX KXZDWDyhqR84UnyzVwhHYJX9xkIi9BIIAjOFXmPrSCbIyHiWp2woAE6LhdDf6XUq//dY TrNRhtfsaOnJGB/SdnrzJffPJChZZpQHqxpXUccWmUTJH3bVEwemnKIp0Nna172cKDnh pvag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=QW1OxwFc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d15-20020aa7ce0f000000b0051d9db1a578si4459527edv.671.2023.07.12.05.14.57; Wed, 12 Jul 2023 05:15:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=QW1OxwFc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233296AbjGLLtm (ORCPT + 99 others); Wed, 12 Jul 2023 07:49:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233253AbjGLLtF (ORCPT ); Wed, 12 Jul 2023 07:49:05 -0400 Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E1F551FFC for ; Wed, 12 Jul 2023 04:48:21 -0700 (PDT) Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-3158a5e64b6so5158407f8f.0 for ; Wed, 12 Jul 2023 04:48:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162496; x=1691754496; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nNQjkE8rt0loSfu/6IF9XOAi/Sv+jFDCxC5ymTmcAL4=; b=QW1OxwFcn9/fM3iz2FPMk84jEGix8ud6DvyCVmxBy/7qEKrS9e/ynEzWm9B+Am0Hg/ QQmzkhQhEPk14OWaW4uMddOPGEYsw+4C/4LqtG2r4YaDKwhKwwh2w8FJQ16TOnsNzET8 ymxGgCI2DCwcXjH/0bcJMQlO+w+iaR+QY5GeOT+7C/93teYnYK+UBNGc4E8qFIPyN//b rwlaGuN8g0yMFFFSnnyjaMqJXHYHB//ROaId+Dvm8/cXVeyQRREweVth953vMnFKU+69 eixZmccmqrDJ5M9O03PIuS5DGnkQY0ShbrD2vWEKqPQNRaWPL8qH43rZN3XuaVO43G7i H7rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162496; x=1691754496; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nNQjkE8rt0loSfu/6IF9XOAi/Sv+jFDCxC5ymTmcAL4=; b=ea9W0v/6KtChmzj/KpQBdUp2g+8cs/Kk8HoiaoNK5GgLiYURpt0XiMfCOxKvBHxlI6 08MbFuTtWd1fomN50p7bFS4737vOzw1JghWt2j06HBVsEAHeWz8fYh8YC5on4IB83DFx vkvzwGOQMXjKcO+d0owdr02hFyv/O9JXej0yMmgGo5F9urScZhspMCHv7DEvqRNTXiwx u60nbotE2liUujZZipqZcoElo1MBXWtzGqXu3FPv1eKjqOzEk5u5BXbE6sWrgs1TERwz obJ1isIkuvKLJ5LfPzGV4bK72aKvubX2nIzv8dcZYXe93OOZv3z14i/AuGvITCrxRVK9 UpCQ== X-Gm-Message-State: ABy/qLZI1fngRym8oewfqeK9S89amnVAqNMb4cI5c/q3HDj02sPkch8r kf8tVpLYt7hcC9zNiDDUwhiHPil7ZYI2YCnlydmToA== X-Received: by 2002:adf:e483:0:b0:314:1bb7:8a19 with SMTP id i3-20020adfe483000000b003141bb78a19mr15814202wrm.35.1689162496665; Wed, 12 Jul 2023 04:48:16 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:16 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki Subject: [PATCH 3/8] hwmon: (pmbus/mp2975) Prepare for MP2973 and MP2971 Date: Wed, 12 Jul 2023 13:47:44 +0200 Message-ID: <20230712114754.500477-3-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230712114754.500477-1-Naresh.Solanki@9elements.com> References: <20230712114754.500477-1-Naresh.Solanki@9elements.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771216957503171898 X-GMAIL-MSGID: 1771216957503171898 From: Patrick Rudolph Add support for differntiating between the chips. The following commits will make use of this mechanism. Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki --- drivers/hwmon/pmbus/mp2975.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index 130cfde52e42..04778f2dcbdb 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "pmbus.h" /* Vendor specific registers. */ @@ -56,8 +57,13 @@ PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | \ PMBUS_HAVE_POUT | PMBUS_PHASE_VIRTUAL) +enum chips { + mp2975 +}; + struct mp2975_data { struct pmbus_driver_info info; + enum chips chip_id; int vout_scale; int vid_step[MP2975_PAGE_NUM]; int vref[MP2975_PAGE_NUM]; @@ -68,6 +74,13 @@ struct mp2975_data { int curr_sense_gain[MP2975_PAGE_NUM]; }; +static const struct i2c_device_id mp2975_id[] = { + {"mp2975", mp2975}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, mp2975_id); + #define to_mp2975_data(x) container_of(x, struct mp2975_data, info) static int mp2975_read_byte_data(struct i2c_client *client, int page, int reg) @@ -691,6 +704,11 @@ static int mp2975_probe(struct i2c_client *client) if (!data) return -ENOMEM; + if (client->dev.of_node) + data->chip_id = (enum chips)of_device_get_match_data(&client->dev); + else + data->chip_id = i2c_match_id(mp2975_id, client)->driver_data; + memcpy(&data->info, &mp2975_info, sizeof(*info)); info = &data->info; @@ -739,15 +757,8 @@ static int mp2975_probe(struct i2c_client *client) return pmbus_do_probe(client, info); } -static const struct i2c_device_id mp2975_id[] = { - {"mp2975", 0}, - {} -}; - -MODULE_DEVICE_TABLE(i2c, mp2975_id); - static const struct of_device_id __maybe_unused mp2975_of_match[] = { - {.compatible = "mps,mp2975"}, + {.compatible = "mps,mp2975", .data = (void *)mp2975}, {} }; MODULE_DEVICE_TABLE(of, mp2975_of_match); From patchwork Wed Jul 12 11:47:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119105 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1089827vqm; Wed, 12 Jul 2023 04:50:30 -0700 (PDT) X-Google-Smtp-Source: APBJJlEz1r07oA18wEFjQotXBUceciMfciwgcI/WRYFc47Za9I7+fk3JB3yQHXTQTRI7nCDP8J0B X-Received: by 2002:a17:90b:1d01:b0:263:f748:21c3 with SMTP id on1-20020a17090b1d0100b00263f74821c3mr19059869pjb.36.1689162630574; Wed, 12 Jul 2023 04:50:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689162630; cv=none; d=google.com; s=arc-20160816; b=tYUT+9ZffDxkGoUqBVHwdL0mJNDu+J+XWvSSMgZuuotj4ZM1PSev8S8rOj4nNvWt8E 22CX0rF3TDjZj3f0DuKrJeqIcVEUHY0aKSyxM/VNQ9EfuvXR4gv9cBxrR3TjW+3r1QxT MnpmKm6MrR4qnqrXLUo1oBWg7+Ld5GvWTp+L7AnbMAA528fG3TeP/GIfwuJIhFsHPEmz ORrCGRmdThklmdNkpXgcRxSj32hSHylYuyD4XAJlEKI3c5b7NH64MqzL6Id0Mmja6z4C 8aC08Oi2zhe498gpR4D/ydPWheuHjpaiWeFpXYunGo8UF2X5f06eHMq2HncsA69+O5GJ /ezw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0Saa7jbAnKv6/aFJ04VhkVrkgcqBc2X3n9e+eP71Ul0=; fh=JUrxmAGZpf2um0PJXMa+5wJ3JrTNc+xhv0SKeec5FHw=; b=oPF3EB4XfsYpiBRoWpS/SCESpGfSXZR1R2fS+WG1jI798L91wOGlV/oV3lgpgXfX/O 9TZHD9AP5i8g2LkKJx4e+B7yTAWHqjTflXFP4mtQOjrkYHyxo7J+6VceIKqMRvv1UbF+ DjSRP4ohMbjo7ccL9TGF1/o13KsYbJxYZl7gIlzgRpu0h35p8CDCWp2yr5PwoOT+NYeX EDJ5o+YlrgN/y4838b+zYWOo348s0gFNkq0sZg80Cx7xmsY3ggAv1ORtieuCPI03z5Ei HdycY6znR4SqNc9YQn/L05jRmjQEdzwJkVVwE2n2w0J/jA2oQDw76RdhEyyW+9a/ibKV t2UA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=W+m1h90U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i8-20020a17090a2ac800b00265817d03b5si3282381pjg.164.2023.07.12.04.50.15; Wed, 12 Jul 2023 04:50:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=W+m1h90U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233475AbjGLLtp (ORCPT + 99 others); Wed, 12 Jul 2023 07:49:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233256AbjGLLtG (ORCPT ); Wed, 12 Jul 2023 07:49:06 -0400 Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2D842105 for ; Wed, 12 Jul 2023 04:48:22 -0700 (PDT) Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-31441dfbf97so7685288f8f.1 for ; Wed, 12 Jul 2023 04:48:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162498; x=1691754498; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0Saa7jbAnKv6/aFJ04VhkVrkgcqBc2X3n9e+eP71Ul0=; b=W+m1h90UlA3oYUb3/8IOQdifd8XsTo1zwO6iXBzuAoaxwGzw5vcpBqrzf70aBY14Z3 duJX33JDVt/bOavIUTs14hm0hL8HTBzCAivTDyTYGV5f8qIQzdOFawuJzDpwVxsl2R18 w1AOZy+OuASSwvB9M22iJnCs51ElmT65kQkvVOFK780opEQP7wDNYP9OWDDoit+CPM6f n2q5XJLkhuQYUgYYhvK8Mx45nZJ5BOOX5cKfUBfTXaqZYJUs4AXm97zbCoiCsgv9qUs9 cBQSGEmYugaT7ki5ceYheZ4ZPeeBHRKJL/hsi6/dOmHDMQko3TK5L5ZpGScm/9S3np3D Ae0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162498; x=1691754498; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0Saa7jbAnKv6/aFJ04VhkVrkgcqBc2X3n9e+eP71Ul0=; b=FxkvfxqSubGOBEnPCf93/w9HNoexTS/HLP8iR/HDOIuinzUmhLYLKd3M4Btql07ITj 7iF2OyJxYLYnO2DoPJbsd3lVG87MJgbzWGzc5MI+6F+LHrZcC8sUtDNdjZCOejyVLaSV qmIBuGRfKdu8/7oZyCzIwmzMENxVhOd2312yZzfZNhQjjDJprBGUOVaNR36AP2vTvzCW JujVQU+Bn2KzFYyVkK9DRCu3zBYoS6+pamWQQ4sWe+ny5A3IgtmfRfYOqX0ty3Kbd2l5 KOYH315J5bpnx6L2YLclf/Bbb33WZF19YTojLXpEusTxhwrgxWR2ClvIXfmJrmMLoJBb 4O3g== X-Gm-Message-State: ABy/qLb67BYlN7RFTpTs8hv7WIfh/p0a/3FBeOF1Ao7bCQvgornEDcET GXdj2NIHT9qrWjEGJqNgRSjiog== X-Received: by 2002:a5d:5912:0:b0:314:c2a:31c5 with SMTP id v18-20020a5d5912000000b003140c2a31c5mr19304030wrd.19.1689162498000; Wed, 12 Jul 2023 04:48:18 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:17 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki Subject: [PATCH 4/8] hwmon: (pmbus/mp2975) Simplify VOUT code Date: Wed, 12 Jul 2023 13:47:45 +0200 Message-ID: <20230712114754.500477-4-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230712114754.500477-1-Naresh.Solanki@9elements.com> References: <20230712114754.500477-1-Naresh.Solanki@9elements.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771215394372868692 X-GMAIL-MSGID: 1771215394372868692 From: Patrick Rudolph In order to upstream MP2973/MP2971 simplify the code by removing support for various VOUT formats. The MP2973 and MP2971 supports all PMBUS supported formats for VOUT, while the MP2975 only support DIRECT and VID for VOUT. In DIRECT mode all chips report the voltage in 1mV/LSB. Configure the chip to use DIRECT format for VOUT and drop the code conversion code for other formats. The to be added chips MP2973/MP2971 will be configured to also report VOUT in DIRECT format. The maximum voltage that can be reported in DIRECT format is 32768mV. This is sufficient as the maximum output voltage for VR12/VR13 is 3040 mV. Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki --- drivers/hwmon/pmbus/mp2975.c | 54 ++++++------------------------------ 1 file changed, 8 insertions(+), 46 deletions(-) diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index 04778f2dcbdb..ebc9a84b8ad3 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -70,7 +70,6 @@ struct mp2975_data { int vref_off[MP2975_PAGE_NUM]; int vout_max[MP2975_PAGE_NUM]; int vout_ov_fixed[MP2975_PAGE_NUM]; - int vout_format[MP2975_PAGE_NUM]; int curr_sense_gain[MP2975_PAGE_NUM]; }; @@ -83,22 +82,6 @@ MODULE_DEVICE_TABLE(i2c, mp2975_id); #define to_mp2975_data(x) container_of(x, struct mp2975_data, info) -static int mp2975_read_byte_data(struct i2c_client *client, int page, int reg) -{ - switch (reg) { - case PMBUS_VOUT_MODE: - /* - * Enforce VOUT direct format, since device allows to set the - * different formats for the different rails. Conversion from - * VID to direct provided by driver internally, in case it is - * necessary. - */ - return PB_VOUT_MODE_DIRECT; - default: - return -ENODATA; - } -} - static int mp2975_read_word_helper(struct i2c_client *client, int page, int phase, u8 reg, u16 mask) @@ -273,24 +256,6 @@ static int mp2975_read_word_data(struct i2c_client *client, int page, ret = DIV_ROUND_CLOSEST(data->vref[page] * 10 - 50 * (ret + 1) * data->vout_scale, 10); break; - case PMBUS_READ_VOUT: - ret = mp2975_read_word_helper(client, page, phase, reg, - GENMASK(11, 0)); - if (ret < 0) - return ret; - - /* - * READ_VOUT can be provided in VID or direct format. The - * format type is specified by bit 15 of the register - * MP2975_MFR_DC_LOOP_CTRL. The driver enforces VOUT direct - * format, since device allows to set the different formats for - * the different rails and also all VOUT limits registers are - * provided in a direct format. In case format is VID - convert - * to direct. - */ - if (data->vout_format[page] == vid) - ret = mp2975_vid2direct(info->vrm_version[page], ret); - break; case PMBUS_VIRT_READ_POUT_MAX: ret = mp2975_read_word_helper(client, page, phase, MP2975_MFR_READ_POUT_PK, @@ -578,20 +543,18 @@ mp2975_vout_max_get(struct i2c_client *client, struct mp2975_data *data, } static int -mp2975_identify_vout_format(struct i2c_client *client, - struct mp2975_data *data, int page) +mp2975_set_vout_format(struct i2c_client *client, + struct mp2975_data *data, int page) { int ret; ret = i2c_smbus_read_word_data(client, MP2975_MFR_DC_LOOP_CTRL); if (ret < 0) return ret; - - if (ret & MP2975_VOUT_FORMAT) - data->vout_format[page] = vid; - else - data->vout_format[page] = direct; - return 0; + /* Enable DIRECT VOUT format 1mV/LSB */ + ret &= ~MP2975_VOUT_FORMAT; + ret = i2c_smbus_write_word_data(client, MP2975_MFR_DC_LOOP_CTRL, ret); + return ret; } static int @@ -650,11 +613,11 @@ mp2975_vout_per_rail_config_get(struct i2c_client *client, return ret; /* - * Get VOUT format for READ_VOUT command : VID or direct. + * Set VOUT format for READ_VOUT command : direct. * Pages on same device can be configured with different * formats. */ - ret = mp2975_identify_vout_format(client, data, i); + ret = mp2975_set_vout_format(client, data, i); if (ret < 0) return ret; @@ -689,7 +652,6 @@ static struct pmbus_driver_info mp2975_info = { PMBUS_HAVE_IIN | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | PMBUS_PHASE_VIRTUAL, - .read_byte_data = mp2975_read_byte_data, .read_word_data = mp2975_read_word_data, }; From patchwork Wed Jul 12 11:47:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119124 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1103276vqm; Wed, 12 Jul 2023 05:12:22 -0700 (PDT) X-Google-Smtp-Source: APBJJlEs9bqiQAFp7f14qYi73yLd5kKz/gZB9bwO9VQVtsFxywrcWnTbntLqZYg3Q+ZrCbVE96ZG X-Received: by 2002:a17:903:447:b0:1a5:150f:8558 with SMTP id iw7-20020a170903044700b001a5150f8558mr15986299plb.17.1689163941620; Wed, 12 Jul 2023 05:12:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689163941; cv=none; d=google.com; s=arc-20160816; b=n77ZaG283FtY47v3oTYJq89g4uBRc8OE9YU9TNYPluwukAU3d725qv+eklVqVcOJY7 BYxpAAuabyLTsI178g/b+1pY4KKOJpik591mXkbqDyyZwd26wj8Xw7Wp5YC5OhKWlcwW QCCWteOZmByCcKYVILTVqAqrUEpVhhGdDe9OMvNSUEF6vPU+UmtmIY+Mxwl+R8soGRhC fRW/2zwFnG8f9+zYvaE+9W6a1FAIR9lVipdRjJazSWVMqS5FpBz5WAverJE/zAumcG+J GKg5soChnPAryM7xulDwHqESlIUoFmb4+0Pn3R7VHbmu4UBGUNbaG1mjZlf6R0oEwO3V qQEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=dQ6ZilaXIbXVvZQf4zwkqGWFB61+kWs1K8oV/rSXRlI=; fh=JUrxmAGZpf2um0PJXMa+5wJ3JrTNc+xhv0SKeec5FHw=; b=Ax6JwrBGKjx7//ygZDgMxvcWyPhrX+Prnv6BfEkFOQVJQ9Bt1WrRCGdxInL6F5PfWP CQSSreXuAgxBH88Hb5a9E6eH0A9LYdbP3GlxTJfgVeyqUjrOrhBI5FLHi7wacvQP6x6W 8tRSVfM4ye4rur1BqEg98CDgHZo5w1OXkGIrtYDul/Mk9FSZQGFH+sUhHci900UqBECz kx4kfZouzvoZPnz/4YN+ZIMngLtbT50TDaFwZgd1Mr5SWewncfX6FQrohX5xKqj9iolD Rl3j/OgE948qy+3GM2BVQKFrHN49u5u0bFyyYLJh3dPXjq3yvJe/w8i4/qE8EmMUvyXr EXNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=XOpzP0vY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d9-20020a170902f14900b001b8b6089eeasi3206051plb.326.2023.07.12.05.12.09; Wed, 12 Jul 2023 05:12:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=XOpzP0vY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233242AbjGLLuB (ORCPT + 99 others); Wed, 12 Jul 2023 07:50:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233270AbjGLLtG (ORCPT ); Wed, 12 Jul 2023 07:49:06 -0400 Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 057E82115 for ; Wed, 12 Jul 2023 04:48:24 -0700 (PDT) Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3159d75606dso3164441f8f.1 for ; Wed, 12 Jul 2023 04:48:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162499; x=1691754499; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dQ6ZilaXIbXVvZQf4zwkqGWFB61+kWs1K8oV/rSXRlI=; b=XOpzP0vYSGIErNEX8B6llRYPeraEJcKzdS/EX9s5HRTGB71CQnA/5+MiaJwWc3+b2+ +F85ToEAhR8B0ke0RQMa2P8gg7phxnD2jDFISVC9pdYWzyXqiziUbOi98tPjXpbTPCQg 7KNjyA0YhWhIPHE+rK+IQMNo4l+n/yMysGcu6g24JozD2Ulf3rwhi9Mox8srl1P2Ao9G kBPPF+WRUR7IHxOSdBw11V0xDqbkKJJ+GQlN27pw2RSk+9dVtuDxjAmodIHEJQyXxnJ+ iFJPvsi6HJYgjfBn5Z4WlN6YYIIzg0Y4Cm2fn4pQQ3CeKwiGQvq8bmMG+vOKDimsE5l3 eJGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162499; x=1691754499; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dQ6ZilaXIbXVvZQf4zwkqGWFB61+kWs1K8oV/rSXRlI=; b=gxjAwSbl9/L6yzbIKXQt33MwuleuDb7LZ6fwzh1KCngwAOICBKTTxPtmnnHqyykQNm STjFGhrVqKEq4sQjdUZTU5N9ui00eMQSZ1X6zB/hwzkFDhe+8B9znQcb0j7ECffVc/vf bIXxnc2bgqM1LPPPgqRFRDBNVC+WVxOUa5vCiP+DuKNzFb2MLDIJ0w5tRXjvIq4IMX3m evsY+hHHp1LTlaKT/+ucEL+f1Guba5MbwoG007EkPx+iCaMS1uIdmen9KWIKr5ybgJ78 bZ8KG3EKuxk1+vOG50COiDGp7yc+6DdxnKDmwal3cWuhYX+RwvHGkGy/7CKdYYS0q81q ZpfA== X-Gm-Message-State: ABy/qLboUUYJxcPQYc4xW/lNmmaO+2Yk++WQlJLmgStkWnZZvWgLbTt2 JDpy5NzHSfPkcJ8zXnf11eFtZbMWytV6ytxOVAko6A== X-Received: by 2002:a05:6000:4c5:b0:314:1d7f:a69 with SMTP id h5-20020a05600004c500b003141d7f0a69mr17088296wri.67.1689162499157; Wed, 12 Jul 2023 04:48:19 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:18 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki Subject: [PATCH 5/8] hwmon: (pmbus/mp2975) Make phase count variable Date: Wed, 12 Jul 2023 13:47:46 +0200 Message-ID: <20230712114754.500477-5-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230712114754.500477-1-Naresh.Solanki@9elements.com> References: <20230712114754.500477-1-Naresh.Solanki@9elements.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771216769081186252 X-GMAIL-MSGID: 1771216769081186252 From: Patrick Rudolph In order to add support for MP2973 and MP2971 replace hardcoded phase count for both channels by a variable. Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki --- drivers/hwmon/pmbus/mp2975.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index ebc9a84b8ad3..13d8b95eb992 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -61,10 +61,15 @@ enum chips { mp2975 }; +static const int mp2975_max_phases[][MP2975_PAGE_NUM] = { + [mp2975] = { MP2975_MAX_PHASE_RAIL1, MP2975_MAX_PHASE_RAIL2 }, +}; + struct mp2975_data { struct pmbus_driver_info info; enum chips chip_id; int vout_scale; + int max_phases[MP2975_PAGE_NUM]; int vid_step[MP2975_PAGE_NUM]; int vref[MP2975_PAGE_NUM]; int vref_off[MP2975_PAGE_NUM]; @@ -304,25 +309,25 @@ static int mp2975_read_word_data(struct i2c_client *client, int page, return ret; } -static int mp2975_identify_multiphase_rail2(struct i2c_client *client) +static int mp2975_identify_multiphase_rail2(struct i2c_client *client, + struct mp2975_data *data) { int ret; /* - * Identify multiphase for rail 2 - could be from 0 to 4. + * Identify multiphase for rail 2 - could be from 0 to data->max_phases[1]. * In case phase number is zero – only page zero is supported */ ret = i2c_smbus_write_byte_data(client, PMBUS_PAGE, 2); if (ret < 0) return ret; - /* Identify multiphase for rail 2 - could be from 0 to 4. */ ret = i2c_smbus_read_word_data(client, MP2975_MFR_VR_MULTI_CONFIG_R2); if (ret < 0) return ret; ret &= GENMASK(2, 0); - return (ret >= 4) ? 4 : ret; + return (ret >= data->max_phases[1]) ? data->max_phases[1] : ret; } static void mp2975_set_phase_rail1(struct pmbus_driver_info *info) @@ -353,7 +358,7 @@ mp2975_identify_multiphase(struct i2c_client *client, struct mp2975_data *data, if (ret < 0) return ret; - /* Identify multiphase for rail 1 - could be from 1 to 8. */ + /* Identify multiphase for rail 1 - could be from 1 to data->max_phases[0]. */ ret = i2c_smbus_read_word_data(client, MP2975_MFR_VR_MULTI_CONFIG_R1); if (ret <= 0) return ret; @@ -361,19 +366,19 @@ mp2975_identify_multiphase(struct i2c_client *client, struct mp2975_data *data, info->phases[0] = ret & GENMASK(3, 0); /* - * The device provides a total of 8 PWM pins, and can be configured + * The device provides a total of $n PWM pins, and can be configured * to different phase count applications for rail 1 and rail 2. - * Rail 1 can be set to 8 phases, while rail 2 can only be set to 4 - * phases at most. When rail 1’s phase count is configured as 0, rail + * Rail 1 can be set to $n phases, while rail 2 can be set to less than + * that. When rail 1’s phase count is configured as 0, rail * 1 operates with 1-phase DCM. When rail 2 phase count is configured * as 0, rail 2 is disabled. */ - if (info->phases[0] > MP2975_MAX_PHASE_RAIL1) + if (info->phases[0] > data->max_phases[0]) return -EINVAL; mp2975_set_phase_rail1(info); - num_phases2 = min(MP2975_MAX_PHASE_RAIL1 - info->phases[0], - MP2975_MAX_PHASE_RAIL2); + num_phases2 = min(data->max_phases[0] - info->phases[0], + data->max_phases[1]); if (info->phases[1] && info->phases[1] <= num_phases2) mp2975_set_phase_rail2(info, num_phases2); @@ -671,11 +676,13 @@ static int mp2975_probe(struct i2c_client *client) else data->chip_id = i2c_match_id(mp2975_id, client)->driver_data; - memcpy(&data->info, &mp2975_info, sizeof(*info)); + memcpy(data->max_phases, mp2975_max_phases[data->chip_id], + sizeof(data->max_phases)); + info = &data->info; /* Identify multiphase configuration for rail 2. */ - ret = mp2975_identify_multiphase_rail2(client); + ret = mp2975_identify_multiphase_rail2(client, data); if (ret < 0) return ret; From patchwork Wed Jul 12 11:47:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119108 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1092055vqm; Wed, 12 Jul 2023 04:55:25 -0700 (PDT) X-Google-Smtp-Source: APBJJlGfn+OaCQBnH6wwDmC8MOWhSt6cLJ//V5xxh7zRO5rWBQvnr0GbV2XkGBg7ru9pd8xDVM4R X-Received: by 2002:a17:906:12:b0:988:99e:9798 with SMTP id 18-20020a170906001200b00988099e9798mr20022802eja.43.1689162924893; Wed, 12 Jul 2023 04:55:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689162924; cv=none; d=google.com; s=arc-20160816; b=qMiGi7GdsJ7ic+Tz4mMdm54yqln8LtyhP3/laEtEk5DRvIV+zPAa7hy1J3jr0qYiFF OIUMthOJprYLTebJuaycjSZPdJT2tl0Er9mw37DqZ222rdsA5O6Rqb82or+DoWy9cYXB vYMWVdDxg/arYNU2Dxtc9pZMmxy7HRuy1qyJ2ZzW2AWWDOiPKiqhMeMohYCTf8TuDZ4J Wlp54TrX0WYoZj+cnZtWqm96UJs5XeTxWLs1oP4ykQCcKdTxh89vZTjaJiz9ajzr0p7D NZbOTn3tyKT6gSJT5sJ9hX39yqbRYtGM9sMgf8Ca14/o81C/hRzvtSlX19/T7JX0b9Q3 SAqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1m4IVPTYTxIJ2eR766+zgp957YtC6bDJl8bkI+uTVV8=; fh=JUrxmAGZpf2um0PJXMa+5wJ3JrTNc+xhv0SKeec5FHw=; b=X4QKwG/JwqitfqFBaS+UcgBghXSGQ85N/fmP3Ix5OIWMjApKzhKxC9gd3dj5MLTth6 a9ec3GYv4i5av7OOs2Jeb3d2COU1UbfKomxvfUn5UCk8PJnlBeN7rhVktnzpL+/XK14P 4Tj2nDy2nzvL+shUbAE48/MC/szdCnc6zFCffekpqoeuu3u6VTIp/B1hY2ENy2CZA/UY yb17KEkkFdfo34Zd4uejA9sdzbD/ogJua8Sl31jETQVw0c4FYYY+IlyMWBFDBhHPpSi1 r1nUSC7yTY4/RzGNBUaH9BoInhAKYcv2d9BVixG9qVcf7Rq6P0Xsoa9OW/C2oZObbP2C UWvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=Is2g4i5s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j6-20020a17090686c600b00992860fb02esi4212796ejy.638.2023.07.12.04.55.01; Wed, 12 Jul 2023 04:55:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=Is2g4i5s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233344AbjGLLty (ORCPT + 99 others); Wed, 12 Jul 2023 07:49:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230233AbjGLLtM (ORCPT ); Wed, 12 Jul 2023 07:49:12 -0400 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A75B62125 for ; Wed, 12 Jul 2023 04:48:25 -0700 (PDT) Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-3fbf7fbe722so76681075e9.3 for ; Wed, 12 Jul 2023 04:48:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162500; x=1691754500; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1m4IVPTYTxIJ2eR766+zgp957YtC6bDJl8bkI+uTVV8=; b=Is2g4i5skUG49kdkkHXwd2e3VLaICw1hIfJk77v2uT4eDvV8Z1jzS0rUqhLDkssTa+ hFz7Rn7KxTqUK9jyoQ5+z5MHuwHSEg5r+mvU1HNJt0OeOELGOA9Drk56NudU2IdutguM cD1hLP26YQhP333BvEznA7LZTHxzFTo8x+E3yMLe402lziFRFN07aYkmff0v3hVHirO9 FLd1eanecuiR2f/If27oHbj8xSnr6F6TeLqW+KsRMw1oIJ0xRyl3xI5ASGArdPNArfyY XL/Rd1j4dS1dPz+BXT1NKaL/g5Arn3ONoR+43IjUA03ZMYoX10EbUzjvQshAYqFuqUmb xcJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162500; x=1691754500; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1m4IVPTYTxIJ2eR766+zgp957YtC6bDJl8bkI+uTVV8=; b=it5sS2kMVPtcSoI3ICs6gtugJj21M2ZXv/MCDRPWUDSUaYb5N1A3j66mFId3V9H2Jd LdLlQKukPMBvm+Znz9sOvDedTvGlKnaGUV4NPJ17OW40r1QUdUijss6o5l/I51UGrRzM t7iF8Caj1Minkr41k+OHtnMXtyRG2ntaI4ts9caZhNJWlIrxVV+i5vt3YJT8Sopo7vOf asCD5BkBbhBdQgcWdutB/opVVY45/i9T33PU3Vr+UP6AOpDazjG4hxTMQ6z6QhR8kQaf ePBmwoPXL9drxPwc7/yZYEepjTDD4xjtWrcj9TnUubzQ4AGEkjHrIH6P4B5iFIslklKj 7hOg== X-Gm-Message-State: ABy/qLbe9/rNVzWOr9hgdNC5Rd5fEJw5hjFWtfhCjtpuuJrQQ9adjFJd zaQPXOMi0INo4+jnXCPDdTUHiw== X-Received: by 2002:a5d:53d0:0:b0:311:110d:5573 with SMTP id a16-20020a5d53d0000000b00311110d5573mr19718372wrw.64.1689162500429; Wed, 12 Jul 2023 04:48:20 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:20 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki Subject: [PATCH 6/8] hwmon: (pmbus/mp2975) Add support for MP2971 and MP2973 Date: Wed, 12 Jul 2023 13:47:47 +0200 Message-ID: <20230712114754.500477-6-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230712114754.500477-1-Naresh.Solanki@9elements.com> References: <20230712114754.500477-1-Naresh.Solanki@9elements.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771215703301755984 X-GMAIL-MSGID: 1771215703301755984 From: Patrick Rudolph Add support for MP2971 and MP2973, the successor of MP2975. The major differences are: - On MP2973 and MP2971 the Vref cannot be read and thus most of the OVP/current calculations won't work. - MP2973 and MP2971 also support LINEAR format for VOUT - MP2973 and MP2971 do not support OVP2 - On MP2973 and MP2971 most registers are in LINEAR format - The IMVP9_EN bit has a different position - Per phase current sense haven't been implemented. As on MP2975 most of the FAULT_LIMIT and WARN_LIMIT registers have been redefined and doesn't provide the functionality as defined in PMBUS spec. Tested on MP2973 and MP2971. Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki --- drivers/hwmon/pmbus/mp2975.c | 262 +++++++++++++++++++++++++++++------ 1 file changed, 221 insertions(+), 41 deletions(-) diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index 13d8b95eb992..83242595ccbe 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -35,6 +35,8 @@ #define MP2975_MFR_OVP_TH_SET 0xe5 #define MP2975_MFR_UVP_SET 0xe6 +#define MP2973_MFR_RESO_SET 0xc7 + #define MP2975_VOUT_FORMAT BIT(15) #define MP2975_VID_STEP_SEL_R1 BIT(4) #define MP2975_IMVP9_EN_R1 BIT(13) @@ -49,8 +51,32 @@ #define MP2975_SENSE_AMPL_HALF 2 #define MP2975_VIN_UV_LIMIT_UNIT 8 +#define MP2973_VOUT_FORMAT_R1 GENMASK(7, 6) +#define MP2973_VOUT_FORMAT_R2 GENMASK(4, 3) +#define MP2973_VOUT_FORMAT_DIRECT_R1 BIT(7) +#define MP2973_VOUT_FORMAT_LINEAR_R1 BIT(6) +#define MP2973_VOUT_FORMAT_DIRECT_R2 BIT(4) +#define MP2973_VOUT_FORMAT_LINEAR_R2 BIT(3) + +#define MP2973_MFR_VR_MULTI_CONFIG_R1 0x0d +#define MP2973_MFR_VR_MULTI_CONFIG_R2 0x1d +#define MP2973_VID_STEP_SEL_R1 BIT(4) +#define MP2973_IMVP9_EN_R1 BIT(14) +#define MP2973_VID_STEP_SEL_R2 BIT(3) +#define MP2973_IMVP9_EN_R2 BIT(13) + +#define MP2973_MFR_READ_IOUT_PK 0x90 +#define MP2973_MFR_READ_POUT_PK 0x91 + #define MP2975_MAX_PHASE_RAIL1 8 #define MP2975_MAX_PHASE_RAIL2 4 + +#define MP2973_MAX_PHASE_RAIL1 14 +#define MP2973_MAX_PHASE_RAIL2 6 + +#define MP2971_MAX_PHASE_RAIL1 8 +#define MP2971_MAX_PHASE_RAIL2 3 + #define MP2975_PAGE_NUM 2 #define MP2975_RAIL2_FUNC (PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | \ @@ -58,11 +84,13 @@ PMBUS_HAVE_POUT | PMBUS_PHASE_VIRTUAL) enum chips { - mp2975 + mp2971, mp2973, mp2975 }; static const int mp2975_max_phases[][MP2975_PAGE_NUM] = { [mp2975] = { MP2975_MAX_PHASE_RAIL1, MP2975_MAX_PHASE_RAIL2 }, + [mp2973] = { MP2973_MAX_PHASE_RAIL1, MP2973_MAX_PHASE_RAIL2 }, + [mp2971] = { MP2971_MAX_PHASE_RAIL1, MP2971_MAX_PHASE_RAIL2 }, }; struct mp2975_data { @@ -79,6 +107,8 @@ struct mp2975_data { }; static const struct i2c_device_id mp2975_id[] = { + {"mp2971", mp2971}, + {"mp2973", mp2973}, {"mp2975", mp2975}, {} }; @@ -215,6 +245,76 @@ mp2975_read_phases(struct i2c_client *client, struct mp2975_data *data, return ret; } +static int mp2973_read_word_data(struct i2c_client *client, int page, + int phase, int reg) +{ + const struct pmbus_driver_info *info = pmbus_get_driver_info(client); + struct mp2975_data *data = to_mp2975_data(info); + int ret; + + switch (reg) { + case PMBUS_OT_FAULT_LIMIT: + ret = mp2975_read_word_helper(client, page, phase, reg, + GENMASK(7, 0)); + break; + case PMBUS_VIN_OV_FAULT_LIMIT: + ret = mp2975_read_word_helper(client, page, phase, reg, + GENMASK(7, 0)); + if (ret < 0) + return ret; + + ret = DIV_ROUND_CLOSEST(ret, MP2975_VIN_UV_LIMIT_UNIT); + break; + case PMBUS_VOUT_OV_FAULT_LIMIT: + /* + * MP2971 and mp2973 only supports tracking (ovp1) mode. + */ + ret = mp2975_read_word_helper(client, page, phase, + MP2975_MFR_OVP_TH_SET, + GENMASK(2, 0)); + if (ret < 0) + return ret; + + ret = data->vout_max[page] + 50 * (ret + 1); + break; + case PMBUS_VOUT_UV_FAULT_LIMIT: + ret = mp2975_read_word_helper(client, page, phase, reg, + GENMASK(8, 0)); + if (ret < 0) + return ret; + ret = mp2975_vid2direct(info->vrm_version[page], ret); + break; + case PMBUS_VIRT_READ_POUT_MAX: + ret = pmbus_read_word_data(client, page, phase, + MP2973_MFR_READ_POUT_PK); + break; + case PMBUS_VIRT_READ_IOUT_MAX: + ret = pmbus_read_word_data(client, page, phase, + MP2973_MFR_READ_IOUT_PK); + break; + case PMBUS_UT_WARN_LIMIT: + case PMBUS_UT_FAULT_LIMIT: + case PMBUS_VIN_UV_WARN_LIMIT: + case PMBUS_VIN_UV_FAULT_LIMIT: + case PMBUS_VOUT_UV_WARN_LIMIT: + case PMBUS_VOUT_OV_WARN_LIMIT: + case PMBUS_VIN_OV_WARN_LIMIT: + case PMBUS_IIN_OC_FAULT_LIMIT: + case PMBUS_IOUT_OC_LV_FAULT_LIMIT: + case PMBUS_IOUT_OC_WARN_LIMIT: + case PMBUS_IOUT_OC_FAULT_LIMIT: + case PMBUS_IOUT_UC_FAULT_LIMIT: + case PMBUS_POUT_OP_FAULT_LIMIT: + case PMBUS_POUT_OP_WARN_LIMIT: + case PMBUS_PIN_OP_WARN_LIMIT: + return -ENXIO; + default: + return -ENODATA; + } + + return ret; +} + static int mp2975_read_word_data(struct i2c_client *client, int page, int phase, int reg) { @@ -386,7 +486,7 @@ mp2975_identify_multiphase(struct i2c_client *client, struct mp2975_data *data, } static int -mp2975_identify_vid(struct i2c_client *client, struct mp2975_data *data, +mp297x_identify_vid(struct i2c_client *client, struct mp2975_data *data, struct pmbus_driver_info *info, u32 reg, int page, u32 imvp_bit, u32 vr_bit) { @@ -422,7 +522,7 @@ mp2975_identify_rails_vid(struct i2c_client *client, struct mp2975_data *data, return ret; /* Identify VID mode for rail 1. */ - ret = mp2975_identify_vid(client, data, info, + ret = mp297x_identify_vid(client, data, info, MP2975_MFR_VR_MULTI_CONFIG_R1, 0, MP2975_IMVP9_EN_R1, MP2975_VID_STEP_SEL_R1); if (ret < 0) @@ -430,10 +530,39 @@ mp2975_identify_rails_vid(struct i2c_client *client, struct mp2975_data *data, /* Identify VID mode for rail 2, if connected. */ if (info->phases[1]) - ret = mp2975_identify_vid(client, data, info, + ret = mp297x_identify_vid(client, data, info, MP2975_MFR_VR_MULTI_CONFIG_R2, 1, MP2975_IMVP9_EN_R2, MP2975_VID_STEP_SEL_R2); + + return ret; +} + +static int +mp2973_identify_rails_vid(struct i2c_client *client, struct mp2975_data *data, + struct pmbus_driver_info *info) +{ + int ret; + + ret = i2c_smbus_write_byte_data(client, PMBUS_PAGE, 2); + if (ret < 0) + return ret; + + /* Identify VID mode for rail 1. */ + ret = mp297x_identify_vid(client, data, info, + MP2973_MFR_VR_MULTI_CONFIG_R1, 0, + MP2973_IMVP9_EN_R1, MP2973_VID_STEP_SEL_R1); + + if (ret < 0) + return ret; + + /* Identify VID mode for rail 2, if connected. */ + if (info->phases[1]) + ret = mp297x_identify_vid(client, data, info, + MP2973_MFR_VR_MULTI_CONFIG_R2, 1, + MP2973_IMVP9_EN_R2, + MP2973_VID_STEP_SEL_R2); + return ret; } @@ -532,7 +661,7 @@ mp2975_vref_offset_get(struct i2c_client *client, struct mp2975_data *data, } static int -mp2975_vout_max_get(struct i2c_client *client, struct mp2975_data *data, +mp297x_vout_max_get(struct i2c_client *client, struct mp2975_data *data, struct pmbus_driver_info *info, int page) { int ret; @@ -548,17 +677,33 @@ mp2975_vout_max_get(struct i2c_client *client, struct mp2975_data *data, } static int -mp2975_set_vout_format(struct i2c_client *client, +mp297x_set_vout_format(struct i2c_client *client, struct mp2975_data *data, int page) { int ret; - ret = i2c_smbus_read_word_data(client, MP2975_MFR_DC_LOOP_CTRL); - if (ret < 0) - return ret; /* Enable DIRECT VOUT format 1mV/LSB */ - ret &= ~MP2975_VOUT_FORMAT; - ret = i2c_smbus_write_word_data(client, MP2975_MFR_DC_LOOP_CTRL, ret); + if (data->chip_id == mp2975) { + ret = i2c_smbus_read_word_data(client, MP2975_MFR_DC_LOOP_CTRL); + if (ret < 0) + return ret; + ret &= ~MP2975_VOUT_FORMAT; + ret = i2c_smbus_write_word_data(client, MP2975_MFR_DC_LOOP_CTRL, ret); + } else { + ret = i2c_smbus_read_word_data(client, MP2973_MFR_RESO_SET); + if (ret < 0) + return ret; + + if (page == 0) { + ret &= ~MP2973_VOUT_FORMAT_R1; + ret |= MP2973_VOUT_FORMAT_DIRECT_R1; + } else { + ret &= ~MP2973_VOUT_FORMAT_R2; + ret |= MP2973_VOUT_FORMAT_DIRECT_R2; + } + + ret = i2c_smbus_write_word_data(client, MP2973_MFR_RESO_SET, ret); + } return ret; } @@ -605,24 +750,28 @@ mp2975_vout_per_rail_config_get(struct i2c_client *client, for (i = 0; i < data->info.pages; i++) { ret = i2c_smbus_write_byte_data(client, PMBUS_PAGE, i); if (ret < 0) - return ret; + continue; - /* Obtain voltage reference offsets. */ - ret = mp2975_vref_offset_get(client, data, i); + /* + * Set VOUT format for READ_VOUT command : direct. + * Pages on same device can be configured with different + * formats. + */ + ret = mp297x_set_vout_format(client, data, i); if (ret < 0) return ret; /* Obtain maximum voltage values. */ - ret = mp2975_vout_max_get(client, data, info, i); + ret = mp297x_vout_max_get(client, data, info, i); if (ret < 0) return ret; - /* - * Set VOUT format for READ_VOUT command : direct. - * Pages on same device can be configured with different - * formats. - */ - ret = mp2975_set_vout_format(client, data, i); + /* Skip if reading Vref is unsupported */ + if (data->chip_id != mp2975) + continue; + + /* Obtain voltage reference offsets. */ + ret = mp2975_vref_offset_get(client, data, i); if (ret < 0) return ret; @@ -660,6 +809,23 @@ static struct pmbus_driver_info mp2975_info = { .read_word_data = mp2975_read_word_data, }; +static struct pmbus_driver_info mp2973_info = { + .pages = 1, + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_VOLTAGE_OUT] = direct, + .format[PSC_TEMPERATURE] = linear, + .format[PSC_CURRENT_IN] = linear, + .format[PSC_CURRENT_OUT] = linear, + .format[PSC_POWER] = linear, + .m[PSC_VOLTAGE_OUT] = 1, + .R[PSC_VOLTAGE_OUT] = 3, + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_IIN | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | PMBUS_HAVE_POUT | + PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT, + .read_word_data = mp2973_read_word_data, +}; + static int mp2975_probe(struct i2c_client *client) { struct pmbus_driver_info *info; @@ -679,6 +845,11 @@ static int mp2975_probe(struct i2c_client *client) memcpy(data->max_phases, mp2975_max_phases[data->chip_id], sizeof(data->max_phases)); + if (data->chip_id == mp2975) + memcpy(&data->info, &mp2975_info, sizeof(*info)); + else + memcpy(&data->info, &mp2973_info, sizeof(*info)); + info = &data->info; /* Identify multiphase configuration for rail 2. */ @@ -693,30 +864,37 @@ static int mp2975_probe(struct i2c_client *client) data->info.func[1] = MP2975_RAIL2_FUNC; } - /* Identify multiphase configuration. */ - ret = mp2975_identify_multiphase(client, data, info); - if (ret) - return ret; + if (data->chip_id == mp2975) { + /* Identify multiphase configuration. */ + ret = mp2975_identify_multiphase(client, data, info); + if (ret) + return ret; - /* Identify VID setting per rail. */ - ret = mp2975_identify_rails_vid(client, data, info); - if (ret < 0) - return ret; + /* Identify VID setting per rail. */ + ret = mp2975_identify_rails_vid(client, data, info); + if (ret < 0) + return ret; - /* Obtain current sense gain of power stage. */ - ret = mp2975_current_sense_gain_get(client, data); - if (ret) - return ret; + /* Obtain current sense gain of power stage. */ + ret = mp2975_current_sense_gain_get(client, data); + if (ret) + return ret; - /* Obtain voltage reference values. */ - ret = mp2975_vref_get(client, data, info); - if (ret) - return ret; + /* Obtain voltage reference values. */ + ret = mp2975_vref_get(client, data, info); + if (ret) + return ret; - /* Obtain vout over-voltage scales. */ - ret = mp2975_vout_ov_scale_get(client, data, info); - if (ret < 0) - return ret; + /* Obtain vout over-voltage scales. */ + ret = mp2975_vout_ov_scale_get(client, data, info); + if (ret < 0) + return ret; + } else { + /* Identify VID setting per rail. */ + ret = mp2973_identify_rails_vid(client, data, info); + if (ret < 0) + return ret; + } /* Obtain offsets, maximum and format for vout. */ ret = mp2975_vout_per_rail_config_get(client, data, info); @@ -727,6 +905,8 @@ static int mp2975_probe(struct i2c_client *client) } static const struct of_device_id __maybe_unused mp2975_of_match[] = { + {.compatible = "mps,mp2971", .data = (void *)mp2971}, + {.compatible = "mps,mp2973", .data = (void *)mp2973}, {.compatible = "mps,mp2975", .data = (void *)mp2975}, {} }; From patchwork Wed Jul 12 11:47:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119106 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1090051vqm; Wed, 12 Jul 2023 04:50:58 -0700 (PDT) X-Google-Smtp-Source: APBJJlGpT2xagmuzDBcRKAU8vDLKp3qObjwDEjO3P7m92MZHluBtqSiYeDRGZIkUJXVjBDSsp8Y8 X-Received: by 2002:a05:6a00:21cb:b0:66c:9e97:aece with SMTP id t11-20020a056a0021cb00b0066c9e97aecemr16059858pfj.10.1689162658494; Wed, 12 Jul 2023 04:50:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689162658; cv=none; d=google.com; s=arc-20160816; b=akCURGBa8evYt3LxWXceKUhlRV74m+cR9cnhVfsziD7/UEWlMn8UCKYJKx6sFC+eoy OBuP7FfTxdDD84kIZ/QpJxNmIUhK74zPVCRfK5ZtIrXBaC94Doh9C1wi3MEcXb9cpxoP lXm08S5Yu217gJhwTfZhw+ewyjvbxAHITr8Xcqp2uRlz/tIb0cVF3h4aMgHp/KT76UE2 isC/UjTWOgMHTn7B8lWs39CKxPCqQ9pcBIKWL5QGjasTdf95LZgcpufckg5a7zdyFngs OpbDPsgJOBADZxLGIzyKIetreOLZij0DeEN8m0rmIIHw0uOhx0sLCP7hHErk38MJ4Xdn NU3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IRZ8NxnOXW8JvRWNhwwvJBRU3h2xQilhA7rCBni0gfM=; fh=JUrxmAGZpf2um0PJXMa+5wJ3JrTNc+xhv0SKeec5FHw=; b=PTLrSNJeDsReiajh7LxrmkePEvUjEKANzMfMorK0YL9gUv4Z/EwhFWkHMYS+BLIBxp wOCzC7UD5L15pJXePxNnbqhE0zIIcLsDX7T7zB3e0QCsDkZh/d6wUW4klcKBRHjXk4R4 JFr1HeZPcfhYtmY/LMzBrbLPR9Jb0InI40+tz1R/cMMUnWga2FHfu3kKAEyXjFOQWblm qVF5FDIPS8KHTHeX9PqE4bqae5XOnxc/xNQ9aAJB2v8QyOhdaXQwPSXRoUy6ZYWnpIum KPEEVPVg4la0OocLVFBW9u4lcDtApxWWtyOipZR3D6V5utVVM13PuPsc7Bxf5iuVM9f+ kMeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=KLuKSdTk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f19-20020aa78b13000000b0068219eb279bsi3015495pfd.245.2023.07.12.04.50.43; Wed, 12 Jul 2023 04:50:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=KLuKSdTk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233297AbjGLLt5 (ORCPT + 99 others); Wed, 12 Jul 2023 07:49:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37948 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233290AbjGLLtO (ORCPT ); Wed, 12 Jul 2023 07:49:14 -0400 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D45582136 for ; Wed, 12 Jul 2023 04:48:28 -0700 (PDT) Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3143ccb0f75so7800863f8f.0 for ; Wed, 12 Jul 2023 04:48:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162501; x=1691754501; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IRZ8NxnOXW8JvRWNhwwvJBRU3h2xQilhA7rCBni0gfM=; b=KLuKSdTkted1k+klbAISadfrB0aMXnWX4BClAnoYzFLEAXLGw5nw55vaJUSFmDbisS xsAaZE7jTejPP8p5sMas5oCuBto/nSHHPjWVPQiTBHQtWnF51qcLn0CI674lYH6qcutZ 8eStdOxCH4k8UIfwVxPjIAfUVGRorz8e7AshkQOKU+g1KeNlCqPET+x5s8hLupTl0MpI sM0VMyJzOZz8OLYkRXDjM0MdVCTwPwJX9aP/7Dx/AfVyYuuSOHXHEpEvEWo8NDtno/NP e3v7ygUiNsxs95+oPWlTaF6OM9KzCJ7+9mnfnOzm0W8ZsS4fqzxtsxGVC4TLYBklanWf rYfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162501; x=1691754501; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IRZ8NxnOXW8JvRWNhwwvJBRU3h2xQilhA7rCBni0gfM=; b=chruerIbdPx1FkVYb6luMj4zTXc4KiLXw6QnDLkhLCb9asVx0QnLTERw2nKmQ4hia6 WvJb41GCw8goFyqlnDFhE3C7yYN4MqWf9KJZMMCzgtq4APe1Yl6WTamTnwEbx0ce9b1J QXHNeQ33UpAjw+bV0nDVxT/FFeUED+1N1456ZQp23sBhhhutO4kWKhj/YiJhgOf8DUhe w4c2jLM9dG2JgzXYQHS4yQI8PhfczYaYZ0R8esMy9LpXUi8nEgml405iBxOeuu4vdh2M 7rjDcrc5cLB3rBFniuqHYH2ddZ9Xb+nF4/wUleadmeLV7E0ePn8gVCdbe4BB4HL90H1u hm0Q== X-Gm-Message-State: ABy/qLaNP5CJG00vcwOlXkin0HOLvjn7KMoLJRaGVC+0BpiIALQOnf6y 32FN82A7mn2BrUDgKUHKs4wycw== X-Received: by 2002:adf:f604:0:b0:313:f6fc:1f48 with SMTP id t4-20020adff604000000b00313f6fc1f48mr23901670wrp.14.1689162501667; Wed, 12 Jul 2023 04:48:21 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:21 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki Subject: [PATCH 7/8] hwmon: (pmbus/mp2975) Add regulator support Date: Wed, 12 Jul 2023 13:47:48 +0200 Message-ID: <20230712114754.500477-7-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230712114754.500477-1-Naresh.Solanki@9elements.com> References: <20230712114754.500477-1-Naresh.Solanki@9elements.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771215423826508613 X-GMAIL-MSGID: 1771215423826508613 From: Patrick Rudolph Add support to expose the PMBUS regulator. Tested on MP2973 and MP2971. Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki --- drivers/hwmon/pmbus/Kconfig | 7 +++++++ drivers/hwmon/pmbus/mp2975.c | 15 +++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig index 270b6336b76d..b4e93bd5835e 100644 --- a/drivers/hwmon/pmbus/Kconfig +++ b/drivers/hwmon/pmbus/Kconfig @@ -317,6 +317,13 @@ config SENSORS_MP2975 This driver can also be built as a module. If so, the module will be called mp2975. +config SENSORS_MP2975_REGULATOR + depends on SENSORS_MP2975 && REGULATOR + bool "Regulator support for MPS MP2975" + help + If you say yes here you get regulator support for MPS MP2975 + Dual Loop Digital Multi-Phase Controller. + config SENSORS_MP5023 tristate "MPS MP5023" help diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index 83242595ccbe..27a9724aed68 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -115,6 +115,11 @@ static const struct i2c_device_id mp2975_id[] = { MODULE_DEVICE_TABLE(i2c, mp2975_id); +static const struct regulator_desc __maybe_unused mp2975_reg_desc[] = { + PMBUS_REGULATOR("vout", 0), + PMBUS_REGULATOR("vout", 1), +}; + #define to_mp2975_data(x) container_of(x, struct mp2975_data, info) static int @@ -807,6 +812,10 @@ static struct pmbus_driver_info mp2975_info = { PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | PMBUS_PHASE_VIRTUAL, .read_word_data = mp2975_read_word_data, +#if IS_ENABLED(CONFIG_SENSORS_MP2975_REGULATOR) + .num_regulators = 1, + .reg_desc = mp2975_reg_desc, +#endif }; static struct pmbus_driver_info mp2973_info = { @@ -824,6 +833,10 @@ static struct pmbus_driver_info mp2973_info = { PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT, .read_word_data = mp2973_read_word_data, +#if IS_ENABLED(CONFIG_SENSORS_MP2975_REGULATOR) + .num_regulators = 1, + .reg_desc = mp2975_reg_desc, +#endif }; static int mp2975_probe(struct i2c_client *client) @@ -862,6 +875,8 @@ static int mp2975_probe(struct i2c_client *client) data->info.pages = MP2975_PAGE_NUM; data->info.phases[1] = ret; data->info.func[1] = MP2975_RAIL2_FUNC; + if (CONFIG_SENSORS_MP2975_REGULATOR) + data->info.num_regulators = MP2975_PAGE_NUM; } if (data->chip_id == mp2975) { From patchwork Wed Jul 12 11:47:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Naresh Solanki X-Patchwork-Id: 119112 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1093607vqm; Wed, 12 Jul 2023 04:58:55 -0700 (PDT) X-Google-Smtp-Source: APBJJlGkqmbzI/LzDaKlmY8RyUrfQm6j1WkP/+Rralo+JN/OtQTlyr5CwbfivcDMulK3JnUZiDx6 X-Received: by 2002:aa7:cad9:0:b0:51d:d2b9:54a0 with SMTP id l25-20020aa7cad9000000b0051dd2b954a0mr17010843edt.2.1689163135716; Wed, 12 Jul 2023 04:58:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689163135; cv=none; d=google.com; s=arc-20160816; b=d2HOWo5Wt3mFfnUkcp120AifFtVribMb5fvcBe0eeaGiyOPwzHXsaTCMj4FCN569K5 OwoSiek/2S6Uk5VEttq13RT5PiBe/TlHn4e2vHjo/D1qO0ZeSdSawi9pZvmjo0SwGH5A nh8fmtut6V8X8fohIW2OZDSsqmnAPg1IG7cJdvaGA3OzpypTq/7wiN8ckRwaSqc2RZ6x smpiqTOA6ZTe59V/HU23inWW4gImy2l5aAN5jLzilXv4seGx8VFbkXyrNVQ2dwF8khR1 HoOQfxbUfIKh13fH/0YsKm+/ilnC9eGvZ2rzXIEY8fSJoywTAixOFmrhJTPHxAifh8po 45zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=i5BOr/cNAxLqespyX9yFLeLzm/eFPOS6HvzeibnDsPE=; fh=JUrxmAGZpf2um0PJXMa+5wJ3JrTNc+xhv0SKeec5FHw=; b=Lb4yig4Oxt2ihSLB408YcO0jCmFNGVYhGKv/vUmnJ4W03Sh4LNh4i9goQQ8IVVxtnS xVw7qpFGLmjuf4sdiD6etyF4UvSQGNFvUnczdML3Ek7KVJcsGl7TLg+vqMMM4MDR6bYH g4RT4xOAszb34XAURvToYZ9saDG8nY4pLdu/0Rn8xFsjyRmaS3YGY92PjtEu4x5Gj+NM a9mAaK9Dk3K0w9QfyAnrnBGVsYPLrsB+zPDSF0XUz7bNpGyAtrMBt/p9sELiGQTRtJkz YL0aPEl1XA8Do/Sm53z5YBN/h2eqjNXvFQeEiBESBqVcYDCYFZJHlfhSSF7Ra6gqdh/F r3mQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=eFKUE+hs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f17-20020a50ee91000000b005184a8f7212si4141439edr.493.2023.07.12.04.58.32; Wed, 12 Jul 2023 04:58:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@9elements.com header.s=google header.b=eFKUE+hs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=9elements.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233325AbjGLLuE (ORCPT + 99 others); Wed, 12 Jul 2023 07:50:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38022 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233331AbjGLLtP (ORCPT ); Wed, 12 Jul 2023 07:49:15 -0400 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E285210C for ; Wed, 12 Jul 2023 04:48:31 -0700 (PDT) Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-313fb7f0f80so6900531f8f.2 for ; Wed, 12 Jul 2023 04:48:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=9elements.com; s=google; t=1689162503; x=1691754503; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=i5BOr/cNAxLqespyX9yFLeLzm/eFPOS6HvzeibnDsPE=; b=eFKUE+hsXTXdVoZU/iamy44AFLV+pMDVAtXHkJgt9l4OlmmlA2YH61u8RCY83gil44 MCKUX0J08FctFthaeX6s6fQ+HYux1GlyfqMFsOR0LFMUUwwFIoA0qpVp0a/LRFz4LpSJ AgV5JN4O1P8GwuvpWeCFmoksvBGgCezw5E5FiL4r9FthpPV0ksyOv+frifxdwixNXfcI NXL259LldlSJpUs0XElVi8nJPj5vlKP9iywhwqmHSawEFtSWjnO+jjGqGWq44Tqz0vYb 7ScntcmRdSO9tzZwLmPJJWwnqIfTv9QNz7KcB15Ne443TV2uVcJuBWJ6i4ua4fQ2zF8C 9mow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689162503; x=1691754503; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=i5BOr/cNAxLqespyX9yFLeLzm/eFPOS6HvzeibnDsPE=; b=aC6nxF4km7jrNZEySEy++fvkl3Fo2PvO0RW1+3CEozZygVPV3zG36vpHz5eu5B2v/k m1s5Pzkp24x2NUKy6O+uWSBTp0QxcQZJ2t2R9tjb463PY+LSSIpi0z28zWGF8YpQK1Ds BnCBwgAExI1w5xIaKPqewpeTn9anx4TqwhV6LE3qELNmPid0E4LO9oa1mq4eKvPigeds ZgVfhOpz3t8S88Lf27aX0wCetwNbuKr2uCN6UhRbw/BIbEF/mL6B1aoX8OmVH0YSE+q3 JdcbooqV3WQYL710VY7AAE4/e3aXEajwxU/nVUVKnpsLs3brhKVvOL3sUdEwo30DQ7wH XJ8A== X-Gm-Message-State: ABy/qLbmyutwISA6ex033Xcq8BngObl50peLhtWD/Rqujho/v3J9cuV2 8e9yZhU2Fyu2mEM1pwoRpt9dng== X-Received: by 2002:a5d:4c88:0:b0:314:35df:4a3e with SMTP id z8-20020a5d4c88000000b0031435df4a3emr16296631wrs.7.1689162502828; Wed, 12 Jul 2023 04:48:22 -0700 (PDT) Received: from stroh80.sec.9e.network (ip-078-094-000-051.um19.pools.vodafone-ip.de. [78.94.0.51]) by smtp.gmail.com with ESMTPSA id j2-20020a5d4482000000b003143867d2ebsm4867463wrq.63.2023.07.12.04.48.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 04:48:22 -0700 (PDT) From: Naresh Solanki X-Google-Original-From: Naresh Solanki To: devicetree@vger.kernel.org, Guenter Roeck , Jean Delvare Cc: linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org, Patrick Rudolph , Naresh Solanki Subject: [PATCH 8/8] hwmon: (pmbus/mp2975) Add OCP limit Date: Wed, 12 Jul 2023 13:47:49 +0200 Message-ID: <20230712114754.500477-8-Naresh.Solanki@9elements.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230712114754.500477-1-Naresh.Solanki@9elements.com> References: <20230712114754.500477-1-Naresh.Solanki@9elements.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771215924184757448 X-GMAIL-MSGID: 1771215924184757448 From: Patrick Rudolph Add support for PMBUS_IOUT_OC_FAULT_LIMIT. Add a helper function to convert the limit to LINEAR11 format and read data->info.phases[0] on MP2971 and MP2973 as well. Signed-off-by: Patrick Rudolph Signed-off-by: Naresh Solanki --- drivers/hwmon/pmbus/mp2975.c | 76 ++++++++++++++++++++++++++++++------ 1 file changed, 65 insertions(+), 11 deletions(-) diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index 27a9724aed68..0a6669f865f6 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -65,6 +65,10 @@ #define MP2973_VID_STEP_SEL_R2 BIT(3) #define MP2973_IMVP9_EN_R2 BIT(13) +#define MP2973_MFR_OCP_TOTAL_SET 0x5f +#define MP2973_OCP_TOTAL_CUR_MASK GENMASK(6, 0) +#define MP2973_MFR_OCP_LEVEL_RES BIT(15) + #define MP2973_MFR_READ_IOUT_PK 0x90 #define MP2973_MFR_READ_POUT_PK 0x91 @@ -153,6 +157,41 @@ mp2975_vid2direct(int vrf, int val) return 0; } +#define MAX_LIN_MANTISSA (1023 * 1000) +#define MIN_LIN_MANTISSA (511 * 1000) + +/* Converts a milli-unit DIRECT value to LINEAR11 format */ +static u16 mp2975_data2reg_linear11(s64 val) +{ + s16 exponent = 0, mantissa; + bool negative = false; + + /* simple case */ + if (val == 0) + return 0; + + /* Reduce large mantissa until it fits into 10 bit */ + while (val >= MAX_LIN_MANTISSA && exponent < 15) { + exponent++; + val >>= 1; + } + /* Increase small mantissa to improve precision */ + while (val < MIN_LIN_MANTISSA && exponent > -15) { + exponent--; + val <<= 1; + } + + /* Convert mantissa from milli-units to units */ + mantissa = clamp_val(DIV_ROUND_CLOSEST_ULL(val, 1000), 0, 0x3ff); + + /* restore sign */ + if (negative) + mantissa = -mantissa; + + /* Convert to 5 bit exponent, 11 bit mantissa */ + return (mantissa & 0x7ff) | ((exponent << 11) & 0xf800); +} + static int mp2975_read_phase(struct i2c_client *client, struct mp2975_data *data, int page, int phase, u8 reg) @@ -297,6 +336,20 @@ static int mp2973_read_word_data(struct i2c_client *client, int page, ret = pmbus_read_word_data(client, page, phase, MP2973_MFR_READ_IOUT_PK); break; + case PMBUS_IOUT_OC_FAULT_LIMIT: + ret = mp2975_read_word_helper(client, page, phase, + MP2973_MFR_OCP_TOTAL_SET, + GENMASK(15, 0)); + if (ret < 0) + return ret; + + if (ret & MP2973_MFR_OCP_LEVEL_RES) + ret = 2 * (ret & MP2973_OCP_TOTAL_CUR_MASK); + else + ret = ret & MP2973_OCP_TOTAL_CUR_MASK; + + ret = mp2975_data2reg_linear11(ret * info->phases[page] * 1000); + break; case PMBUS_UT_WARN_LIMIT: case PMBUS_UT_FAULT_LIMIT: case PMBUS_VIN_UV_WARN_LIMIT: @@ -307,7 +360,6 @@ static int mp2973_read_word_data(struct i2c_client *client, int page, case PMBUS_IIN_OC_FAULT_LIMIT: case PMBUS_IOUT_OC_LV_FAULT_LIMIT: case PMBUS_IOUT_OC_WARN_LIMIT: - case PMBUS_IOUT_OC_FAULT_LIMIT: case PMBUS_IOUT_UC_FAULT_LIMIT: case PMBUS_POUT_OP_FAULT_LIMIT: case PMBUS_POUT_OP_WARN_LIMIT: @@ -481,11 +533,13 @@ mp2975_identify_multiphase(struct i2c_client *client, struct mp2975_data *data, if (info->phases[0] > data->max_phases[0]) return -EINVAL; - mp2975_set_phase_rail1(info); - num_phases2 = min(data->max_phases[0] - info->phases[0], - data->max_phases[1]); - if (info->phases[1] && info->phases[1] <= num_phases2) - mp2975_set_phase_rail2(info, num_phases2); + if (data->chip_id == mp2975) { + mp2975_set_phase_rail1(info); + num_phases2 = min(data->max_phases[0] - info->phases[0], + data->max_phases[1]); + if (info->phases[1] && info->phases[1] <= num_phases2) + mp2975_set_phase_rail2(info, num_phases2); + } return 0; } @@ -879,12 +933,12 @@ static int mp2975_probe(struct i2c_client *client) data->info.num_regulators = MP2975_PAGE_NUM; } - if (data->chip_id == mp2975) { - /* Identify multiphase configuration. */ - ret = mp2975_identify_multiphase(client, data, info); - if (ret) - return ret; + /* Identify multiphase configuration. */ + ret = mp2975_identify_multiphase(client, data, info); + if (ret) + return ret; + if (data->chip_id == mp2975) { /* Identify VID setting per rail. */ ret = mp2975_identify_rails_vid(client, data, info); if (ret < 0)