From nobody Sun Sep 22 11:32:04 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0A29C433EF for ; Tue, 11 Jan 2022 11:22:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238706AbiAKLWx (ORCPT ); Tue, 11 Jan 2022 06:22:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238683AbiAKLWw (ORCPT ); Tue, 11 Jan 2022 06:22:52 -0500 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24E45C06173F for ; Tue, 11 Jan 2022 03:22:52 -0800 (PST) Received: by mail-pj1-x1032.google.com with SMTP id y16-20020a17090a6c9000b001b13ffaa625so4660923pjj.2 for ; Tue, 11 Jan 2022 03:22:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EMXmZlFguOt5qjM8Mju3XqareZLrVjvBoxrDlqW40Jg=; b=UFLB81h0iX3ZqYtdi07F/FwaSLK2hfrLHRXrm+quboO7VeHcwM5jwLhqE6NRgJ68Mm oqkmGHi0Tdk3gJKKrvD93cjMflMetaaCsTxWcDVX6A7icNVuGxJ+RZwWL+V0cK9L5FMx Cpv4tzns3Z9SVuL6P+y5hNNuU7+/6YWG9fuUw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EMXmZlFguOt5qjM8Mju3XqareZLrVjvBoxrDlqW40Jg=; b=ZI7edqDq8LOseMlZCzIA9Pkpn6RGXoESoM3UTFcI5NIsypkGZk75ces+36sbQcpVR2 ydWNMYHgm6uWI3G3MlqzRmCmexmNmGCk+Os9Wl6fHrp21mv52XPaOSIHrnIB2ARD6Q21 1GoOMlpDKoJnBD4zI+EZTlH+TtNE6eL6TjSK6wfK6VKx3T5L6hzuzfNMkV3q3uguhqY2 xYpO7KeMc5PNkTdGPryyCbp72JLSltsKxx4VjZV9Xtb0mWBfNhU2x1t2P0jP7DPaig22 hTfSAtkumZvG2W8spjsU6xoSRpCoxtApSBpvsRqcKfLpifUEWEkPd01IxDPlVMmr7oJZ 6B3Q== X-Gm-Message-State: AOAM532QpTY3sWfiOgMWbyK8iB2U1mixcMjVBWpPhkYHAolU79eS29Cx SMP51CeMY1yMy3PQ/WvN0Z0KsA== X-Google-Smtp-Source: ABdhPJyGUCS1OeFe84DG12JyMqhdck1JEx4lgTsvVydKsQtX3NxZFt66NL+LGUYUbSR71Xtv63tKYA== X-Received: by 2002:a17:902:7c05:b0:149:a3b4:934c with SMTP id x5-20020a1709027c0500b00149a3b4934cmr3888753pll.42.1641900171738; Tue, 11 Jan 2022 03:22:51 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:e7ee:1824:8575:bc5c]) by smtp.gmail.com with ESMTPSA id f9sm2053845pjh.18.2022.01.11.03.22.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 03:22:51 -0800 (PST) From: Chen-Yu Tsai To: Sean Wang , Linus Walleij , Matthias Brugger Cc: Chen-Yu Tsai , linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Zhiyong Tao , Guodong Liu Subject: [PATCH 1/7] pinctrl: pinconf-generic: Print arguments for bias-pull-* Date: Tue, 11 Jan 2022 19:22:38 +0800 Message-Id: <20220111112244.1483783-2-wenst@chromium.org> X-Mailer: git-send-email 2.34.1.575.g55b058a8bb-goog In-Reply-To: <20220111112244.1483783-1-wenst@chromium.org> References: <20220111112244.1483783-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The bias-pull-* properties, or PIN_CONFIG_BIAS_PULL_* pin config parameters, accept optional arguments in ohms denoting the strength of the pin bias. Print these values out in debugfs as well. Fixes: eec450713e5c ("pinctrl: pinconf-generic: Add flag to print arguments= ") Signed-off-by: Chen-Yu Tsai Reviewed-by: AngeloGioacchino Del Regno --- drivers/pinctrl/pinconf-generic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/pinconf-generic.c b/drivers/pinctrl/pinconf-ge= neric.c index f8edcc88ac01..415d1df8f46a 100644 --- a/drivers/pinctrl/pinconf-generic.c +++ b/drivers/pinctrl/pinconf-generic.c @@ -30,10 +30,10 @@ static const struct pin_config_item conf_items[] =3D { PCONFDUMP(PIN_CONFIG_BIAS_BUS_HOLD, "input bias bus hold", NULL, false), PCONFDUMP(PIN_CONFIG_BIAS_DISABLE, "input bias disabled", NULL, false), PCONFDUMP(PIN_CONFIG_BIAS_HIGH_IMPEDANCE, "input bias high impedance", NU= LL, false), - PCONFDUMP(PIN_CONFIG_BIAS_PULL_DOWN, "input bias pull down", NULL, false), + PCONFDUMP(PIN_CONFIG_BIAS_PULL_DOWN, "input bias pull down", "ohms", true= ), PCONFDUMP(PIN_CONFIG_BIAS_PULL_PIN_DEFAULT, - "input bias pull to pin specific state", NULL, false), - PCONFDUMP(PIN_CONFIG_BIAS_PULL_UP, "input bias pull up", NULL, false), + "input bias pull to pin specific state", "ohms", true), + PCONFDUMP(PIN_CONFIG_BIAS_PULL_UP, "input bias pull up", "ohms", true), PCONFDUMP(PIN_CONFIG_DRIVE_OPEN_DRAIN, "output drive open drain", NULL, f= alse), PCONFDUMP(PIN_CONFIG_DRIVE_OPEN_SOURCE, "output drive open source", NULL,= false), PCONFDUMP(PIN_CONFIG_DRIVE_PUSH_PULL, "output drive push pull", NULL, fal= se), --=20 2.34.1.575.g55b058a8bb-goog From nobody Sun Sep 22 11:32:04 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE3FBC433F5 for ; Tue, 11 Jan 2022 11:22:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238719AbiAKLWz (ORCPT ); Tue, 11 Jan 2022 06:22:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238709AbiAKLWy (ORCPT ); Tue, 11 Jan 2022 06:22:54 -0500 Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6224BC06173F for ; Tue, 11 Jan 2022 03:22:54 -0800 (PST) Received: by mail-pj1-x1034.google.com with SMTP id r16-20020a17090a0ad000b001b276aa3aabso4731565pje.0 for ; Tue, 11 Jan 2022 03:22:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=46vNWfCGa2Jehdt6uZRwpjv1YuVkkZW0i1eDoXg3Zec=; b=esN1ZqLdbAEajmfzapP7lVnID9P/08CQO2LHxbTx/fXJK2zW7AWZ0c4ExQDVXI+MpD IQdW1TQW6LYYuf6XIiavBx+9srFkNSiWGEx1h5dU088pogGNcDq4dmpG1wlE+EsVrfZu xAcGnSViss/JWwSg4ZNjfYNd0Rntk2rgGZBSs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=46vNWfCGa2Jehdt6uZRwpjv1YuVkkZW0i1eDoXg3Zec=; b=xybZaY2UocpzHljRbvobRDJZjbILhdHFLrkwB1fxTZIedOxpEt3JXImMGIkjjOaGE6 SLbG7P0bbTDUFdfbmMCjOZdeGnDoZoUeg8G2cVUIcbS3kRLyFW5rVoCVXJeUgkahuX5N 5zQW/E09j4ig19YOoV8V3hxjSClA6ANO+1c+JWkdJnqhS4F8POX/EUVf9OsZIU5NA1Px yr2e9w2yAjmH4faER+dScmmodfzbrgqbfuK6nINBpMW1iPR1ykp1Bt8IB1UOv7u3XWca JZ4RoVB60Uhg0hIwPTDps6rRkpkZF7ArFd7s1wSGWTCGvoHBsarEmyXas7Y0okna3YBt 0AhA== X-Gm-Message-State: AOAM533bjWC00SElu1mLs0n2laNAkDbDtCe8XAIZS/nCJtGxcwBspX35 iLn7vxpDZ1udxhou+3RXb+RjPQ== X-Google-Smtp-Source: ABdhPJwGHRyF5VOXfXoWha8dpfJ67L3LRTTCjIs8gZdPc2xLLP6Qjr3mcaU9/n+Caiu6e8jM6+wH2Q== X-Received: by 2002:a63:2cd5:: with SMTP id s204mr3583363pgs.121.1641900173986; Tue, 11 Jan 2022 03:22:53 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:e7ee:1824:8575:bc5c]) by smtp.gmail.com with ESMTPSA id f9sm2053845pjh.18.2022.01.11.03.22.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 03:22:53 -0800 (PST) From: Chen-Yu Tsai To: Sean Wang , Linus Walleij , Matthias Brugger Cc: Chen-Yu Tsai , linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Zhiyong Tao , Guodong Liu Subject: [PATCH 2/7] pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_DISABLE readback Date: Tue, 11 Jan 2022 19:22:39 +0800 Message-Id: <20220111112244.1483783-3-wenst@chromium.org> X-Mailer: git-send-email 2.34.1.575.g55b058a8bb-goog In-Reply-To: <20220111112244.1483783-1-wenst@chromium.org> References: <20220111112244.1483783-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" When reading back pin bias settings, if the pin is not in a bias-disabled state, the function should return -EINVAL. Fix this in the mediatek-paris pinctrl library so that the read back state is not littered with bogus a "input bias disabled" combined with "pull up" or "pull down" states. Fixes: 805250982bb5 ("pinctrl: mediatek: add pinctrl-paris that implements = the vendor dt-bindings") Signed-off-by: Chen-Yu Tsai --- drivers/pinctrl/mediatek/pinctrl-paris.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/med= iatek/pinctrl-paris.c index f9f9110f2107..1ca598ea7ba7 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.c +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c @@ -97,8 +97,8 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev, if (err) goto out; if (param =3D=3D PIN_CONFIG_BIAS_DISABLE) { - if (ret =3D=3D MTK_PUPD_SET_R1R0_00) - ret =3D MTK_DISABLE; + if (ret !=3D MTK_PUPD_SET_R1R0_00) + err =3D -EINVAL; } else if (param =3D=3D PIN_CONFIG_BIAS_PULL_UP) { /* When desire to get pull-up value, return * error if current setting is pull-down --=20 2.34.1.575.g55b058a8bb-goog From nobody Sun Sep 22 11:32:04 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7A4F9C433F5 for ; Tue, 11 Jan 2022 11:22:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349377AbiAKLW6 (ORCPT ); Tue, 11 Jan 2022 06:22:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349353AbiAKLW4 (ORCPT ); Tue, 11 Jan 2022 06:22:56 -0500 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A3FE5C06173F for ; Tue, 11 Jan 2022 03:22:56 -0800 (PST) Received: by mail-pj1-x1032.google.com with SMTP id pf13so9331663pjb.0 for ; Tue, 11 Jan 2022 03:22:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YKaz4u+jHXBZ/hE7lcVwwzVS+M4mWSZteuvchYRq/nI=; b=gGo3fMPxrCjwBdkX5n77T17fwS1TD0PV3va335HdH7rjAjuCJ0jAPYlRuotwXbwx62 FR1Vw93XtwPIQGZzMkdQW3ZdXNdqz7TvjYROqPnDGb36AvEUnrzIgJVC7utxf6LpIJca Kthdo7em4vemrrx6zllmjUlfChywO4GB3GN2o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YKaz4u+jHXBZ/hE7lcVwwzVS+M4mWSZteuvchYRq/nI=; b=TeIW7N+LVz3/7Esnbt7QHBAVl3JLNOgfb0crW/U1/axls+4K2p15GCasYSpqDA/dCe PFKhCL0V7fuH/YEvWPXREsX/rYS9hWVnK9Eq8a8FPZ8iMbw6xuhJ4tlDCynGb6ydZ/un wT16A7A2Qv8CTrLjPVYZtuDw45MPdKOJHG16vV+p2/jkWra0qVkRT9LC3y6PAggSJVI8 dM9SfOV0sbapvmU2GDtX92Ob+vVFC8Fr8NldqhpQAtl11haeylUKsw2/Xcx4yUh9Euvs kxC1xXumax2Zk70wIWGggt9cid70KcjvRHPCcgUh/dxlrMLVdaY++R6pv4HGwVSAsQvf n1OQ== X-Gm-Message-State: AOAM530rAlHlyR8YfCU95oCAffI1/WnGIOhHg9zQR+i92bNVOvxvUbBP QAhJLC+RH1rroj1LmFM6x7x7wg== X-Google-Smtp-Source: ABdhPJz5glPbeZkuNFNbmk+GbZakSX+Fxp59hDSbXI0GT47ku5rb9OI1mykAOShWopjv/FxhhGTH+g== X-Received: by 2002:a63:725a:: with SMTP id c26mr3569100pgn.611.1641900176245; Tue, 11 Jan 2022 03:22:56 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:e7ee:1824:8575:bc5c]) by smtp.gmail.com with ESMTPSA id f9sm2053845pjh.18.2022.01.11.03.22.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 03:22:55 -0800 (PST) From: Chen-Yu Tsai To: Sean Wang , Linus Walleij , Matthias Brugger Cc: Chen-Yu Tsai , linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Zhiyong Tao , Guodong Liu Subject: [PATCH 3/7] pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get() Date: Tue, 11 Jan 2022 19:22:40 +0800 Message-Id: <20220111112244.1483783-4-wenst@chromium.org> X-Mailer: git-send-email 2.34.1.575.g55b058a8bb-goog In-Reply-To: <20220111112244.1483783-1-wenst@chromium.org> References: <20220111112244.1483783-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" For mtk_pinconf_get(), the "argument" argument is typically returned by pinconf_to_config_argument(), which holds the value for a given pinconf parameter. It certainly should not have the type of "enum pin_config_param", which describes the type of the pinconf parameter itself. Change the type to u32, which matches the return type of pinconf_to_config_argument(). Fixes: 805250982bb5 ("pinctrl: mediatek: add pinctrl-paris that implements = the vendor dt-bindings") Signed-off-by: Chen-Yu Tsai --- drivers/pinctrl/mediatek/pinctrl-paris.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/med= iatek/pinctrl-paris.c index 1ca598ea7ba7..d720624d8cd2 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.c +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c @@ -188,8 +188,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev, } =20 static int mtk_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin, - enum pin_config_param param, - enum pin_config_param arg) + enum pin_config_param param, u32 arg) { struct mtk_pinctrl *hw =3D pinctrl_dev_get_drvdata(pctldev); const struct mtk_pin_desc *desc; --=20 2.34.1.575.g55b058a8bb-goog From nobody Sun Sep 22 11:32:04 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C675C433FE for ; Tue, 11 Jan 2022 11:23:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238760AbiAKLXG (ORCPT ); Tue, 11 Jan 2022 06:23:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349409AbiAKLW7 (ORCPT ); Tue, 11 Jan 2022 06:22:59 -0500 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26818C061751 for ; Tue, 11 Jan 2022 03:22:59 -0800 (PST) Received: by mail-pj1-x1032.google.com with SMTP id c14-20020a17090a674e00b001b31e16749cso4615489pjm.4 for ; Tue, 11 Jan 2022 03:22:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9+ilDo9mJ+cpPuGCqkGmDZyvh/0Rruh2V0ekaWY5ySY=; b=XkXs2sVlbZdBPoaVV9J3sUozK4gTSDSKFBpUFuCVPECXindDuuQ1V+69UJz2wI+lx9 G6MHB4muSD4ctmT/HkVVxQo3zMvDGWsavRPYgTq7KpqN0X1y2YprO5D9lkL926BJZm/v bMjRRBKqfMAEvtXOqXCHy2Na2MY9YUo4VQ9qc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9+ilDo9mJ+cpPuGCqkGmDZyvh/0Rruh2V0ekaWY5ySY=; b=us1DJPKQwIdMm3RHcAldHgzQcE57zt71DGOO/Up0KgB4liVoumUHwpAg3hS41HruIV Fe+tEHCmlTkBsd5+wT00jULV5BHoJwLlC4D8rq2PFUU8PpGD9P3VngUkMRAqO2X1qI58 uzLAiXQ2QdzZS8mxklIMtan1T3cPNtgwuH4sz8ruzzrsrWT1fUmRgUjg1Eh0WhVVr96e 3iSC6k3USE0TOjMKzvKQGKYkJ+yQwgHkrAqqcZ9k1+J9aG+hnVepnigfDKAL7g/N4+ch dXX7luCw8WJIhnQBsD1eieXwazhDmi8/wk8bwK1T3uLh+T38O1SHrrAPToCHJJt8GBEW Vk4A== X-Gm-Message-State: AOAM533gulEFyacp5DZP1QPSUI/6/fv/totTjGvql1GWExWmgBJnDVDu ySfTDNVkOEhRgyvjBTgCmtbF0A== X-Google-Smtp-Source: ABdhPJwJRu06xQL6ByRV/9lgZHfl9RI+kH9RbPfqsP9o1NoMgEXTitj6cL5swsO/MkT7xBO0RdfRUg== X-Received: by 2002:a17:90a:9f95:: with SMTP id o21mr2601030pjp.44.1641900178730; Tue, 11 Jan 2022 03:22:58 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:e7ee:1824:8575:bc5c]) by smtp.gmail.com with ESMTPSA id f9sm2053845pjh.18.2022.01.11.03.22.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 03:22:58 -0800 (PST) From: Chen-Yu Tsai To: Sean Wang , Linus Walleij , Matthias Brugger Cc: Chen-Yu Tsai , linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Zhiyong Tao , Guodong Liu Subject: [PATCH 4/7] pinctrl: mediatek: paris: Fix pingroup pin config state readback Date: Tue, 11 Jan 2022 19:22:41 +0800 Message-Id: <20220111112244.1483783-5-wenst@chromium.org> X-Mailer: git-send-email 2.34.1.575.g55b058a8bb-goog In-Reply-To: <20220111112244.1483783-1-wenst@chromium.org> References: <20220111112244.1483783-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" mtk_pconf_group_get(), used to read back pingroup pin config state, simply returns a set of configs saved from a previous invocation of mtk_pconf_group_set(). This is an unfiltered, unvalidated set passed in from the pinconf core, which does not match the current hardware state. Since the driver library is designed to have a pin per group, pass through mtk_pconf_group_get() to mtk_pinconf_get(), to read back the current pin config state of the only pin in the group. Fixes: 805250982bb5 ("pinctrl: mediatek: add pinctrl-paris that implements = the vendor dt-bindings") Signed-off-by: Chen-Yu Tsai --- drivers/pinctrl/mediatek/pinctrl-paris.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/med= iatek/pinctrl-paris.c index d720624d8cd2..d259f075c62d 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.c +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c @@ -736,10 +736,10 @@ static int mtk_pconf_group_get(struct pinctrl_dev *pc= tldev, unsigned group, unsigned long *config) { struct mtk_pinctrl *hw =3D pinctrl_dev_get_drvdata(pctldev); + struct mtk_pinctrl_group *grp =3D &hw->groups[group]; =20 - *config =3D hw->groups[group].config; - - return 0; + /* One pin per group only */ + return mtk_pinconf_get(pctldev, grp->pin, config); } =20 static int mtk_pconf_group_set(struct pinctrl_dev *pctldev, unsigned group, --=20 2.34.1.575.g55b058a8bb-goog From nobody Sun Sep 22 11:32:04 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD58CC433EF for ; Tue, 11 Jan 2022 11:23:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349412AbiAKLXK (ORCPT ); Tue, 11 Jan 2022 06:23:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349353AbiAKLXD (ORCPT ); Tue, 11 Jan 2022 06:23:03 -0500 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A3374C06175D for ; Tue, 11 Jan 2022 03:23:01 -0800 (PST) Received: by mail-pj1-x1033.google.com with SMTP id i8-20020a17090a138800b001b3936fb375so4670563pja.1 for ; Tue, 11 Jan 2022 03:23:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1fEL/KVXQTE5AFQeTwaZaRarWCZCE1VjWBv8zykoqdY=; b=QvkvjmrvGZQq6KX1p+b9jRBnwdYwTHBqvdbuW/mMltZPFt0nG/YHdjgwUaIK+CXEbc RC96srRjO9HMfi5xOAbvokyZ4lS5um5OsYATwqKsAlnI0XrhDFMsS5udxTpXCST/JAio D5x9YVt4OjqNJiAHP0wwVs2J3PRVrLwrEPXjE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1fEL/KVXQTE5AFQeTwaZaRarWCZCE1VjWBv8zykoqdY=; b=7Fx+epF0aC3G5Ok10zNWXQtGjb5jJxzl2JsSOQ2VBzWrO9dyZu7ylsdPwLtCsj6iI3 /opZ+TBRptE0BAVwqTtIy+JHjrfoWTtts3KzNAzjJi/ke0UoxCv+KK9/xpy6qZt2Ma6M /fMllKPDD1/UVv7+tDF+VvcCJLgJGwf7TYvcA0fuqY2obBcyXWGJHwIHRSWX/AcJ0pN3 HQoBdC43E92i952lOEmlbB3kkDtFVWeKtOJk3ZPagb6/4yd/BJJ5i9rJNujJEGI382OL jQKBtkB8hFnYVJZ5xvCzAnh7JP0BsCPrrZDs+SsDNtS8J5lMbW+YDIhWjZ4KPjZrn1y+ stjg== X-Gm-Message-State: AOAM5308o3MYV9y87bA4C4bTuuBtZ4UiPCb2hgW6opSU/MXKrf5YaGQr aFYcM4n9O95lkAPJ7C2j46EKyA== X-Google-Smtp-Source: ABdhPJxDZb8hKxuj9Fyjpv8O0cKzuluDJhQ8YRywEa9PHkMM1/QHq5Y5ZmWv+lFYPzArvfca0QIniQ== X-Received: by 2002:a17:903:110d:b0:149:a833:af21 with SMTP id n13-20020a170903110d00b00149a833af21mr4177450plh.14.1641900181239; Tue, 11 Jan 2022 03:23:01 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:e7ee:1824:8575:bc5c]) by smtp.gmail.com with ESMTPSA id f9sm2053845pjh.18.2022.01.11.03.22.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 03:23:00 -0800 (PST) From: Chen-Yu Tsai To: Sean Wang , Linus Walleij , Matthias Brugger Cc: Chen-Yu Tsai , linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Zhiyong Tao , Guodong Liu Subject: [PATCH 5/7] pinctrl: mediatek: paris: Drop extra newline in mtk_pctrl_show_one_pin() Date: Tue, 11 Jan 2022 19:22:42 +0800 Message-Id: <20220111112244.1483783-6-wenst@chromium.org> X-Mailer: git-send-email 2.34.1.575.g55b058a8bb-goog In-Reply-To: <20220111112244.1483783-1-wenst@chromium.org> References: <20220111112244.1483783-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The caller of mtk_pctrl_show_one_pin() is responsible for printing the full line. mtk_pctrl_show_one_pin(), called through mtk_pctrl_dbg_show(), should only produce a string containing the extra information the driver wants included. Drop the extra newlines. Fixes: 184d8e13f9b1 ("pinctrl: mediatek: Add support for pin configuration = dump via debugfs.") Fixes: fb34a9ae383a ("pinctrl: mediatek: support rsel feature") Signed-off-by: Chen-Yu Tsai --- drivers/pinctrl/mediatek/pinctrl-paris.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/med= iatek/pinctrl-paris.c index d259f075c62d..1bacabfbc183 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.c +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c @@ -639,12 +639,10 @@ ssize_t mtk_pctrl_show_one_pin(struct mtk_pinctrl *hw, pullup); =20 if (r1 !=3D -1) { - len +=3D scnprintf(buf + len, buf_len - len, " (%1d %1d)\n", + len +=3D scnprintf(buf + len, buf_len - len, " (%1d %1d)", r1, r0); } else if (rsel !=3D -1) { - len +=3D scnprintf(buf + len, buf_len - len, " (%1d)\n", rsel); - } else { - len +=3D scnprintf(buf + len, buf_len - len, "\n"); + len +=3D scnprintf(buf + len, buf_len - len, " (%1d)", rsel); } =20 return len; --=20 2.34.1.575.g55b058a8bb-goog From nobody Sun Sep 22 11:32:04 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B422FC433F5 for ; Tue, 11 Jan 2022 11:23:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349415AbiAKLXI (ORCPT ); Tue, 11 Jan 2022 06:23:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349461AbiAKLXE (ORCPT ); Tue, 11 Jan 2022 06:23:04 -0500 Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE131C061756 for ; Tue, 11 Jan 2022 03:23:03 -0800 (PST) Received: by mail-pj1-x102c.google.com with SMTP id pj2so16633817pjb.2 for ; Tue, 11 Jan 2022 03:23:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XJMwdxQLK+Yc5aZgEkEqO4a/X5AXx9F4PfWhov8Hxs8=; b=bEhZlvmkQ32PtcvKm5aAqYIL6LQ9DPmV5HnMEm5KaCHP09pskGIZ4Kvr0nb6z6FMHf cHIEn4cz5BsFmf0iYpCnBNZDrE/Jx8xEoSHjtdpuQpB9sNxUZBUPx0x1uPiAH2SSvrJy q3WDPxuNcQ/0/BSgL/CJzOP2BE/Zvpgmk3hhw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XJMwdxQLK+Yc5aZgEkEqO4a/X5AXx9F4PfWhov8Hxs8=; b=s0/BMbzZnvBvYiJaNCSABV073pIXtBtMjRJxAC1BGBxHaJfclzm7GMS5aiVKzTlcd5 UYkHcKPp/UWRM5DzH9rf97ID40LfCcjUfG+fT/gyl6jiYXfaxHzutpidEuZ1RMkUWs+w r224WfDlaev3ZTL1S+o70rAY8GpDry/ZRG8hCtNGwBAZy5VYFq65dUQ0qn2msjjvYgQl no4JbpzRFHceS4so/uDzw6ZyNQSuELMi5kOCTH9GtPDOCF1wBk2zxPMLIbZs92hGv++O yumlcVxSP32l2tefENsbclWDP1o6pbZJnyCTpal5TTbwRObivY+XStorGp4xrE6V3fxS JOoA== X-Gm-Message-State: AOAM532731KVVrNOqjBi3gygATahymaihi47nQzCpKCJVBqR0Yd5uKoq gGicqFJF12VpO/bAV9w1CCFrFIVXvleLBA== X-Google-Smtp-Source: ABdhPJwgUUs7J/x2q3ewoDI+20IVqHL13sU6jp2n1RvR1TuH3+R1TaGSPO//aJ658I0TcJ6ZRcLkyw== X-Received: by 2002:a62:8784:0:b0:4bd:b012:5299 with SMTP id i126-20020a628784000000b004bdb0125299mr4049283pfe.37.1641900183579; Tue, 11 Jan 2022 03:23:03 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:e7ee:1824:8575:bc5c]) by smtp.gmail.com with ESMTPSA id f9sm2053845pjh.18.2022.01.11.03.23.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 03:23:03 -0800 (PST) From: Chen-Yu Tsai To: Sean Wang , Linus Walleij , Matthias Brugger Cc: Chen-Yu Tsai , linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Zhiyong Tao , Guodong Liu Subject: [PATCH 6/7] pinctrl: mediatek: paris: Skip custom extra pin config dump for vrtual GPIOs Date: Tue, 11 Jan 2022 19:22:43 +0800 Message-Id: <20220111112244.1483783-7-wenst@chromium.org> X-Mailer: git-send-email 2.34.1.575.g55b058a8bb-goog In-Reply-To: <20220111112244.1483783-1-wenst@chromium.org> References: <20220111112244.1483783-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Virtual GPIOs do not have any hardware state associated with them. Any attempt to read back hardware state for these pins result in error codes. Skip dumping extra pin config information for these virtual GPIOs. Fixes: 184d8e13f9b1 ("pinctrl: mediatek: Add support for pin configuration = dump via debugfs.") Signed-off-by: Chen-Yu Tsai --- drivers/pinctrl/mediatek/pinctrl-paris.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/med= iatek/pinctrl-paris.c index 1bacabfbc183..678c8aa33012 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.c +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c @@ -585,6 +585,9 @@ ssize_t mtk_pctrl_show_one_pin(struct mtk_pinctrl *hw, if (gpio >=3D hw->soc->npins) return -EINVAL; =20 + if (mtk_is_virt_gpio(hw, gpio)) + return -EINVAL; + desc =3D (const struct mtk_pin_desc *)&hw->soc->pins[gpio]; pinmux =3D mtk_pctrl_get_pinmux(hw, gpio); if (pinmux >=3D hw->soc->nfuncs) --=20 2.34.1.575.g55b058a8bb-goog From nobody Sun Sep 22 11:32:04 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25E0EC433EF for ; Tue, 11 Jan 2022 11:23:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1349464AbiAKLXN (ORCPT ); Tue, 11 Jan 2022 06:23:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349467AbiAKLXG (ORCPT ); Tue, 11 Jan 2022 06:23:06 -0500 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64654C061748 for ; Tue, 11 Jan 2022 03:23:06 -0800 (PST) Received: by mail-pj1-x1031.google.com with SMTP id hv15so10661071pjb.5 for ; Tue, 11 Jan 2022 03:23:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MO9C+/y7rlHj27Tk0Qv7Ks5nBGk0gl8cyNWfCGutHPg=; b=XMNyqW3ffjGD7aCP26DsYfNkvK9ie+mUzx3cG++ZVjFOqppMcKCPt/SaXT9UO5JD6W 13iklO18M+gyAsiV7wMHy5puKvT6Pt4MaWcgg5Rj/64i+CICBfFPyisF5bhP4SCLrPMJ 7dpzceifRZu8dB+5qU1lNWREKlqsVtIhxetVA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MO9C+/y7rlHj27Tk0Qv7Ks5nBGk0gl8cyNWfCGutHPg=; b=psfRgsxV4PlabSMQgoO8UdnAcnMAVUQPZk2HbSF1pOiNLWT5eGBufDhsnlMhlW+doU puGmw8FMJI4Tpvo54AiuXFoE0beFDFy9soMKY6D24CbdJEBGXmQNLOemM830Lr4M+fSY +we4iXyDrL8W9Y4feS5lZSJehTYnsIhi9Pd5wJKyxWlLaiMvksT0Bf8TPe+4dsU9iMSl CJ6l9POq0QQTPcDBXnr/aM1l9FP5zW/2YR3DeWnaOXKGdx/hYkSRESeNFMo8YziWIvpI tvK/RqZgWKaZnNtIcXlGYVa6DLGe9PGGCrMDScaXsOpMEqL0xjCW2y4LAuMZ0jhZiFtp TVgg== X-Gm-Message-State: AOAM531ADHKQGJiNbuj5S19zD+BNz3uD8jDe+uYHmLOUgMPk5a9fFEdz uHVGTNx36ygugs07ZhYQXdpDvgJCacIxZw== X-Google-Smtp-Source: ABdhPJyjOgTnrtdJ0sLFZX6lDQMnLzWQ2b3meTpTPAGNIGTegsNduPt3LuE/Tfw99opR/kwqXQcJHg== X-Received: by 2002:a17:902:9a02:b0:14a:6a3:6c68 with SMTP id v2-20020a1709029a0200b0014a06a36c68mr4116724plp.138.1641900185952; Tue, 11 Jan 2022 03:23:05 -0800 (PST) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:e7ee:1824:8575:bc5c]) by smtp.gmail.com with ESMTPSA id f9sm2053845pjh.18.2022.01.11.03.23.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 03:23:05 -0800 (PST) From: Chen-Yu Tsai To: Sean Wang , Linus Walleij , Matthias Brugger Cc: Chen-Yu Tsai , linux-mediatek@lists.infradead.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Zhiyong Tao , Guodong Liu Subject: [PATCH 7/7] pinctrl: mediatek: paris: Support generic PIN_CONFIG_DRIVE_STRENGTH_UA Date: Tue, 11 Jan 2022 19:22:44 +0800 Message-Id: <20220111112244.1483783-8-wenst@chromium.org> X-Mailer: git-send-email 2.34.1.575.g55b058a8bb-goog In-Reply-To: <20220111112244.1483783-1-wenst@chromium.org> References: <20220111112244.1483783-1-wenst@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Some of the MediaTek chips that utilize the Paris pinctrl driver library support a lower drive strength (<=3D 1mA) than the standard drive strength settings (2~16 mA) on certain pins. This was previously supported by the custom MTK_PIN_CONFIG_DRV_ADV parameter along with the "mediatek,drive-strength-adv" device tree property. The drive strength values for this hardware are 125, 250, 500, and 1000 mA, and can be readily described by the existing "drive-strength-microamp", which then gets parsed by the generic pinconf library into the parameter PIN_CONFIG_DRIVE_STRENGTH_UA. Add support for PIN_CONFIG_DRIVE_STRENGTH_UA while keeping the old custom parameter around for backward compatibility. Signed-off-by: Chen-Yu Tsai --- The indentation in the switch/case blocks is getting somewhat out of control. I also have some cleanup changes to reverse the logic of the if/break statements. Not sure if it should be done before or after this patch though. --- drivers/pinctrl/mediatek/pinctrl-paris.c | 84 ++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/med= iatek/pinctrl-paris.c index 678c8aa33012..5a94903ae372 100644 --- a/drivers/pinctrl/mediatek/pinctrl-paris.c +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c @@ -48,6 +48,53 @@ static const char * const mtk_gpio_functions[] =3D { "func12", "func13", "func14", "func15", }; =20 +/* + * This section supports converting to/from custom MTK_PIN_CONFIG_DRV_ADV + * and standard PIN_CONFIG_DRIVE_STRENGTH_UA pin configs. + * + * The custom value encodes three hardware bits as follows: + * + * | Bits | + * | 2 (E1) | 1 (E0) | 0 (EN) | drive strength (uA) + * ------------------------------------------------ + * | x | x | 0 | disabled, use standard drive strength + * ------------------------------------- + * | 0 | 0 | 1 | 125 uA + * | 0 | 1 | 1 | 250 uA + * | 1 | 0 | 1 | 500 uA + * | 1 | 1 | 1 | 1000 uA + */ +static const int mtk_drv_adv_uA[] =3D { 125, 250, 500, 1000 }; + +static int mtk_drv_adv_to_uA(int val) +{ + /* This should never happen. */ + if (WARN_ON_ONCE(val < 0 || val > 7)) + return -EINVAL; + + /* Bit 0 simply enables this hardware part */ + if (!(val & BIT(0))) + return -EINVAL; + + return mtk_drv_adv_uA[(val >> 1)]; +} + +static int mtk_drv_uA_to_adv(int val) +{ + switch (val) { + case 125: + return 0x1; + case 250: + return 0x3; + case 500: + return 0x5; + case 1000: + return 0x7; + } + + return -EINVAL; +} + static int mtk_pinmux_gpio_request_enable(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned int pin) @@ -151,11 +198,38 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctlde= v, =20 break; case PIN_CONFIG_DRIVE_STRENGTH: + if (hw->soc->adv_drive_get) { + err =3D hw->soc->adv_drive_get(hw, desc, &ret); + if (!err) { + err =3D mtk_drv_adv_to_uA(ret); + if (err > 0) { + /* PIN_CONFIG_DRIVE_STRENGTH_UA used */ + err =3D -EINVAL; + break; + } + } + } + if (hw->soc->drive_get) err =3D hw->soc->drive_get(hw, desc, &ret); else err =3D -ENOTSUPP; break; + case PIN_CONFIG_DRIVE_STRENGTH_UA: + if (hw->soc->adv_drive_get) { + err =3D hw->soc->adv_drive_get(hw, desc, &ret); + if (err) + break; + err =3D mtk_drv_adv_to_uA(ret); + if (err < 0) + break; + + ret =3D err; + err =3D 0; + } else { + err =3D -ENOTSUPP; + } + break; case MTK_PIN_CONFIG_TDSEL: case MTK_PIN_CONFIG_RDSEL: reg =3D (param =3D=3D MTK_PIN_CONFIG_TDSEL) ? @@ -271,6 +345,16 @@ static int mtk_pinconf_set(struct pinctrl_dev *pctldev= , unsigned int pin, else err =3D -ENOTSUPP; break; + case PIN_CONFIG_DRIVE_STRENGTH_UA: + if (hw->soc->adv_drive_set) { + err =3D mtk_drv_uA_to_adv(arg); + if (err < 0) + break; + err =3D hw->soc->adv_drive_set(hw, desc, err); + } else { + err =3D -ENOTSUPP; + } + break; case MTK_PIN_CONFIG_TDSEL: case MTK_PIN_CONFIG_RDSEL: reg =3D (param =3D=3D MTK_PIN_CONFIG_TDSEL) ? --=20 2.34.1.575.g55b058a8bb-goog