From patchwork Thu Mar 9 15:49:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 66941 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp366703wrd; Thu, 9 Mar 2023 07:55:30 -0800 (PST) X-Google-Smtp-Source: AK7set/D+7ArXZtmy6dwQ9FrrACPobP/HFlMPe7cZLrHnuYJL1iI7VgDHyBkDZYpIvKidsbXrnWu X-Received: by 2002:a62:1850:0:b0:5dc:d34:d9f6 with SMTP id 77-20020a621850000000b005dc0d34d9f6mr17178386pfy.2.1678377329948; Thu, 09 Mar 2023 07:55:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377329; cv=none; d=google.com; s=arc-20160816; b=ihHd+ONuzoa+NRHRqzRBJ5xiRxNGMi3Aerwfv3HHM2ZI5XIIXXV9Ns56R5xY2Qf6th NJ85KcW4LVq2td/a9XG1Z4zc3VXQXRkqw2+5o0U9fksTCAbdStmOZhoDeb9UUj9A2K+p NiP441mdD9fErgkOxRUvOxNBTcK11Qwe/wf2XrVWIh3W4/auvJ+fGGmVueSg5Uis6kjG xQQLqv7QbSf2BdlKj9wjKSz4Orxq7Z8OUDloUzxKP/eGK06GnidYevuDHQU08OUIJ7LL Fsmaymypw0Aap2JmmlDohkAANffBu7zzWhZWsCfiliLERnZ9/rrTUTZvKPzA9sGoegW8 Yq1A== 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=5hDw377R+3WveEHHISt0O+B0HNboj//Q7JnZS8WCHQk=; b=x4idMvI0lqG35at2M2jTln55AEejZbgqF1FE+IdUmWV8FtlVePDpDBna/O7jB7RvuR ZVVTWWgYdyYWZnwwdgZLCnLZIbtgCPFB7QwzGzWqQWMzYEspmK9KyL5TgAuhQu8krW9m 9OKhnjB5zoj5sEoRkPotxqmbx3eF1YMKDrxadVm15nNZ2iL6ZY40gAjGzjbKG80ABOPd mrlKkC3eanLkedNuVx6ThvGCOfdldVm0A0JcC3ugZIeMT7zwQ4aGjK3OTJLYF0d+aJSM 5sRdTws/FSFco7dLB3fC+dEA2X6ckSle+dsgEPiaPiB70brl9JGt5nBs6vZW/tIyJ2Dh rytA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="xFOeIBq/"; 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=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m67-20020a625846000000b005a90f60a0e2si17480933pfb.366.2023.03.09.07.55.15; Thu, 09 Mar 2023 07:55:29 -0800 (PST) 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=@linaro.org header.s=google header.b="xFOeIBq/"; 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=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230434AbjCIPuE (ORCPT + 99 others); Thu, 9 Mar 2023 10:50:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57994 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229629AbjCIPuD (ORCPT ); Thu, 9 Mar 2023 10:50:03 -0500 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB372F28A4 for ; Thu, 9 Mar 2023 07:50:01 -0800 (PST) Received: by mail-ed1-x529.google.com with SMTP id cy23so8722845edb.12 for ; Thu, 09 Mar 2023 07:50:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678377000; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=5hDw377R+3WveEHHISt0O+B0HNboj//Q7JnZS8WCHQk=; b=xFOeIBq/oenmpZgse9ypMIySBxHojJR+priTRx4ns8SVP7D39nQ6GWvynrSpoOZ5R4 HsKcT908aKbyY+mWmwZRF55bt35KR1yKcW6++DQauTZLH6LO5XQhIsgcSLObp6gQi6hm a3C1Phim93FONjhxlLRQF8vnGyv5kEKRKyqqR4+hFR4Sgk3etvYPV7Q2wgf+quQeWcXe hxC2Ucy6M/FWI8NXM4FSsbi4SSEtTGBa+kYiuwRsDKUcCqugBKPlLx+sYmJ/K9BI1x47 dyALpaqG6NJ6cPLoOigP4lVhPtGskb7OAMXxdEwptXITcYfMfg+ad/t27LGV1Lpt5K5d pncA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678377000; 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=5hDw377R+3WveEHHISt0O+B0HNboj//Q7JnZS8WCHQk=; b=eM28eGUTtlpMXkzpJzZ/zCV3qnnMXk9Bs6m5JFAbvBxdvpT2jYf9rc30IwifoHC8L4 XZH6JavOT1yeZWa9qQQMh8TDkmo6oPF0/I3gTckQoNYAYtpIgQ78c27K7StwZ9WfVu7l QS3pl5oT4aC2FBhnnBaBkOQFgBy42Z0zsekUgEu1/NhRbLXCLjhcTnkI8LMT4f/RkEoO z7jO1UL6RXc0a+BBmVszJF9k7b50tXUfw+EBIczEwls6XpG+WsIfzjDI/bzjCB2M6d66 7+pjpu6hOxkQeIUtEz9mGZTG+j+Z4QUwlYuqZIFxWo3tXGrwK6Yf7uXRPzYvFx3j+Afm jbmA== X-Gm-Message-State: AO0yUKU5Kn5vBA4jLnFi6Kc4bCQPgMfMBAm/SPZ+AAU7u/lDqDLBPUfs dC5tonmvwFLV8RAebz2DmvPiZXXu61L7RTG2YJM= X-Received: by 2002:a17:906:a1c5:b0:906:3373:cfe9 with SMTP id bx5-20020a170906a1c500b009063373cfe9mr21147766ejb.10.1678377000203; Thu, 09 Mar 2023 07:50:00 -0800 (PST) Received: from krzk-bin.. ([2a02:810d:15c0:828:7ee2:e73e:802e:45c1]) by smtp.gmail.com with ESMTPSA id h17-20020a17090634d100b008ee5356801dsm8981683ejb.187.2023.03.09.07.49.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Mar 2023 07:49:59 -0800 (PST) From: Krzysztof Kozlowski To: Bjorn Andersson , Andy Gross , Konrad Dybcio , Linus Walleij , Srinivas Kandagatla , linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski , stable@vger.kernel.org Subject: [PATCH 1/4] pinctrl: qcom: lpass-lpi: set output value before enabling output Date: Thu, 9 Mar 2023 16:49:46 +0100 Message-Id: <20230309154949.658380-1-krzysztof.kozlowski@linaro.org> X-Mailer: git-send-email 2.34.1 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 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759906187130671493?= X-GMAIL-MSGID: =?utf-8?q?1759906187130671493?= As per Hardware Programming Guide, when configuring pin as output, set the pin value before setting output-enable (OE). Similar approach is in main SoC TLMM pin controller. Cc: Fixes: 6e261d1090d6 ("pinctrl: qcom: Add sm8250 lpass lpi pinctrl driver") Signed-off-by: Krzysztof Kozlowski Reviewed-by: Konrad Dybcio --- drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c index 87920257bb73..27fc8b671954 100644 --- a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c +++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c @@ -221,6 +221,15 @@ static int lpi_config_set(struct pinctrl_dev *pctldev, unsigned int group, } } + /* + * As per Hardware Programming Guide, when configuring pin as output, + * set the pin value before setting output-enable (OE). + */ + if (output_enabled) { + val = u32_encode_bits(value ? 1 : 0, LPI_GPIO_VALUE_OUT_MASK); + lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val); + } + val = lpi_gpio_read(pctrl, group, LPI_GPIO_CFG_REG); u32p_replace_bits(&val, pullup, LPI_GPIO_PULL_MASK); @@ -230,11 +239,6 @@ static int lpi_config_set(struct pinctrl_dev *pctldev, unsigned int group, lpi_gpio_write(pctrl, group, LPI_GPIO_CFG_REG, val); - if (output_enabled) { - val = u32_encode_bits(value ? 1 : 0, LPI_GPIO_VALUE_OUT_MASK); - lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, val); - } - return 0; } From patchwork Thu Mar 9 15:49:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 66942 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp369288wrd; Thu, 9 Mar 2023 08:00:48 -0800 (PST) X-Google-Smtp-Source: AK7set8aKfx+5AsQVsDFDtnCGrAJbtlT4vFp5G5TPs5SoZUS0FwQQ1SNh7/Puu9qfhm0zoLu4FNg X-Received: by 2002:a17:902:f685:b0:19c:d49f:4296 with SMTP id l5-20020a170902f68500b0019cd49f4296mr26841237plg.67.1678377647871; Thu, 09 Mar 2023 08:00:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377647; cv=none; d=google.com; s=arc-20160816; b=KLIPHpnBSyexe00fXu/F1GaPoMDlKHltCr//aEcyJa44AwPL2MDR/FwYxSzScfj81x RbDTaViNxfEfbs7rg4+Tpj4gfs00SUr46jgIpn/JvVT5QbBD2bdF5zuvfR0gtj0wY53R q1ZLEgRGSmw2IWkGyNIMzWahkHbntnMwB7wHm5xyAk0Y+/djkfM0QgjpgXRdNMYU3S8D hzBtaxAQNw046mwJBzWbzYruKLbxZShtd3Ar3hYzpkTUf+Hi5WabSlsQASJstey+td/u iIReTyl9syP7CBKe3zQyk5+cI05j0tzSKVvbOetvSG8O4MAyK93ZEwUW/6zRIX4XHVa6 iT7g== 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=3doP5Qh80iui4dCoQV94mzeJJ78H6cWhfnuThkzdLnc=; b=pBVDlJ2JWzyMPVmxXqvnDZ/smaT0tXWn+DP42ycoF0oosWeu/O+s1O9ULFwBFsyN2H 9DD8v5gfbYEEhyblQYCHQenNFK+1dkn7HjbQ57YuU54QsyaS9Get7bDLBlF+7Uj2jKAt KsyvR3dp3TGDzLVcEF0LsCfAiTEV1sq4ffRZjbd1/3RgrOXceF9C4Yh+KsmdaaZXEOu/ 7pvQFatuw4V4EUYI0b3kW4XFZus3cKSK/9ziMX/FSTa9NPpEZot5LhNH7Nr3TjQMlsgU +3af0rQXMx+bNnGJ76H7vBp3/2yJTi3lgs9fEkAPYGv8qHXYYywexq8V1ryAvYvmpFxe zIkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bzSGWbK3; 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=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x7-20020a1709029a4700b0019cf4957404si17162500plv.24.2023.03.09.08.00.33; Thu, 09 Mar 2023 08:00:47 -0800 (PST) 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=@linaro.org header.s=google header.b=bzSGWbK3; 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=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231263AbjCIPuO (ORCPT + 99 others); Thu, 9 Mar 2023 10:50:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58080 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231475AbjCIPuF (ORCPT ); Thu, 9 Mar 2023 10:50:05 -0500 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8884F28B0 for ; Thu, 9 Mar 2023 07:50:02 -0800 (PST) Received: by mail-ed1-x530.google.com with SMTP id j11so8840199edq.4 for ; Thu, 09 Mar 2023 07:50:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678377001; 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=3doP5Qh80iui4dCoQV94mzeJJ78H6cWhfnuThkzdLnc=; b=bzSGWbK3XBNYMI/l6mAcjcVv8J0CJHGL6ZJ6DKroEYmhmhX1kbIoMNUDAD5+NIfBqB 7aLZkpAMosJgKma9DuE/ecGfNTU7AaiDqOBGCgTEAhnr9gHZRHQiLsiDM5G7AaJHvUPx tANvC8NhYBgv95Oy+azKdLYh+nKWlN8u+ujD23DQLDoIJaP6oJjLouv3elNzYUPn1Yf0 rWCqbnX+iXOr9SC/UYKFr1rDtiwz8+KdljOWu30t3wPTfSuig37kijy16EwyjeUGGRxR kHHh/KSVziq8kKc1kMDVnToa2Px4pxaM2Jqwa+HjLFHOnByN6/C9AZ7MeLvWD/t0Rb2Q NgsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678377001; 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=3doP5Qh80iui4dCoQV94mzeJJ78H6cWhfnuThkzdLnc=; b=cWPY/mjZC844UladM/smX0pZx68cXUfImeqJ9rkkiqxBe69K47mYT0vYPfOuVcEHPq L4VcuFkwzaCTEdDwjUh4GOzEMvKf512rkJAZD7gjou7GJ3dH6giljeEBG6wv4BqJdnsh avL2gqMEjEOyuDTrLRfxkrX3FS9IBK44F3VyYAtvtuOUCSGNEW1fyUpRld2aqb1wgqSL nWHE99ZTxpwbLb47H5eirXrtW1tQdTbcTOKwcxYBcSdsCHeQ/+pXK5sQirteWW7nLBun oA12ZAq+IKc2IiBUorp9uiXUJogWCUsfOTFmA/+cFI3TQSXak4X/wpY9MaX+UtfcuGil C5aA== X-Gm-Message-State: AO0yUKWerhN+9TQJbFMM7/HtnQTO+yiY41OfiZNuYkEdQ+DT4PYNljDb QYCjJmRCayCDpfef/1uczzO8nw== X-Received: by 2002:a17:906:dac9:b0:8aa:c090:a9ef with SMTP id xi9-20020a170906dac900b008aac090a9efmr28883479ejb.55.1678377001056; Thu, 09 Mar 2023 07:50:01 -0800 (PST) Received: from krzk-bin.. ([2a02:810d:15c0:828:7ee2:e73e:802e:45c1]) by smtp.gmail.com with ESMTPSA id h17-20020a17090634d100b008ee5356801dsm8981683ejb.187.2023.03.09.07.50.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Mar 2023 07:50:00 -0800 (PST) From: Krzysztof Kozlowski To: Bjorn Andersson , Andy Gross , Konrad Dybcio , Linus Walleij , Srinivas Kandagatla , linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski Subject: [PATCH 2/4] pinctrl: qcom: lpass-lpi: use consistent name for "group" variable Date: Thu, 9 Mar 2023 16:49:47 +0100 Message-Id: <20230309154949.658380-2-krzysztof.kozlowski@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230309154949.658380-1-krzysztof.kozlowski@linaro.org> References: <20230309154949.658380-1-krzysztof.kozlowski@linaro.org> 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 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759906520558186062?= X-GMAIL-MSGID: =?utf-8?q?1759906520558186062?= The set_mux callback in SoC TLMM driver (pinctrl-msm.c) uses "group", not "group_num" for the number of the pin group. Other places of lpass-lpi also use "group", so let's be consistent for code readability. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Konrad Dybcio --- drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c index 27fc8b671954..bd32556d75a5 100644 --- a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c +++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c @@ -84,10 +84,10 @@ static int lpi_gpio_get_function_groups(struct pinctrl_dev *pctldev, } static int lpi_gpio_set_mux(struct pinctrl_dev *pctldev, unsigned int function, - unsigned int group_num) + unsigned int group) { struct lpi_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); - const struct lpi_pingroup *g = &pctrl->data->groups[group_num]; + const struct lpi_pingroup *g = &pctrl->data->groups[group]; u32 val; int i, pin = g->pin; From patchwork Thu Mar 9 15:49:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 66957 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp382611wrd; Thu, 9 Mar 2023 08:21:18 -0800 (PST) X-Google-Smtp-Source: AK7set+EUjVVHK4yuALZxIyq3Y/xd8yUnBQoYJ6o57ZxpRzE+qcrppnIyrRNfpZJ1rJnRKF35nc2 X-Received: by 2002:a05:6a20:2d82:b0:be:b137:9d15 with SMTP id bf2-20020a056a202d8200b000beb1379d15mr20353728pzb.36.1678378877977; Thu, 09 Mar 2023 08:21:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678378877; cv=none; d=google.com; s=arc-20160816; b=U587uptvVdvwCX4cE4PV/5bLTKC9JFQX+MmMpUvHwJIvN5lxUJ+4SPHAur0QPPba29 0pAzrNaVxesdlPQ4153VRwtDPNB0W2NHGlEOTk5hu3VUZpwN3pL+qAIvv7VSWBGiO3Xi hHkAGoxBGWkTMeaHB+BnI2PUcBDrphiy77UajVdjp09WrooWWaJW1P8+dytoNtV8cXz6 Dzq3qedne1Qf6X9wxN4B8Au4GWIU/kGG3Fx06WqNFmrTsPXcoIxGlEPwcSEv+fhNkUyH hm4zhBru3CqNZ41aG06/OCTOqbt56VvEFYcScZvJW/I13V+w41e1lAEypOfhIfPmEoAN 6T4w== 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=BcQHpyuRa8telS2z61Wu0G0Mj91kmKtPrkTuDj0nJzc=; b=wvpM9tXpwbHPuhGdJDdNc7Hob8KBFC8754GBrkuRdlWou0XscT/xmk4Gl7W1tQEzZZ m7GlU1zC36P2IRTLcBNoHh2hv8BXZSt6OHYsP2iRJ7FvZblYxJSKio9q2JTw7x0DBw7K 9XwvrUaB6CJhHAOmEA2rXDKycANQYNLGygPgb+aUqVzVNPdGjzj4sWHdB/qFH+ki2Fq2 h1InIongJ1Tz2TZfgRgqADY1VoQkchqD4Nmyd9XSl+4qgDjzUrSwkmvpkM/wiDLrv2ix oewprI5ihfDMh52EIFpQr0xBMtEMzIKGqu89IiFp8OtAF59sxZ/0tpOH0yy4J+6mskrp FTkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bKQLs3Ca; 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=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k12-20020a65434c000000b004fbb1ffaf6dsi16629322pgq.448.2023.03.09.08.21.03; Thu, 09 Mar 2023 08:21:17 -0800 (PST) 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=@linaro.org header.s=google header.b=bKQLs3Ca; 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=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231490AbjCIPuL (ORCPT + 99 others); Thu, 9 Mar 2023 10:50:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231344AbjCIPuF (ORCPT ); Thu, 9 Mar 2023 10:50:05 -0500 Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7215FF28B6 for ; Thu, 9 Mar 2023 07:50:03 -0800 (PST) Received: by mail-ed1-x536.google.com with SMTP id cw28so8830706edb.5 for ; Thu, 09 Mar 2023 07:50:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678377002; 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=BcQHpyuRa8telS2z61Wu0G0Mj91kmKtPrkTuDj0nJzc=; b=bKQLs3Cao3Qr+7xgoWm8wqxFjz9Pk8Dra+NzlXub+7IgfcIT46ZANSF/ssMPKeZmVF Y0SZ50fRLK37ycP/Pp8cACIt6eN7h9vwfK/5ktc1q3FFkz/dlTAdqcrRowJcqI1WcKm8 1ChtptJDOMl02FVZws7evuh0c9B3b7EZFLCYNnqQZW2JWMh7GfvA/IbH75xawmvOLTec TvllrrTVu2/2+7J9yLatuG/npcvN0AhQ+y9x/BcIALMBVyouugrHH7kHXBYNUlpG7aOY tTIauB6SOtwQEKsgX93/sQe3FLQ2BDiUUp7121+UuyRaecyRIBNZ4hkEFRyShevppIDk ZC8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678377002; 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=BcQHpyuRa8telS2z61Wu0G0Mj91kmKtPrkTuDj0nJzc=; b=zy+5VoN2DdOBnTPDKIHgkvgRQEb9+O7VRG3bKoPRCW+ohazYgz+FHVWJ7J0mQEe5j5 mkHlIo/w5eOpnodUErIet0ah/vG9w/3xE5tNgHtG5Yjwg68TfRngMc6yhvaGQQGS4xlO w7gbipXx2/LdWPlF0vv+vrLZ1yRRCp67c63ZQsZ441spgMQFfs8DD6kgRCUhmhRQZVVr rNNLxfDliQf7b1FGW9QoMz6LDDpiAgBCnbBpG33dTQTpB2p8VIhh5liSGKnqQazt2nj5 Yjbbggy5JUt5CsW331s0Tn5F27mgHi5eVBHXhEE/zHiCKZ+awvdK17wF3/9kVxesZFXt Ilqw== X-Gm-Message-State: AO0yUKVv2vK0IBA86CO4XsQgYay/mGgJvMltTP+50/NlUsUaZYja8Dne wF1IrEb9fRHcyp1uc3ZbcJk9Dw== X-Received: by 2002:a17:907:3e8f:b0:8b1:779c:a8b1 with SMTP id hs15-20020a1709073e8f00b008b1779ca8b1mr28652540ejc.5.1678377001945; Thu, 09 Mar 2023 07:50:01 -0800 (PST) Received: from krzk-bin.. ([2a02:810d:15c0:828:7ee2:e73e:802e:45c1]) by smtp.gmail.com with ESMTPSA id h17-20020a17090634d100b008ee5356801dsm8981683ejb.187.2023.03.09.07.50.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Mar 2023 07:50:01 -0800 (PST) From: Krzysztof Kozlowski To: Bjorn Andersson , Andy Gross , Konrad Dybcio , Linus Walleij , Srinivas Kandagatla , linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski Subject: [PATCH 3/4] pinctrl: qcom: lpass-lpi: allow glitch-free output GPIO Date: Thu, 9 Mar 2023 16:49:48 +0100 Message-Id: <20230309154949.658380-3-krzysztof.kozlowski@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230309154949.658380-1-krzysztof.kozlowski@linaro.org> References: <20230309154949.658380-1-krzysztof.kozlowski@linaro.org> 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 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759907810420199881?= X-GMAIL-MSGID: =?utf-8?q?1759907810420199881?= When choosing GPIO function for pins, use the same glitch-free method as main TLMM pinctrl-msm.c driver in msm_pinmux_set_mux(). This replicates the commit d21f4b7ffc22 ("pinctrl: qcom: Avoid glitching lines when we first mux to output") to LPASS pin controller with same justification. Signed-off-by: Krzysztof Kozlowski --- drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c index bd32556d75a5..fdb6585a9234 100644 --- a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c +++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c @@ -19,6 +19,8 @@ #include "pinctrl-lpass-lpi.h" +#define MAX_NR_GPIO 23 +#define GPIO_FUNC 0 #define MAX_LPI_NUM_CLKS 2 struct lpi_pinctrl { @@ -30,6 +32,7 @@ struct lpi_pinctrl { char __iomem *slew_base; struct clk_bulk_data clks[MAX_LPI_NUM_CLKS]; struct mutex slew_access_lock; + DECLARE_BITMAP(ever_gpio, MAX_NR_GPIO); const struct lpi_pinctrl_variant_data *data; }; @@ -100,6 +103,28 @@ static int lpi_gpio_set_mux(struct pinctrl_dev *pctldev, unsigned int function, return -EINVAL; val = lpi_gpio_read(pctrl, pin, LPI_GPIO_CFG_REG); + + /* + * If this is the first time muxing to GPIO and the direction is + * output, make sure that we're not going to be glitching the pin + * by reading the current state of the pin and setting it as the + * output. + */ + if (i == GPIO_FUNC && (val & LPI_GPIO_OE_MASK) && + !test_and_set_bit(group, pctrl->ever_gpio)) { + u32 io_val = lpi_gpio_read(pctrl, group, LPI_GPIO_VALUE_REG); + + if (io_val & LPI_GPIO_VALUE_IN_MASK) { + if (!(io_val & LPI_GPIO_VALUE_OUT_MASK)) + lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, + io_val | LPI_GPIO_VALUE_OUT_MASK); + } else { + if (io_val & LPI_GPIO_VALUE_OUT_MASK) + lpi_gpio_write(pctrl, group, LPI_GPIO_VALUE_REG, + io_val & ~LPI_GPIO_VALUE_OUT_MASK); + } + } + u32p_replace_bits(&val, i, LPI_GPIO_FUNCTION_MASK); lpi_gpio_write(pctrl, pin, LPI_GPIO_CFG_REG, val); @@ -394,6 +419,9 @@ int lpi_pinctrl_probe(struct platform_device *pdev) if (!data) return -EINVAL; + if (WARN_ON(data->npins > MAX_NR_GPIO)) + return -EINVAL; + pctrl->data = data; pctrl->dev = &pdev->dev; From patchwork Thu Mar 9 15:49:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 66943 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp369735wrd; Thu, 9 Mar 2023 08:01:20 -0800 (PST) X-Google-Smtp-Source: AK7set8g8EQVC77l/0ncqHPQ4DeLWsNkA17dK0Xpr3QcyA9DrZMSZTV+4vx953XQKJG7KOBNAMiP X-Received: by 2002:a17:903:1c1:b0:19b:dae0:c97d with SMTP id e1-20020a17090301c100b0019bdae0c97dmr25965156plh.32.1678377680239; Thu, 09 Mar 2023 08:01:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678377680; cv=none; d=google.com; s=arc-20160816; b=cGjcfLOswDV7o5QUxlFySuyA2f/GZ1oh3Oc8P9VUvxTDC/yMJJlp1zmrmw0hIcbH3a MPlnixvhC+XnXviDDV/E149MCdLQjQ+nnAGMY9wiwR3Eic6WzKmwgtqLz12nD16qf8kX d7C6kryrtW8nxq7DrYiIo3Y27xBt/njZCyeufZjt/nDTzhh0dDsW0Iq3xssMPV+7GuX5 Zc4TARWK5BVZsX+mmhN5klrgnc9RTXQ9Hd4cM5sF8Wb02SC7Q0CYqiif2xYUYd1z1x+2 Z6GlU1ltqQD0SvarbZiyXXfuioZ6353fN/+jSrqvxelGrVaUejm4GTAcm7dfEpw4l3zh 3cNw== 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=SgRFCt619WmiOOy/KiaJocmKNsNdPTYaRqkITCznBlQ=; b=xVEw5oFcoJ8OkC3gwG1p99ozx9xXI3Z6KJhaODnTTLNWObsJMNKntFcIdry+6Mbg90 vbYLxL/1MGBFhaDMKSC06l4EITiJEOGGfoD66KbDRl/8tXVpilomast8fU9Fs6Sb0JmF T1EGZt0sLnELCHc2hrnHVBDa9hWeDOZ/NMiuelPzQQhQ2DPvzO7KSKkrpV4v3XZ39/Xu m0FtsjPfgtygtv+AVxgjmcEVSjproPOcgiFcWI9hA8qEnITngC9csJkNO1Clpm5y9lO2 uVb68dLZRbbmNDm5ppuEUSgQoWwakYls7p6VCGZ7Z0xL+t7XaCgbpYYIhRSgA6jbLTJT /tkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=VclA2Usv; 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=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c4-20020a170903234400b0019ace138411si2657981plh.577.2023.03.09.08.01.06; Thu, 09 Mar 2023 08:01:20 -0800 (PST) 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=@linaro.org header.s=google header.b=VclA2Usv; 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=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231281AbjCIPuS (ORCPT + 99 others); Thu, 9 Mar 2023 10:50:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231518AbjCIPuG (ORCPT ); Thu, 9 Mar 2023 10:50:06 -0500 Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD0CCF28BB for ; Thu, 9 Mar 2023 07:50:04 -0800 (PST) Received: by mail-ed1-x531.google.com with SMTP id x3so8748218edb.10 for ; Thu, 09 Mar 2023 07:50:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1678377003; 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=SgRFCt619WmiOOy/KiaJocmKNsNdPTYaRqkITCznBlQ=; b=VclA2Usv5TOQL2tjYEaywOVcbjTRbt5QTlUyua2Pq3vHwT0lIaQM/mNyIOV0TOQI52 IYZaDZIyxI6bfTtSPdkATbzV/vwSKO9WATOYBvvvdfBxINsdOu+9jhVMxgvRVNPKD0DU pBh7wCzQvILtnKTs0D5k9mFn19e2w1H/RLRe+LCuwUq6sN2BP3U82PEETdzvkuDRBatn VC+R8O5s2DjeFay6ztM3X3xLToPRkxTWqQ0+XJHTbOR7nzGi/HLb4CO5t5PSCVMdBptW FJkBfzgxbwDDqL9/oGrik3qqY2WROaHcBKDMY35wBfluGRt2mtPv+Dsin4sC8lt2iHvQ NOig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678377003; 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=SgRFCt619WmiOOy/KiaJocmKNsNdPTYaRqkITCznBlQ=; b=YpJLNevHmOOO0wH5HCORRwBmYYqLK5I6xVcFnxkoigsA1qXjw9b1YP3XB1PTstEGy7 4LbxqSuPc4PZT2v6ZZtCMMciszyh2pScBKvlRPx/ng0ZAZ2pA2o8lsFuR4gkE1wXv0X2 CtgcGS1zUI8aK3OqFe6KDlRzEBS8kBQ5WgfiMGV0p1Xh1TEWttBiWmgB4poTv/voKHws 890/iiwLEkMUdqDR57p9SjdKISEy0TZQIu5HhBGAWG387UJ/ExkfVvu28E26c7l8UbNg 8Cy7X7umwVQDeNOHCCwhZDi+bHVOM0IwNBBCBk7nuCis/hMkjHQKQh9MfQSPQGm01lpo wTrg== X-Gm-Message-State: AO0yUKUMRxD7TK98wCWf0sSTiHn3nWkM595eF5lyB4Yp0YLsa561OFpr UWJd7QtF4s9vwml9mDYBfOB4sA== X-Received: by 2002:a17:906:d28c:b0:8e5:88ca:ebac with SMTP id ay12-20020a170906d28c00b008e588caebacmr22319782ejb.40.1678377003285; Thu, 09 Mar 2023 07:50:03 -0800 (PST) Received: from krzk-bin.. ([2a02:810d:15c0:828:7ee2:e73e:802e:45c1]) by smtp.gmail.com with ESMTPSA id h17-20020a17090634d100b008ee5356801dsm8981683ejb.187.2023.03.09.07.50.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Mar 2023 07:50:03 -0800 (PST) From: Krzysztof Kozlowski To: Bjorn Andersson , Andy Gross , Konrad Dybcio , Linus Walleij , Srinivas Kandagatla , linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski Subject: [PATCH 4/4] pinctrl: qcom: sm8550-lpass-lpi: allow GPIO function Date: Thu, 9 Mar 2023 16:49:49 +0100 Message-Id: <20230309154949.658380-4-krzysztof.kozlowski@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230309154949.658380-1-krzysztof.kozlowski@linaro.org> References: <20230309154949.658380-1-krzysztof.kozlowski@linaro.org> 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 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759906554384825124?= X-GMAIL-MSGID: =?utf-8?q?1759906554384825124?= All LPASS pins have basic GPIO function and most of the code is ready for that. Add missing glue pieces to allow LPASS pins to work as GPIO, which is going to be used on MTP8550 and QRD8550 boards. Signed-off-by: Krzysztof Kozlowski --- drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c index c2bdd936d27f..db1a46fee9c6 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c @@ -102,6 +102,13 @@ static const struct pinctrl_pin_desc sm8550_lpi_pins[] = { PINCTRL_PIN(22, "gpio22"), }; +static const char * const gpio_groups[] = { + "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", + "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", + "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", + "gpio22", +}; + static const char * const dmic1_clk_groups[] = { "gpio6" }; static const char * const dmic1_data_groups[] = { "gpio7" }; static const char * const dmic2_clk_groups[] = { "gpio8" }; @@ -168,6 +175,7 @@ static const struct lpi_pingroup sm8550_groups[] = { }; static const struct lpi_function sm8550_functions[] = { + LPI_FUNCTION(gpio), LPI_FUNCTION(dmic1_clk), LPI_FUNCTION(dmic1_data), LPI_FUNCTION(dmic2_clk),