From nobody Tue Apr 7 19:54:48 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 603123043DC for ; Wed, 11 Mar 2026 19:38:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257893; cv=none; b=reHEEvvPCnopmDErQT3ZQwPcjhLMNWFRogl1350EfQkjnskxttmtt/4dPpcHqjp++5ZUhFZV153sf8qaS1GvGBCS/+t7KG6ci1ZrbLuDYTJJEi5RDywk9BxJVv51kqdca5j0PwD6VZf0LxVPwdp7oEp9rV5mcfZ/tpIu79OtIRY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257893; c=relaxed/simple; bh=qub0cc9B89QJXNhuj7o8afjimwUoYhU3mwesp3uHexI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=DqwA/Pvg/OlgFEc+bk0x9w5nbhSv0IFCYGkPPCfz7d/Ed1VKUoBA/RnYELiRyQiEhn5DRlNPqsCmhCIdDOCS5EZZmMelWx8y8vjXBBsnJfOVnkipSk9bPvFJEIKOpLVHOwrmSFdoWPrNxPrPdbkeB937lr/kOtrM2qcLQqE1toE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Acp+cQtW; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Acp+cQtW" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-439bc14dcf4so1093252f8f.1 for ; Wed, 11 Mar 2026 12:38:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773257891; x=1773862691; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=UVoIoUgEnohfcDrGeS0vAZ3ak+mSxJEtVllXouTurmg=; b=Acp+cQtWY0DIRn+cy1y3ejBUa1Ap7tCi7dC0zkGibobglFeT+dsUh+3OvstUoJR6tP tkBv7/j9EZDobUhgEpusPAss0XkNTCBCHfEh3fsaIbAZzgCz8TK9/lfQ4xOEy4NfZuVU jitzDSWmtemJ/5BVQtFpZH1ot3v1FjQBoN8OeFeJjDmZ8jbshbz6KYbL2d9tztB0q9IX sqf6Z7UcSqlA9R5I7jIXNDCf8l5Qc5/GNpK5wEtc/0uq3406OlntM9vfNb0aWd5hnL5j Vp71aamtGg5Gg7hk57psMksLkrt/xo2Zp6ykL6PblfHob37FyIf09jeXp5NNywf9YQQx KSTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773257891; x=1773862691; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UVoIoUgEnohfcDrGeS0vAZ3ak+mSxJEtVllXouTurmg=; b=CUl1dLBSyuEV/sL9hXrE34WgjVQQtqmDkII7V4txDUQ2XF1SeMtIcnCjb9Wc3qBBi8 oiyVj+f54GYAYwgOj4XeWWxUBPSNqILlxuidJ5Jrohvn0QgfpONCeJMpGgp+AXarwCAb IhGFk4EVONw8HXIPPHxo+3JPwamGVj/uOmRuw3IcObFDOliIi1j4AEtV6+gze2NDiLnu UE+UJzeiRmAC5mzLAOvCPa5K/Y/RIt5cLv6/CLG87k+yxSLizJcw80XUGgrxXWabBa/z P7DPPE9Ymc3QbKPcRXp3N/iiwgvzTKd9PMGJhSp1YTj13PsSTxcsUNP5w8ha4Yb4P7QJ 6d/g== X-Forwarded-Encrypted: i=1; AJvYcCXAAp0lS1aNKrwGRflWiT7nOdG5RsVIG1yPVoR3UaJm/4yUnI2XkUk7kWsZesmPrBdXmOwcdK6E+d+LDj8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6Z3PQFyhohp/EdLU07559JPyHY/4FoQCBHspVEdcW4WqeqVkq mPS2Exg4qapUqizjffKAHQFszLhzWMtYPfRZysX4Mz/B/A9FjdaWWtCgc4K/RAIc3sU= X-Gm-Gg: ATEYQzyhEX8TOyB4RT7vDaiYvabB2hHd9waYkq/80hLF87njphN/6LnZ9qgKhMj+uzG CRiMu3qVnQyIFEljR1JTt4gxVQwF+pNjl68GD7fBN6KoV54WQpKMsKMQtyCFRvUAzqCHBEyyIgh CxK13q2C0ucvyVsk2q8lhoN7CS8a3IWXPNAwJ8GJmw6ixOxpMYy6NJoaZcYZ+wwkEC9Dgq1TW1V ol61xt3xB3bKSqoVApUk5bjuSbbEDHeQzeRcXcxo6KVi+mEjdiKNOhbscp2sBEqsAh5NxKF6oeI mA2EG7LDo4xKAKe655HO1ljm2Vi9OoxgUSsWBNjVYLjti3v9EJ3MrQjm6WGNtks6FKArWpb6eL1 pld0R/pgwQ3trqP1o8QjAJyHU+o0Jg6evaxoNev+gwXYf9f53cK2k/yYjwUYeYR2xOxCmN6ne8U GSSjFjBW8Q/7p9LEYf+4DaM32htjmT X-Received: by 2002:a05:6000:24c2:b0:439:bb46:7457 with SMTP id ffacd0b85a97d-439fe192ab8mr1738510f8f.16.1773257890603; Wed, 11 Mar 2026 12:38:10 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe219c41sm1408413f8f.29.2026.03.11.12.38.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 12:38:10 -0700 (PDT) Date: Wed, 11 Mar 2026 22:38:07 +0300 From: Dan Carpenter To: Linus Walleij , AKASHI Takahiro Cc: Bartosz Golaszewski , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , arm-scmi@vger.kernel.org Subject: [PATCH v3 1/7] pinctrl: introduce pinctrl_gpio_get_config() Message-ID: <350d922ad791ac72756caa91e1551e16d7f511eb.1773150895.git.dan.carpenter@linaro.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: AKASHI Takahiro This is a counterpart of pinctrl_gpio_set_config(), which will be used to implement the ->get() interface in a GPIO driver for SCMI. Signed-off-by: AKASHI Takahiro Signed-off-by: Dan Carpenter Reviewed-by: Linus Walleij --- drivers/pinctrl/core.c | 30 ++++++++++++++++++++++++++++++ include/linux/pinctrl/consumer.h | 9 +++++++++ 2 files changed, 39 insertions(+) diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index b5e97689589f..732ca6785c67 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -30,6 +30,7 @@ #include #include #include +#include #include =20 #include "core.h" @@ -938,6 +939,35 @@ int pinctrl_gpio_set_config(struct gpio_chip *gc, unsi= gned int offset, } EXPORT_SYMBOL_GPL(pinctrl_gpio_set_config); =20 +/** + * pinctrl_gpio_get_config() - Get the config for a given GPIO pin + * @gc: GPIO chip structure from the GPIO subsystem + * @offset: hardware offset of the GPIO relative to the controller + * @config: the configuration to query. On success it holds the result + */ +int pinctrl_gpio_get_config(struct gpio_chip *gc, unsigned int offset, uns= igned long *config) +{ + struct pinctrl_gpio_range *range; + struct pinctrl_dev *pctldev; + int ret, pin; + + ret =3D pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range); + if (ret) + return ret; + + mutex_lock(&pctldev->mutex); + pin =3D gpio_to_pin(range, gc, offset); + ret =3D pin_config_get_for_pin(pctldev, pin, config); + mutex_unlock(&pctldev->mutex); + + if (ret) + return ret; + + *config =3D pinconf_to_config_argument(*config); + return 0; +} +EXPORT_SYMBOL_GPL(pinctrl_gpio_get_config); + static struct pinctrl_state *find_state(struct pinctrl *p, const char *name) { diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consu= mer.h index 63ce16191eb9..11b8f0b8da0c 100644 --- a/include/linux/pinctrl/consumer.h +++ b/include/linux/pinctrl/consumer.h @@ -35,6 +35,8 @@ int pinctrl_gpio_direction_output(struct gpio_chip *gc, unsigned int offset); int pinctrl_gpio_set_config(struct gpio_chip *gc, unsigned int offset, unsigned long config); +int pinctrl_gpio_get_config(struct gpio_chip *gc, unsigned int offset, + unsigned long *config); =20 struct pinctrl * __must_check pinctrl_get(struct device *dev); void pinctrl_put(struct pinctrl *p); @@ -101,6 +103,13 @@ pinctrl_gpio_direction_output(struct gpio_chip *gc, un= signed int offset) return 0; } =20 +static inline int +pinctrl_gpio_get_config(struct gpio_chip *gc, unsigned int offset, + unsigned long *config) +{ + return 0; +} + static inline int pinctrl_gpio_set_config(struct gpio_chip *gc, unsigned int offset, unsigned long config) --=20 2.51.0 From nobody Tue Apr 7 19:54:48 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 246472FE58F for ; Wed, 11 Mar 2026 19:38:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257904; cv=none; b=sh+QfIGkiZyQl7ao+xdlqA1GKmNmEjMikm2Yb4geoVltzaVYVXVUnMcHyW5Wo1SmH78oebg1tZlMDT8PL0NB0EhOycvfxOPMh+x9HkPw+HW0iPViCSmtPwUQZWaQyuP58nn14KtQduhnH4XkoixhiJNB1X8/sXvwluLQoSvKbVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257904; c=relaxed/simple; bh=jNLbaa/EdHOV24YnPDzn3wt5qXtVOjsJPr+S7zUA+TI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=kFyKMiDTIjHwySH6Hic4kZ0PMZJ256wJqzeUdd1PuJeEcuxLO5qQt0KeaOk2jusYCQjhgTtnhjzGtEzqfR22I7fHshjWHmlTfb3FzV/zxtH2L+saA8iVBGc4bhcC4P6rPg+Mv/yzBKFegVWlhftZkEPAnQQyWzADpFlaFBHJtx4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=eAg4UdIA; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="eAg4UdIA" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4853f2826f7so1851205e9.1 for ; Wed, 11 Mar 2026 12:38:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773257900; x=1773862700; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=O5jKa1mhx8JE7wb9TTu7vy92JT5A3X2bElgi3jOUD4I=; b=eAg4UdIAJa9z/d11Pa7zVO9wdlPLstLSppd3cFqP7WDW7msRVgPXciDvGoEKv6TDaV qNRf+wO1CpbLrIZO91W74RQ1BvUqFiCK7duPMkNn7EYfvQrEC1ZL24e/fhm37tUuetsd KpkioWSKSFpPrI4KRlUI5L6CnPSdEpRGtGFiztIdrjnUw/+KqI88E4MLBjNAGnLrV9Rt /tQXkvYx+NVo4mD4IoltOP06AVkJlclrs/H/1ph270oSyi+AGBzcXa/hfV8q57UKrySV LXRUNg+sipW14TJs36v3DiSyAj94hT7MHUbQeYUdRWa0VZb1Os9LSX0nwVqQ4O0nzgGt 9ZqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773257900; x=1773862700; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O5jKa1mhx8JE7wb9TTu7vy92JT5A3X2bElgi3jOUD4I=; b=SCbBeT75hnTbQl+8u93DjyySxKNre2/XatUzyyfMcG1zE9YReB8ERQo8n9agxJjM59 LW3RMYIVdPaxBe6H4ARSDmwXFwHdOKElryI/+9FPFjBsqj06DOZfslqFZOWj7jP++XQR MlMbx9QOmAcBroqxTrlvxJso0uX6kdMpdLVll9WWQTZm2anIOob3kZQq923/yANu9Ui5 neCGQld5Vyn72SWdQODoCxgGyUCuAexabtZaQpBIX/i1rcANbbazqT9zpGIbK2+BnkEv Fo2vWIC+59imO1eQx4BCBqXO8ib56FMS14gsTQ5R1PurLs25YbcveD9bZyA+NjQllSSD iIvg== X-Forwarded-Encrypted: i=1; AJvYcCXc3XWtLvTIlTWb2EArcqDsenb2YEhAe1+aN7SkSuEe8GDhRVjJJfPxrwHWFE+sAtD9ucsunb6m44U1N+Y=@vger.kernel.org X-Gm-Message-State: AOJu0YweZtpsck+PhZub3cjR0Acu50HnZqeJf/+2aPAHWQOVa8EYH8S3 yGTa1vZL+NAwsCafttz87WirKOq22YfaA8d5iHNuR5T+3wizPQrTJ2E7/Fc4JMd/00i28CsRahK B4dyk X-Gm-Gg: ATEYQzzivXxMjV2p7iSiD4LeTPyXd5jNOCbz7fYhvFNkvEhnb7HjZNao6oJMGkn3vDN TS0EZCgYnnLRSR11gv9U6JWeq0+B3D9s9512Lt6mfYjdUBB1W+74IGaMwO0wLE8Q0W0tLFDLpyI poFIKoyqLFxnvFB6R/w97h1O1SECHn9DH8gESTeSp1VepQn0cLNTeEsHm7/nLH1/kIMR01rB3l9 0bD2ktDZ+0Hr17TFyezEPk9EO+OoyX2lmlPdUNW4haefCQOHi02lTyCS8J2DAD8i6hTmvN0DQq8 CnlMBb7S6ieRinTZqnuORuIp70yLXFPD9MJV9D+gsb9Y5XVJDWNsl17VrcRyyM0ozGUutywTHcs COlYK1d9u+Uzs7SA943j7yvMQLo6EL3QZsRFHJ/pvMudCD5rGftfrqtzDajjA6arPQcXcMoZHRB QGNJ2zbM6OkzL/d+BUwfDwIHP3pKZR X-Received: by 2002:a05:600c:608c:b0:485:34b3:8589 with SMTP id 5b1f17b1804b1-4854b136ae3mr63730725e9.31.1773257900308; Wed, 11 Mar 2026 12:38:20 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe2187aasm1506034f8f.30.2026.03.11.12.38.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 12:38:19 -0700 (PDT) Date: Wed, 11 Mar 2026 22:38:16 +0300 From: Dan Carpenter To: Sudeep Holla , AKASHI Takahiro Cc: Cristian Marussi , Linus Walleij , arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko , Bartosz Golaszewski Subject: [PATCH v3 2/7] pinctrl: scmi: Add SCMI_PIN_INPUT_VALUE Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The PIN_CONFIG_LEVEL parameter represents the value of the pin, whether reading or writing to the pin. In SCMI, the parameter is represented by two different values SCMI_PIN_OUTPUT_VALUE for writing to a pin and SCMI_PIN_INPUT_VALUE for reading. The current code translates PIN_CONFIG_LEVEL as SCMI_PIN_OUTPUT_VALUE (writing). Add a function to translate it to either INPUT or OUTPUT depending on whether it is called from a _get or _set() operation. Signed-off-by: Dan Carpenter Acked-by: Sudeep Holla Reviewed-by: Linus Walleij --- drivers/pinctrl/pinctrl-scmi.c | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c index f4f296e07be5..5d347e6b2e4c 100644 --- a/drivers/pinctrl/pinctrl-scmi.c +++ b/drivers/pinctrl/pinctrl-scmi.c @@ -251,9 +251,6 @@ static int pinctrl_scmi_map_pinconf_type(enum pin_confi= g_param param, case PIN_CONFIG_MODE_LOW_POWER: *type =3D SCMI_PIN_LOW_POWER_MODE; break; - case PIN_CONFIG_LEVEL: - *type =3D SCMI_PIN_OUTPUT_VALUE; - break; case PIN_CONFIG_OUTPUT_ENABLE: *type =3D SCMI_PIN_OUTPUT_MODE; break; @@ -276,6 +273,28 @@ static int pinctrl_scmi_map_pinconf_type(enum pin_conf= ig_param param, return 0; } =20 +static int pinctrl_scmi_map_pinconf_type_get(enum pin_config_param param, + enum scmi_pinctrl_conf_type *type) +{ + if (param =3D=3D PIN_CONFIG_LEVEL) { + *type =3D SCMI_PIN_INPUT_VALUE; + return 0; + } + + return pinctrl_scmi_map_pinconf_type(param, type); +} + +static int pinctrl_scmi_map_pinconf_type_set(enum pin_config_param param, + enum scmi_pinctrl_conf_type *type) +{ + if (param =3D=3D PIN_CONFIG_LEVEL) { + *type =3D SCMI_PIN_OUTPUT_VALUE; + return 0; + } + + return pinctrl_scmi_map_pinconf_type(param, type); +} + static int pinctrl_scmi_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin, unsigned long *config) { @@ -290,7 +309,7 @@ static int pinctrl_scmi_pinconf_get(struct pinctrl_dev = *pctldev, =20 config_type =3D pinconf_to_config_param(*config); =20 - ret =3D pinctrl_scmi_map_pinconf_type(config_type, &type); + ret =3D pinctrl_scmi_map_pinconf_type_get(config_type, &type); if (ret) return ret; =20 @@ -363,7 +382,7 @@ static int pinctrl_scmi_pinconf_set(struct pinctrl_dev = *pctldev, =20 for (i =3D 0; i < num_configs; i++) { param =3D pinconf_to_config_param(configs[i]); - ret =3D pinctrl_scmi_map_pinconf_type(param, &p_config_type[i]); + ret =3D pinctrl_scmi_map_pinconf_type_set(param, &p_config_type[i]); if (ret) { dev_err(pmx->dev, "Error map pinconf_type %d\n", ret); goto free_config; @@ -405,7 +424,7 @@ static int pinctrl_scmi_pinconf_group_set(struct pinctr= l_dev *pctldev, =20 for (i =3D 0; i < num_configs; i++) { param =3D pinconf_to_config_param(configs[i]); - ret =3D pinctrl_scmi_map_pinconf_type(param, &p_config_type[i]); + ret =3D pinctrl_scmi_map_pinconf_type_set(param, &p_config_type[i]); if (ret) { dev_err(pmx->dev, "Error map pinconf_type %d\n", ret); goto free_config; @@ -440,7 +459,7 @@ static int pinctrl_scmi_pinconf_group_get(struct pinctr= l_dev *pctldev, return -EINVAL; =20 config_type =3D pinconf_to_config_param(*config); - ret =3D pinctrl_scmi_map_pinconf_type(config_type, &type); + ret =3D pinctrl_scmi_map_pinconf_type_get(config_type, &type); if (ret) { dev_err(pmx->dev, "Error map pinconf_type %d\n", ret); return ret; --=20 2.51.0 From nobody Tue Apr 7 19:54:48 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BDCC22D5925 for ; Wed, 11 Mar 2026 19:38:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257912; cv=none; b=iG6gpr6F7x4Kqp5qPO01pVR4ATqsXGIkGznGBewhEfZ3Ea6LZgerhjtgZCHZzyGS7eMJ5UbEcDKpX6GUWCS0hjEsJv/GpIqFES15JToWbM2VhCazkIsTUNTABqik92O4atep+yzmGxGR1RHbDdl88MbKuAWXNrmyFPwOQYa17gM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257912; c=relaxed/simple; bh=SufqcgiMGlErJPwQicSM/zXxq/8THKnYyGg0Vhb4umA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=s9+14hiFS6uicSG+PnG4JRSJvJO4bMJK94BU7aEKMkTTv7cJaOj/Ek3bpnp53B5/ZbfSEt71JlrtrExF4ZvXKOI8ZqcS5xEfjIxRkctReP/zBN2HfJuveYq+lTtZYkpzMA8E3YfJDTbukPOgOykXpOY0P/vrEzD4fTmIFJ4025M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Og6Zopm9; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Og6Zopm9" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-48534237460so1989995e9.3 for ; Wed, 11 Mar 2026 12:38:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773257909; x=1773862709; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=YKrwQxPh+RV1xNOdR2bWIDNMMLavH+TXby9dnhvJwm0=; b=Og6Zopm96YQ4myFyuAbqxxe/psM5SM5KnX2lpoydP7Of4413It5XeJjGAWGjv9xWGT MQVvTQe/bJGeyNmCsslVl8rvdgU2SbzDspWW00L/QLcqwX3OGY60UCsUtWBbTmfUoyCO ScmAas2NasnAVvahW1eJwh6LkOmTuAqMpvUnvldnlMFwIsSjz1ihJJKAXKwoIov9fxYa 6Z3C0JduXdXKZx+C6WN/FjR688ruzaBB3uoi3gpaIFOC4DuF6mJk341I1dF4t+w0zWkH x8WAqm1eyhsdgFMyFUwaoxKi5t9HCfBivPnh7pKjpKjmBGNQCyLBeMQMxc6JZdSMx/1C DsBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773257909; x=1773862709; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YKrwQxPh+RV1xNOdR2bWIDNMMLavH+TXby9dnhvJwm0=; b=IIHqZ3MJKmihIUW7hhJuuREbFHoVySr32e2znL/gpApxosi5irrqFTev2kJ1/F7xk9 Fq3QBI1TOO5wk3RaoEMDGLi0sJJGhemsnwlECxjKXayd+plD0C/je+QU8rRAHXujtB7z Ae494NJj7X5LfOlLkGrA3EOaGGUPBE1sKhuzS12HmjFOjYqTSXHzXNG488wL6v7oPaG7 c7jMxIzKFBlltz9bdO1FVC5EEWYfn6bTHY3NqbvVKBoyU3pgfaRLn+XOMKw+KxL4puTy zdMYSSrDdO70q3Rz1c6O81iFcIMUzx7aleHHrD5uVxDqwoHXkjBRJSwnBvcX+oS+wdmB TxDw== X-Forwarded-Encrypted: i=1; AJvYcCUY3VnQ5PJ11N/J+o4fI5Yax/kCWWpURr+AGUyLN/dMa3PTV8hJz1n69VUhrE4kILLsK4YwPp2BCmcnuLM=@vger.kernel.org X-Gm-Message-State: AOJu0Yzj5Dont+W6eyHgATrOXHwbNDexv51x0pP7Yjp/58S/lQK7+Dj1 xb8Je/a9TLoATCa16DxVmw6MFL/ub21O5AedVswcLr5O/2Y1eVZUzwwMNpq60jPH8Ug= X-Gm-Gg: ATEYQzwFnmB7jTSaPvq7gQoCWi9TM/f2u/Wx4Q8pGGkPOFeYn1Pqu8sRJYMorWZlbpt jJFW8W48DP/IAaVzUscdmDXEW0Qo/UIzv+n2J9KZGRiM4NSC9Cl+36SVKecT3SyoDT4gDLPA/jj AkIpE5U8BxHv3OScqPk/VslPfWuyh4t1nmMWpv3Q8IYjqkcGHJwImlgd9FtLyNpa4kDRAD8ixuw 4MZ1X5kU7VK7Wp8IUtnrjeRLYx+xk6zvGRIk+jsxw2yuEH4kAiQkHwlg1TJhKeI3eJ5/3dA/4Qb n5GnzvKcJIkjX862WvVDGxzVS+K/yjf0YFMBhV1oENMn1xEBLpcUMuJjyfHw+/5RoU7MYJB7NkS GcVCjpMhxWPmNGGiKZFrspxslRjmiheVwKcSnXf3dywseSsP97fUHN7N2wP1LSKr0S1H5Wz4fa1 Zxrx0nejeL+SRGMm/0dsiI+V2854gG1XkVpgA2ZMo= X-Received: by 2002:a05:600c:a114:b0:485:4bd1:4c74 with SMTP id 5b1f17b1804b1-4854bd14ec7mr44737225e9.32.1773257909025; Wed, 11 Mar 2026 12:38:29 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4854b0caccasm58337415e9.6.2026.03.11.12.38.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 12:38:28 -0700 (PDT) Date: Wed, 11 Mar 2026 22:38:25 +0300 From: Dan Carpenter To: Sudeep Holla , Peng Fan , AKASHI Takahiro Cc: Cristian Marussi , Linus Walleij , arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko , Bartosz Golaszewski Subject: [PATCH v3 3/7] pinctrl: Delete PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS support Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The argument for PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS is supposed to be expressed in terms of ohms. But the pinctrl-scmi driver was implementing it the same as PIN_CONFIG_OUTPUT and writing either a zero or one to the pin. The SCMI protocol doesn't have an support configuration type so just delete this code instead of replacing it. Cc: Peng Fan Signed-off-by: Dan Carpenter Reviewed-by: Linus Walleij --- Hi Peng, could you Ack this patch? I could drop it, since obviously it doesn't affect my stuff at all but it's the right thing to do. drivers/pinctrl/pinctrl-scmi.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c index 5d347e6b2e4c..de8c113bc61d 100644 --- a/drivers/pinctrl/pinctrl-scmi.c +++ b/drivers/pinctrl/pinctrl-scmi.c @@ -254,9 +254,6 @@ static int pinctrl_scmi_map_pinconf_type(enum pin_confi= g_param param, case PIN_CONFIG_OUTPUT_ENABLE: *type =3D SCMI_PIN_OUTPUT_MODE; break; - case PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS: - *type =3D SCMI_PIN_OUTPUT_VALUE; - break; case PIN_CONFIG_POWER_SOURCE: *type =3D SCMI_PIN_POWER_SOURCE; break; --=20 2.51.0 From nobody Tue Apr 7 19:54:48 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C9F8344DB5 for ; Wed, 11 Mar 2026 19:38:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257942; cv=none; b=g6TWnsBVAxHHEvbFKSd6szn+zOiRDnaO7aFqVz1HxpgBT9dlfhPpMqBv5v6wcW0NdLzMlK+aD+cc7bsKc689e9Ll68sQmNFTxey32TIACdtlzseRxgm+SUI95a3dS0ugtLonRhLIqz1nMHla9Mph/oTuUN68s4tP8LvZYnevTgc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257942; c=relaxed/simple; bh=+lx0NoL+4Abj33jCYoRiMh0L0i+BewAAr0Ejn6Jvz6U=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Znm6CNQ5Dw49nY1hlDhDmKxdplRkvocGudhvHkFOoucDHWkb7H7LQT+j56F3MsbWC+kdSsrJnbaDHTAZgaVyXR+QpSWznnYeDkCE1DjTYFyQtyv3HxHMEUN2zBMugYlUerTSXK2oKFhO0oJzMBzjg50ZBjdgEFMJp6jYLKltZL8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=I4DQ0t1g; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="I4DQ0t1g" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-48529c325f0so1644405e9.0 for ; Wed, 11 Mar 2026 12:38:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773257937; x=1773862737; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=9CaxwIwvIcGgO9P9X/34fCDqJsPmK1yqw1P6zBQb93s=; b=I4DQ0t1gjw74QWOjRWbXCHxIpofvDn58dJJ7T9l4XdfPLxRPDqCidsU1vdOz48PqGr 3rSV69O5pHr4a8pj/1Rpqp7xT1RAKwD/Nk4Uf9wU/JHR2JfRZTc5oOQbGawgSNNgrKbl ed0BghKgeHIDG3VV/qvi7RNBkHa3NYODAzopthxqe4jRaAOGcCWTT07wCdBqkN/mKTNy 8g4rGraz1bCVNx+/zKT/XBsjoq6dO7GYP3I54cmtN2s3rKVjiZC15P9gKfI9aiOoCavF qnMgNLqjJ1K06UD9j6aFTkJPVVNirgQgRfzDzTjWbTGtHViaS2joH5DBhlJNQms+Y1J0 QMLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773257937; x=1773862737; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9CaxwIwvIcGgO9P9X/34fCDqJsPmK1yqw1P6zBQb93s=; b=fjLWEG5ymICPyCtHbiQ2I7Jfds1w4RBXQhl+zwpLlQPHXsazhOttWhpCwuX+zgy7Jy 1nY5D1yJ0X1IxrUlg76p2m99pygnXBzjPhLbF/ZgHoryYuLgr+jUyCn/CZyDZ/Fkky9J Aqsjz/2kqNGZwEzFfxuHoiivZrdHBQ/WEi9gKAkdXe9ODyLNYWq6V9lSSMYtOqB6Jh67 rTav3KAz5OMMSeKdd2kaOG26dZKnMEqDmPInG+GimaNoEth9U4BRlfR2irRVSyLOMtT/ qvzzndgPJ9dWyXBRyhwnlkLXjgnq/RtyfdFEUpCR2MGKLsiTkpQp79r4kTap93MhIaBi 3ntQ== X-Forwarded-Encrypted: i=1; AJvYcCUpkivclBZjxkwUNnl6n4iXcSHD3sWjpoW/gRfT2SV5iGgaPU7UIDquNsXweuu5FDmcY/ZrlDLBR90XOmw=@vger.kernel.org X-Gm-Message-State: AOJu0YwCFM4z/lOu073ugIpd/me910UUyb6vidn4lFT2fVC0seo46jeX 1zHVrp9JDlpPrTpmAkYZeHNMXcmwvNL7sRLj4CbqLwv5KVR+xwW0nzvp7gaRTMq5M2g= X-Gm-Gg: ATEYQzznFfklntj9djdN8UtJBId9O3pUl+VW1omtjQnVMy/+piwo/08ZiIVKD45gSw1 weMoFYoYZnAkhwlwZny8MHMywhzVVEFvWbgKtoSn87NROi2t1MSdoahFCz4P5mTKc6nS1+HuYKx WkEuvNt3qSD7iu5NtbRkvqciE/vfZ69Ku7C/ugQhLKs2LazBA2pDcyrk0Jc9l0IrOQHl1VcC0cr 9oqkSWQJwtalkojeolzBHJ1tavCIg6T3CGM3mPf8WIgwIyK4SJFg1td+a7dl4sgqJd0D3m8kwC5 Pldb4nurFMzo/FsJs2bAFgmH1iN9VUg5v1MwtPAsoClSEyhIBuSbQFxVJ4rNVtvwFrenhjXBpFW Hpdrk2nhImvmMxdYAmnie9v2dNas0XQJihLugO2kn/yTiqxOctgzzIVJ+iFr6740hI7Ed89jPzS FQZfdiZLBrPoPFvKbho5qfg5UFnmG4QtqKBSag6H8= X-Received: by 2002:a05:600c:c4b7:b0:485:304a:58cd with SMTP id 5b1f17b1804b1-4854b0a4a4cmr64000115e9.4.1773257937205; Wed, 11 Mar 2026 12:38:57 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe20c473sm1460894f8f.24.2026.03.11.12.38.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 12:38:56 -0700 (PDT) Date: Wed, 11 Mar 2026 22:38:53 +0300 From: Dan Carpenter To: Sudeep Holla , AKASHI Takahiro Cc: Cristian Marussi , Linus Walleij , arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko , Bartosz Golaszewski Subject: [PATCH v3 4/7] pinctrl-scmi: ignore PIN_CONFIG_PERSIST_STATE Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The PIN_CONFIG_PERSIST_STATE setting ensures that the pin state persists across a sleep or controller reset. The SCMI spec does not have an equivalent command to this so just ignore it. Signed-off-by: Dan Carpenter Reviewed-by: Linus Walleij --- drivers/pinctrl/pinctrl-scmi.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/pinctrl/pinctrl-scmi.c b/drivers/pinctrl/pinctrl-scmi.c index de8c113bc61d..f22be6b7b82a 100644 --- a/drivers/pinctrl/pinctrl-scmi.c +++ b/drivers/pinctrl/pinctrl-scmi.c @@ -361,7 +361,7 @@ static int pinctrl_scmi_pinconf_set(struct pinctrl_dev = *pctldev, unsigned long *configs, unsigned int num_configs) { - int i, ret; + int i, cnt, ret; struct scmi_pinctrl *pmx =3D pinctrl_dev_get_drvdata(pctldev); enum scmi_pinctrl_conf_type config_type[SCMI_NUM_CONFIGS]; u32 config_value[SCMI_NUM_CONFIGS]; @@ -377,17 +377,21 @@ static int pinctrl_scmi_pinconf_set(struct pinctrl_de= v *pctldev, if (ret) return ret; =20 + cnt =3D 0; for (i =3D 0; i < num_configs; i++) { param =3D pinconf_to_config_param(configs[i]); - ret =3D pinctrl_scmi_map_pinconf_type_set(param, &p_config_type[i]); + if (param =3D=3D PIN_CONFIG_PERSIST_STATE) + continue; + ret =3D pinctrl_scmi_map_pinconf_type_set(param, &p_config_type[cnt]); if (ret) { dev_err(pmx->dev, "Error map pinconf_type %d\n", ret); goto free_config; } - p_config_value[i] =3D pinconf_to_config_argument(configs[i]); + p_config_value[cnt] =3D pinconf_to_config_argument(configs[i]); + cnt++; } =20 - ret =3D pinctrl_ops->settings_conf(pmx->ph, pin, PIN_TYPE, num_configs, + ret =3D pinctrl_ops->settings_conf(pmx->ph, pin, PIN_TYPE, cnt, p_config_type, p_config_value); if (ret) dev_err(pmx->dev, "Error parsing config %d\n", ret); --=20 2.51.0 From nobody Tue Apr 7 19:54:48 2026 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68AFE372B27 for ; Wed, 11 Mar 2026 19:39:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257952; cv=none; b=nIc5/UUOplghpOzBm3/HIac1QwPO8JJQmDN3VCJRdvXud4m+lJsvv7AbSsJk5s/rEUfIutfFqMQrlojlXLLUX8gHbRKjZLTNDFNAELc8MAoDR7RMfnq+8aT2sPJ/TdhaEZLtsK5c/RyfeeeP/+Q9VtZ0GfhggZv2KQsMUrWHSCo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257952; c=relaxed/simple; bh=uiuLKhkwbgJ5qG82TYs4zio4/Nc6RL2AdehoOVJmCbQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=j6ed12w+SImF27v08cnNwLpYtfy/oAInLw9MvMLLASTFeSmc+8dcI2wkv3C/q/gGwSd3pt8FgEhRt0rRFoC/q0EIYpmjWYm4Kmvjdd33HlBOLrOwO2EmqVgfC0p6eKmVnxb8ck/D/D6K4INFqFDePspF5zagkJQAWj3TrVvPTFU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=thfrsgzY; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="thfrsgzY" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-439cd6b09f8so198481f8f.3 for ; Wed, 11 Mar 2026 12:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773257946; x=1773862746; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=KMLfC50swTxVVqIck4nOrGTGoLiTGa8vSDXPzAV9bIU=; b=thfrsgzYc/juoBaMoXh5jvF8AxXbvSkyLZ2ShmODj25R7CD9u771avdk4bkRV0Vm8O jdMTX8v8G11j+L/7vzWoCgLPll91EmfxMyf/r7hOpudpSN+u2kARRX+SJizKPCxNBc3q gugIq6D9TYk8jjMhKFE4Q88fIX7e2j9xtp+O41HAMMh6ctn0px/a7wY5QqEOICRqD9zk Ay1/h+9AhQ3cKoxF603Twv8B4X9rUG3YeRDM6lmH28F9Kv+3239KppCkreCNH2ATFcPZ RNB9Hgf6sCBK3HwtyhCv8/o3HAJ3UqG8Fjs9kHBe9yY0qysXzA6ExSea2GgeD0ISW06P QGfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773257946; x=1773862746; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KMLfC50swTxVVqIck4nOrGTGoLiTGa8vSDXPzAV9bIU=; b=lg/HzzcIQ1Ybx+P/bDwkrR3v3IZmOQUrjRb8V4IZT8kuq6IzNtnBiHX8KWFpWHnjjN DQfq0z/oWvhhqtmd0OCUMOq8Y3bChF5xXYmkE2nwh3YDodvJeAJ9EINKBJXGbgw556kK tEOlHgT+zO7boC2ZSPWr3V4uB5Xci8EGfAsuc2hBsybuAvQivcdWQVfMOKRajB+YUpPf huK82vBnlbvGzPR8eWxzBzbxcHAJryBNK55MmSRvbMQgE5g/9bdG4SOQ/nDZIOjSRJvi ffr8UyfGUijRVFBg1tQbsBrFbuqeJwooCXQ7H9BoN3p0C03zf8KACDg0zuw+dBL5lkAJ HlZQ== X-Forwarded-Encrypted: i=1; AJvYcCVyi1hNqOFS3OinT9OAnK1pAZRs4Yd3UOuX4fOHEPwgg00wd/KISzJiQnKrknfOLXNPxQWbYcfA2kLLagQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzZs/LkBwgsFQYHKpZmLX6EM2xg4JsOjB9HJ5DA3eqp+Xhmh48L qV+dM3OV9/MI8fhKNSWxaBFGFHHjRmJrHH0oFI5vAmfbwVqeGWJcChcvLqGfqQf0BmU= X-Gm-Gg: ATEYQzwJ/tHlNs8buCuFBUu15HVb34Pb3YfKnwufND5G2RjZnADbYq0lgpREYFqPY4H DMsTUTxc8G8WrBLM6xc2O3eJqsqFrPa93f7HiG1MSRQtvQkMWxeyIlkNGovgdqIBBrH1Z9vymqv Q1UtwQUd3teYnsTljYcn+PqbvcIVK34zNLHBVFaluNEimUeOeauKAKDOQR3ISF7dCGoOsphpT4g /tSNh9uNcivxTQzv1OqdSlkxs9iGkp64z7tZLH0f0tvtvkh7rJM1hx5WPeAto5Q5GGxgBUeVU1G 6xNU16/1bEm/rpe5rSqIvzTkjDwDoLa0NCqypMcRuFvpHKhtdwVi/s4hdiuI6A/uOOC7kHvFjMr MfqkUDyJPul17RuJJwAlb7ATeyj6Kttfq8L0DT6DtghsYlpwWv5yCx5c23k37AZFv6JVES3ZBe6 FBUqG4H3oTh2dPQ+AsrAOHKBpntRfG X-Received: by 2002:a05:6000:1846:b0:437:6625:d0d7 with SMTP id ffacd0b85a97d-439f8438f5dmr7101833f8f.42.1773257946416; Wed, 11 Mar 2026 12:39:06 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe2273e8sm1655600f8f.33.2026.03.11.12.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 12:39:05 -0700 (PDT) Date: Wed, 11 Mar 2026 22:39:03 +0300 From: Dan Carpenter To: Sudeep Holla , AKASHI Takahiro Cc: Cristian Marussi , arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , linux-gpio@vger.kernel.org Subject: [PATCH v3 5/7] arm_scmi: pinctrl: allow PINCTRL_REQUEST to return EOPNOTSUPP Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The SCMI protocol specification says that the PINCTRL_REQUEST and PINCTRL_RELEASE commands are optional. So if the SCMI server returns -EOPNOTSUPP, then treat that as success and continue. Signed-off-by: Dan Carpenter Reviewed-by: Linus Walleij Reviewed-by: Sudeep Holla --- drivers/firmware/arm_scmi/pinctrl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/firmware/arm_scmi/pinctrl.c b/drivers/firmware/arm_scm= i/pinctrl.c index a020e23d7c49..42cb1aef1fe1 100644 --- a/drivers/firmware/arm_scmi/pinctrl.c +++ b/drivers/firmware/arm_scmi/pinctrl.c @@ -578,6 +578,8 @@ static int scmi_pinctrl_request_free(const struct scmi_= protocol_handle *ph, tx->flags =3D cpu_to_le32(type); =20 ret =3D ph->xops->do_xfer(ph, t); + if (ret =3D=3D -EOPNOTSUPP) + ret =3D 0; ph->xops->xfer_put(ph, t); =20 return ret; --=20 2.51.0 From nobody Tue Apr 7 19:54:48 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51F9A32AAB5 for ; Wed, 11 Mar 2026 19:39:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257966; cv=none; b=LdSSnMPdV5+BDz4sOMpaU+hpRGA9/2wBltJXkPz2cQEprFm3fHbTRIkuBPMXe4MPeMAEBLZEFu74R9xvOtM+9StXsOHb6/ANtqgu0xe3MLdAmtkQnGseHb3DF0xzgQg/wL45x1i6ASCtveBks/AUFi48kwtLVGU1NLP2/k6mQm0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257966; c=relaxed/simple; bh=qAqHd7WdBfIomObVD+/mACW3BUxf70VgmHF8fv4ZLTM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=N0TiYyTAEhUK/19IKYQKr4dqbo2fWTqAF+LNe0tgJmgOBm/3XfMHu3TIaU57pwYvfWMVhfGu3Fis+X1JqPgV2ZD1ee9zOe3NDkpjT8qxwB1Lhjn2AjqMdnZiaS5M1WNUmq5yAcoJvpWDLgOLWLtufvfTkpBp861mXE85nkb4XV0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=c6VBHg0u; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="c6VBHg0u" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-485409ab264so1908635e9.1 for ; Wed, 11 Mar 2026 12:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773257961; x=1773862761; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=LQkJ7hYeM6FobCrRfQAAST7LKz9aCrMza/cHqRkkyPA=; b=c6VBHg0uC3FervAp/thCt94ZiABO4509ZbUT+P0OaFeaaJ3At28Gy735RRTMLxwZh0 0Le6tyhrCkEhEMOAXmQyvzFGHfPbhsQIoT8GWsB5rbQILkjSi51lqeUQD20yFyI9y69g Dk6oYaVeSft7YXAUO6eTg8rvx3cb2XUpfLlmYnWHflwCIuEmIOmajBKJ2npjeEbwSLwK GHSlFwWuIdLJThYipmSD119GKvDE10wnOqZNU921skY0DQftDkSC2FKd+5oIOQ0dZYA1 XWaiI7ZkRAF6PT6MaXvGOSO64Rz9oNS4+iDCuv2K5fL4YGajLVh+ZrMbV+bN17KzP5CQ T1hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773257961; x=1773862761; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LQkJ7hYeM6FobCrRfQAAST7LKz9aCrMza/cHqRkkyPA=; b=HYs9eCXCCu+5FOjlYKMDln0sh8EfXeTZLPl2qrOI9wJ+MJ9r5fzYaks//4ejtWDT7H 6IFh9LaTVwzFfGWC8Yj1sxEM05UfuVqg39P6FQ5aZ0jNUE4WsB0fx5UleBGUbdatsy6P V5i+dAObEcxqhHA9ADzWrZEX4dkFKS5Cp9DKs3wLyIFQ2DyWto6ZsM6/QC1oLIcQ4eFM gnXL9EP7Z4HZYSixcsFWiscOclrxBFjVeiGHZuFw4nfxW/idA1TpidwssEXqmFbES09F libKrofVaRLYniqliyulHlL/RXiq+ZEazYfeBCpBuv0KdsSdup58JUkJ0eOr8KMUm/a1 Nnig== X-Forwarded-Encrypted: i=1; AJvYcCVD9yrf/q5bkGirzPbTJST7rgjNUf6XoEHaHLdoOSugK7IhPn6Tn8vre5bBQOPjVv/46sdEdb2e6wOtqv4=@vger.kernel.org X-Gm-Message-State: AOJu0YyfceA5eOwXtfHKLeNy7yH4mJmdYrd6f+5aZ0evAQBfTTFpCANl cwL1cvLuPWI4Xmb9v/KNUHfs0c/0bVyDIhRuEZNlKzTBKgCvlv12XXyI84a+MEdHyhA= X-Gm-Gg: ATEYQzxg2Qq6HxO7UTTYIwPkrfmn96XZBvCrxYctCsK2+ZFrBEa3mSdT/urngc4obv+ +Xh/vULIMNg9VCm7zRVdwzKgZwl+vslbjs2n5zlpwt0t1pa37qIRjtLYv+LoCkuokXIl2HQxUcI Ia6EeDLrKPfNUl5tgsHgOJPtmzlEBgIWLBPW/Gg75tX4CxbtqPd7FQm+HQ2wRg2yk8BgaOprHFx Jat2outqFp9N5ViouR/ZRp3ooSbGHhAXFtCGD9PI9/fD30L2MiasgVKvHBWCJDhBPn9ARBydqPE 0S1UCl5o+NoMM/isLE0KsumElzB+rsPJZbwXozXqAsaPmo5YkalboAUPAMixa0BPRFQb8R92Xqm UAAUQVHhjFnbej/nfF1eSUD2Bz6qXO0nhCsdLI9ATdh7uCSuUY4CAw11mOdCq3fKxGNowcvrTXK pKeukO53Mm1SgrVnupD70emxYaJWlV X-Received: by 2002:a05:600c:46cd:b0:485:3294:fff0 with SMTP id 5b1f17b1804b1-4854f5a2b77mr13943105e9.17.1773257961415; Wed, 11 Mar 2026 12:39:21 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4854a2d7de3sm27652245e9.3.2026.03.11.12.39.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 12:39:21 -0700 (PDT) Date: Wed, 11 Mar 2026 22:39:17 +0300 From: Dan Carpenter To: Linus Walleij , AKASHI Takahiro Cc: Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Dan Carpenter , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , arm-scmi@vger.kernel.org Subject: [PATCH v3 6/7] dt-bindings: gpio: Add bindings for pinctrl based generic gpio driver Message-ID: <58446889d781435424c46bac563483e603d7c0e9.1773150895.git.dan.carpenter@linaro.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: AKASHI Takahiro Add a dt binding for the gpio-by-pinctrl driver. The driver is used for doing GPIO over the SCMI pinctrl protocol. There are a few mandatory properties such as gpio-ranges and ngpios, but it's not mandatory to specify the pin-mux. Signed-off-by: AKASHI Takahiro Signed-off-by: Dan Carpenter Reviewed-by: Linus Walleij --- .../bindings/gpio/pin-control-gpio.yaml | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpio/pin-control-gpio= .yaml diff --git a/Documentation/devicetree/bindings/gpio/pin-control-gpio.yaml b= /Documentation/devicetree/bindings/gpio/pin-control-gpio.yaml new file mode 100644 index 000000000000..81c68579df6e --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/pin-control-gpio.yaml @@ -0,0 +1,70 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/pin-control-gpio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Pin control based generic GPIO controller + +description: + The pin control-based GPIO will facilitate a pin controller's ability + to drive electric lines high/low and other generic properties of a + pin controller to perform general-purpose one-bit binary I/O. + +maintainers: + - Dan Carpenter + +properties: + compatible: + const: scmi-pinctrl-gpio + + gpio-controller: true + + "#gpio-cells": + const: 2 + + gpio-ranges: true + + ngpios: true + +patternProperties: + "^.+-hog(-[0-9]+)?$": + type: object + + required: + - gpio-hog + +required: + - compatible + - gpio-controller + - "#gpio-cells" + - gpio-ranges + - ngpios + +additionalProperties: true + +examples: + - | + gpio1 { + compatible =3D "scmi-pinctrl-gpio"; + gpio-controller; + #gpio-cells =3D <2>; + ngpios =3D <10>; + gpio-ranges =3D <&scmi_pinctrl 0 8 4>, + <&scmi_pinctrl 4 12 1>, + <&scmi_pinctrl 5 15 1>, + <&scmi_pinctrl 6 17 4>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&i2c2_pins>; + }; + + gpio2 { + compatible =3D "scmi-pinctrl-gpio"; + gpio-controller; + #gpio-cells =3D <2>; + ngpios =3D <3>; + gpio-line-names =3D "gpio_5_17", "gpio_5_20", "gpio_5_22", "gpio_2= _1"; + gpio-ranges =3D <&scmi_pinctrl 0 30 4>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&keys_pins>; + }; --=20 2.51.0 From nobody Tue Apr 7 19:54:48 2026 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFBC134751A for ; Wed, 11 Mar 2026 19:39:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257973; cv=none; b=rMIRNaz8UhgEbe1keQI9q0Xt6ror+PEZOFDxLz43ewQXP6OeCWkxXZT0cCP2VJUPzTVPYMR54U74mkMp/1I1jq3e3gY+sa3WLk7inJOjjMKOjJCM2ZX7NY/EXRlZcmk7RuEafIBRP44F6AU6QXTlkz6W7yvpLaoHtW6cYjlZgoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773257973; c=relaxed/simple; bh=b0+EIOi8VZGnVfS2+VeQ8ek/Iuh35iblH8PEzYt72RI=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=qtjWZrTIvPwt//Q1X61MSh0otAV+McSS+zPL12sYdBhi5BpvsKTb2bTkhNSSxCsLogowEuyFqu9Eagu6GDyD8/Mk5Xx5qKsO5MLgTQuZ2ypDu+UjGAqLePEtIe50ZROVF29Z6NuldWu1TWPkSc7jA8AFjP7bH8MlQKykciS4ynU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=mQDgDSU1; arc=none smtp.client-ip=209.85.221.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="mQDgDSU1" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-439aa2f8ebaso147403f8f.2 for ; Wed, 11 Mar 2026 12:39:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773257968; x=1773862768; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=sctYsMoKQO849nQjqKlN3dvm2Uh2aK2/meOPVblHZeQ=; b=mQDgDSU1j7+4ILCSoXi0duEfpK0OukCQEU7RlfznQn4yjQuxhmasN5l5u0gZmp0GSm ALFNHhZRQpw5oO/pNkpq9VQgXZDlRwiDlMbcr/FQhRF5RUzrMUbUY8eL5KYPOTuRCros SCSjQT308+Zxr2SPTgxN5LNMyondlcIwYFKdA8UsX//LEFKwqIbSbeifs8+0y8dNdnzS qPJb9srYDsP/b7POSLqzRLz1qOu4OfmOmU3e9wFZlQd0hKcTEACYnVdCBkFABAMoyO6v 6bGV61Yk828eCtmTq0eu9o5aMNZOOSU2z0EYwDB0MdOomrwu9tab0cOSTDuLa8//ansV fdMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773257968; x=1773862768; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sctYsMoKQO849nQjqKlN3dvm2Uh2aK2/meOPVblHZeQ=; b=DWLkpNFBdylbyJTDktminNp63FOO9ojvosaI/e4cpofeI4p8Xe+w2gIXSqe176FmTV lXStAuGf0CZ45W1LqTISuAnCF1jXIAX3fvpzBujcm6t347SHQB9iOcyiMMvOM0HUxXJs K5IsrfgnlQtdkNsJpmkI1wup8VP4HzVWWN8vFdj2Y3//CuqlF3PTRBqczQdHIzLl0VNB WXdCJfKa0rlVdfnGh+PU2RhdR2W7WPFVP+okWlLvJYW7BfA9TNRdn3NA3okvsxQJNHas NHI8/FDJjM9v1l2gc97UzZm2L5r757ch5Lb4nvX7XHfoBGjAKEd55IAeWPZolzYmAQLe 5+uA== X-Forwarded-Encrypted: i=1; AJvYcCU/paB5sHPYn2rGuvYS0jAv6I+i7KHVQhcNgFcQdN2a7Q2pdtCRwZMLCRKM2jjQ9+A5qNeXfgHCZIXGVzA=@vger.kernel.org X-Gm-Message-State: AOJu0YxmAlGVpYRiMtV0Tu26ooDWse1WduX5Nus/bvLrzH7wkfRb1yC3 6h/6XxBhiF1JMMHlGtO2S9NXyy52GNt9HdnOsXnk+kZrEDxFEcb6n4w1IVqfRtG3xC8= X-Gm-Gg: ATEYQzw0fkuhFTAzDAz6sxnTcrHYCSWILav0hjZeDXo79tnRCk7I43hHlYOJaXcShE+ 89Tl8Zs1UfkvO6+h6YzXk/Vz20k2IClc0nc5r+Z+Fk4ff+mPJc3DBOZiAd66IXufMAomJd0U3ZA ktJymFyAgdpN8CPH/0LJ4r7/KDQLhaDz2H9O+F4r/Y7pudNKY0ay/MwwHa5e0uwnqo6EoAaQk4x HCP8M1gFN63aTA/DW+y8GQZNTvAsowK87eS6HshInFyQ0JJzh/8wWf6dbT/NJSj8xyB9Ef5Nozm v0vbieP3YckShIKGVkOtTLwE4vwU34MyWWHWpZT3aJ7foo5Sw4RUg9/Te0da+McaXc7XeYXfggs +flfQnnMRB9QV7hiQ8CqVusSDWCE75tDmIGeZIJ4uBBC9U1lvujTpZ2ETFlqHsUqtkcz5kpBtDw KVlHrYu7yRz0JxeMsY8kM1xMOtqfh7 X-Received: by 2002:a05:6000:2508:b0:439:ac8f:5da5 with SMTP id ffacd0b85a97d-439f81bdae2mr7697986f8f.8.1773257967835; Wed, 11 Mar 2026 12:39:27 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe19aec5sm1559967f8f.4.2026.03.11.12.39.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 12:39:27 -0700 (PDT) Date: Wed, 11 Mar 2026 22:39:24 +0300 From: Dan Carpenter To: Linus Walleij , AKASHI Takahiro Cc: Bartosz Golaszewski , linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , arm-scmi@vger.kernel.org Subject: [PATCH v3 7/7] gpio: add pinctrl based generic gpio driver Message-ID: <93920f541564bc4e6aaf0f2b6df2f5aca721d452.1773150895.git.dan.carpenter@linaro.org> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: AKASHI Takahiro The ARM SCMI pinctrl protocol allows GPIO access. Instead of creating a new SCMI gpio driver, this driver is a generic GPIO driver that uses standard pinctrl interfaces. Signed-off-by: AKASHI Takahiro Signed-off-by: Dan Carpenter Acked-by: Bartosz Golaszewski Reviewed-by: Linus Walleij --- drivers/gpio/Kconfig | 7 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-by-pinctrl.c | 124 +++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 drivers/gpio/gpio-by-pinctrl.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index b45fb799e36c..4c8d2589c412 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -246,6 +246,13 @@ config GPIO_BRCMSTB help Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs. =20 +config GPIO_BY_PINCTRL + tristate "GPIO support based on a pure pin control backend" + depends on GPIOLIB + help + Select this option to support GPIO devices based solely on pin + control. This is used to do GPIO over the ARM SCMI protocol. + config GPIO_CADENCE tristate "Cadence GPIO support" depends on OF_GPIO diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index c05f7d795c43..20d4a57afdaa 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -51,6 +51,7 @@ obj-$(CONFIG_GPIO_BD9571MWV) +=3D gpio-bd9571mwv.o obj-$(CONFIG_GPIO_BLZP1600) +=3D gpio-blzp1600.o obj-$(CONFIG_GPIO_BRCMSTB) +=3D gpio-brcmstb.o obj-$(CONFIG_GPIO_BT8XX) +=3D gpio-bt8xx.o +obj-$(CONFIG_GPIO_BY_PINCTRL) +=3D gpio-by-pinctrl.o obj-$(CONFIG_GPIO_CADENCE) +=3D gpio-cadence.o obj-$(CONFIG_GPIO_CGBC) +=3D gpio-cgbc.o obj-$(CONFIG_GPIO_CLPS711X) +=3D gpio-clps711x.o diff --git a/drivers/gpio/gpio-by-pinctrl.c b/drivers/gpio/gpio-by-pinctrl.c new file mode 100644 index 000000000000..c1fed14c9d01 --- /dev/null +++ b/drivers/gpio/gpio-by-pinctrl.c @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: GPL-2.0 +// +// Copyright (C) 2023 Linaro Inc. +// Author: AKASHI takahiro + +#include +#include +#include +#include +#include +#include +#include "gpiolib.h" + +struct pin_control_gpio_priv { + struct gpio_chip chip; +}; + +static int pin_control_gpio_get_direction(struct gpio_chip *gc, unsigned i= nt offset) +{ + unsigned long config; + bool in, out; + int ret; + + config =3D PIN_CONFIG_INPUT_ENABLE; + ret =3D pinctrl_gpio_get_config(gc, offset, &config); + if (ret) + return ret; + in =3D config; + + config =3D PIN_CONFIG_OUTPUT_ENABLE; + ret =3D pinctrl_gpio_get_config(gc, offset, &config); + if (ret) + return ret; + out =3D config; + + /* Consistency check - in theory both can be enabled! */ + if (in && !out) + return GPIO_LINE_DIRECTION_IN; + if (!in && out) + return GPIO_LINE_DIRECTION_OUT; + + return -EINVAL; +} + +static int pin_control_gpio_direction_output(struct gpio_chip *chip, + unsigned int offset, int val) +{ + return pinctrl_gpio_direction_output(chip, offset); +} + +static int pin_control_gpio_get(struct gpio_chip *chip, unsigned int offse= t) +{ + unsigned long config; + int ret; + + config =3D PIN_CONFIG_LEVEL; + ret =3D pinctrl_gpio_get_config(chip, offset, &config); + if (ret) + return ret; + + return !!config; +} + +static int pin_control_gpio_set(struct gpio_chip *chip, unsigned int offse= t, + int val) +{ + unsigned long config; + + config =3D PIN_CONF_PACKED(PIN_CONFIG_LEVEL, val); + return pinctrl_gpio_set_config(chip, offset, config); +} + +static int pin_control_gpio_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct pin_control_gpio_priv *priv; + struct gpio_chip *chip; + int ret; + + priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + chip =3D &priv->chip; + chip->label =3D dev_name(dev); + chip->parent =3D dev; + chip->base =3D -1; + + chip->request =3D gpiochip_generic_request; + chip->free =3D gpiochip_generic_free; + chip->get_direction =3D pin_control_gpio_get_direction; + chip->direction_input =3D pinctrl_gpio_direction_input; + chip->direction_output =3D pin_control_gpio_direction_output; + chip->get =3D pin_control_gpio_get; + chip->set =3D pin_control_gpio_set; + chip->set_config =3D gpiochip_generic_config; + + ret =3D devm_gpiochip_add_data(dev, chip, priv); + if (ret) + return ret; + + platform_set_drvdata(pdev, priv); + + return 0; +} + +static const struct of_device_id pin_control_gpio_match[] =3D { + { .compatible =3D "scmi-pinctrl-gpio" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, pin_control_gpio_match); + +static struct platform_driver pin_control_gpio_driver =3D { + .probe =3D pin_control_gpio_probe, + .driver =3D { + .name =3D "pin-control-gpio", + .of_match_table =3D pin_control_gpio_match, + }, +}; +module_platform_driver(pin_control_gpio_driver); + +MODULE_AUTHOR("AKASHI Takahiro "); +MODULE_DESCRIPTION("Pinctrl based GPIO driver"); +MODULE_LICENSE("GPL"); --=20 2.51.0