From nobody Sat Apr 4 03:04:27 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 8CC5131195A for ; Sat, 21 Mar 2026 10:13:27 +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=1774088009; cv=none; b=KU5yXiULRD0lbu6/Sg5pDRNlrICMiESnKEuXRQh9hyNfrcBzmdHgJ+LAeIqRX81f/b5rWg4p7kPxyU7DIbxfKKTHK1bBOoxgRJq64cmE8KCDPd5P9JPu0o01ov0tSE92G/iONP9sPUAwzIfqZq3xvR4cpgfaVpPcKW97QILyx+4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088009; c=relaxed/simple; bh=blBgOkHUL9k48ZZpbciZVcEdUpyrvvGFO5J2mFS0q94=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=BxKGCnEzU6ClHMyxRDgzKNyw6nUxkwtb1+zacK4PYibGLdEIZQ49jumNUeGdOM3u31NDuY97IcqwRmbTBORxOoznnM0U6yTZYtWywoDQYnVl2v9ybLAGvuc7Bjdp/RJdROuyJ7BTYRRJlmHrlQOZ3g6oeQ8LeY7oPNUY8PA0PN4= 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=mDddJuj5; 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="mDddJuj5" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-48702d51cd0so9460545e9.2 for ; Sat, 21 Mar 2026 03:13:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774088006; x=1774692806; 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=z23TFsp1titUKTemBieWM6vBHqTe1wrTtIq9tf05puI=; b=mDddJuj5Rqjnk+4PiSRcwtD93OY7+LFUy9+kkV6Y6Lny6MzUS6F1JEVuUrHsXIPm+S Xx85M4iacozyYagQz7j3SQDrTYm0a43AUc1Qs4flkHIhaJv5VLXJi6ciSdfdjrHcTKeK Akixu0BPS5NEAnP2bfHk3ctVPR8xT2RiLPIz7pDAbadNmRsX4JwE0hXENbc9gf21lE1N 2mmTKzyOFpGAv0w2DI1UGW3vJ+b8i6PgX0V5TMz+KvaHNGqdwARBv87PUHeB098EGOfu 4ajv/y5Ff0KdKhoMc1WXr6YzB0mvpdmIQaPnwlCL4nus2hbSokSGHc+Jzluk29A7ZCgi J2BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774088006; x=1774692806; 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=z23TFsp1titUKTemBieWM6vBHqTe1wrTtIq9tf05puI=; b=JbgqGjOUcZ1LMTSqLhoGothoE5cpMTgyFxOanLhiE2bDQAUxwBwRXWhwpn+pYIu/nX B1xIuNEVSG1vk6tlPWGxrXjhcylLDTYZ6kcG1itE7WLjbM5QCI5VsIE8hBi07dGx1FFn wdWXCsVodntLTt11oatfyVcnQJzxq40fy63xEyQU2N4TF2zdbbdZKfAUmHJ9VSatgiql agK4IfLGp+FTNPcblJqTDAmmzjVSJUFID2itHK4MRLSmVp7Xxr8OCbNl3L4YvoaK7onG I6qJ2AP/cDhIvftE2/Jj/2VuV14c9HQ8f8BfNLwn8APWAXVS1+bh/fmnrXdSUsMPtPpQ r5rw== X-Forwarded-Encrypted: i=1; AJvYcCXAcLo13N7IqyVteK6CLM5w1CD5/tEftLgZO7JPpCodrW4ih3ePoIdGZpEJfSfeEMDnMcdDCYPkL3jdxok=@vger.kernel.org X-Gm-Message-State: AOJu0YxZEUsjjgfVNpDK5g6Cj9EGpEygSJDOfWSpTSGWv4H5YTHk46aQ Ld+nI2thZHv8DSuqSX0YybQpN1qFGINDTvQ5/fB7BDDqXgdb8xqJhqYgjmH+PllNzUh1rdbdKW7 aGWxq X-Gm-Gg: ATEYQzyFcKnWo3arksBffaCO8e2zUQuT5T63YxJzgt0cWuiG6PkZBdopEmIs2HKenqS Guy9WlZoIHwCGIAbIqS1V6K5pEp4TOkL+irvyvsQ3r2E69tYkbD+7V80DHZq56TrzMmAKtxJNld Dxkn7RgQD+32GJF3oYNxkMBWcuHlQQLduBHArLgO750cgqkf2u0oYYnd494xHHTmUcbFUy373Vm TdCa878p50GBu9u8QGXUHeAdeEuifQ5+HnIXeGK5uEbLYDE+LqhRphvGzFYjYwgt3AY5uCXwwpU DCglLPDvswus44f1QxfT0hW4YfS/F38qj0m3r1rQ38cqIwHuJQ2NKcuSpiMHD9vCL3zt2zMfzT1 V7IzTUzqjoQu/WwxqzoX+pVv+Uh5Fvf8nTY574HxqgYPCrwdZVbcnbBKtBcain04cbmNcJgzsak OspVEdQ5VBcxmp7S1gdPKH1OuH48gI X-Received: by 2002:a05:600c:4fc9:b0:485:2ce2:4c8a with SMTP id 5b1f17b1804b1-486fede737dmr87229225e9.1.1774088005338; Sat, 21 Mar 2026 03:13:25 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48705135631sm31669695e9.15.2026.03.21.03.13.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 03:13:24 -0700 (PDT) Date: Sat, 21 Mar 2026 13:13:22 +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, Vincent Guittot , Khaled Ali Ahmed , Michal Simek Subject: [PATCH v5 1/7] pinctrl: introduce pinctrl_gpio_get_config() 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" 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 Reviewed-by: Andy Shevchenko --- v5: No change v4: Fix kernel-doc (Andy). Add r-b tags v3: Forward port drivers/pinctrl/core.c | 31 +++++++++++++++++++++++++++++++ include/linux/pinctrl/consumer.h | 9 +++++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index 2edc9bdad183..c471f3fbd035 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,36 @@ 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 + * Return: 0 on success, negative errno otherwise + */ +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 Sat Apr 4 03:04:27 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 770E3244694 for ; Sat, 21 Mar 2026 10:13:37 +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=1774088018; cv=none; b=lKIZjALR4GVp0Tc5zU+p4CpZQfJ5ERas3cEpxrs22Wl7nDXfA7YotywkWy+sIqKNw8GcyihOWoQlqVv4CGZaEjU25CWU65cGgLzukYVF81MHex9LeG5DzSZkfhrMRv8hKF4hDIQw9TBKS3H1Gm/9wX5VErEB65xnIxJ3qY+N0RI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088018; c=relaxed/simple; bh=1uqFyv8sNbH4yrRykxbOsgxCTnxvIECLXyk/dbgpM28=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=mApSnBjiPm6BB3PVPbMlt1a4wJPc7ZjtBbzs7jqC09I2ERu5rbBYzq4rkKHRof/A8lQedoxnuTfD1nK5dDqCURJBoGRZt+a0pzvgQ0j+1wsH6gngft/MBp6ve7Nq1fl1HXKU043DsxB0z4leg2cIWEB+KvnObndtlU+tU8McXCk= 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=wJOEuiSS; 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="wJOEuiSS" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-43b4fd681c2so2234604f8f.3 for ; Sat, 21 Mar 2026 03:13:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774088016; x=1774692816; 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=KBfrdJJUZs1LM9q6ioHXhMJzsujMA5jyt7cbTuG7Xhg=; b=wJOEuiSSowi0Q7rGHF2IV5nTSoGDk2ru12R/y58eR6M90/bxDs45Ddj/xTuHZM3i1V LjFfz3MPP5up7iXE7GMv64gx3T0RaaenFq8wG9CD7uZ1CLjA/QV2lQnMprAj/SLgEhqY YsncC5z86CYktnl/6zOus2Dn66antTwjGc1hy4hI8AAQiayVVNOQseS3DjVnHCFQmYrg vfgXgxYXwNQnBN2b71PMgQCQgAgLhumfPKPBa5niTO6o9QKDSTO7LQ231vOWLEMITwFB a9FpjAso7jGSE1RLjGLSftVZ3UlrrexXO6flZz0vfMkp4xjE1mmSsRYQbQhRlQFlDpUx WUYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774088016; x=1774692816; 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=KBfrdJJUZs1LM9q6ioHXhMJzsujMA5jyt7cbTuG7Xhg=; b=q+0P/PEPr3YLx9b0v42gUn29E5vBX9yHfGXk8GCSWVmX2QtT8U4dJbI05W8uJZAXL7 tBLAlcFCK8r1txM/cwJaHdRUgx9H2sF8Ua13nSuwTH/PcNctHo7q82BQmjawTZSVv7KQ DxP8SqYyIXpY+y2X7MxqlZsm2pbP9k7vBBKXJThmQTa3j/JqFyksqy5SmeE0v1lc3bSV /SRN1xZENOWqbYuqMOGaRYGwZU//hLDXRK9XpkXGiy3M/zV0ycYkg/SclZobTAjqrrQI NUwSh63VlX1fgLxvRAhmsEjATRtEdzCJa86DYVkEvb5Q+N94Xn3xn+WgSw62640rktVe HYSA== X-Forwarded-Encrypted: i=1; AJvYcCXkY8fESZE4gqjxIYTSZ+I5K7ElA9aRjuTTqQgcQ6BsdfRXstk75hR9KDKmeZ8r3zvSK5VSfgRViGJrKjo=@vger.kernel.org X-Gm-Message-State: AOJu0YxKiIh36esIn+r2hqFHhZCN+CWi++JKnORCuKjiA1bg8epby4lk vSFfo2JPmBliVUx/Q9N8RfPLjIyQpH3R/TcgNknXL95Bdf27zkXAOXBwtkocI0cs5no= X-Gm-Gg: ATEYQzzPdQUXXaOfDpUxptm9JF++3ZCobGaZBmGx/h+MNJdzYR4K0jmYUrKxDpu9V5X jeCGiDK6gVxldlbgkYjILXlrr0X4cBIGx69sB4X5yk/Y1Rd4npjBQ5MxYvQrBMO44uZuwLL2z/e bBjwOqDY2IIvjxlabwK3Xbws//m2AQq520D+0vfS1JNU/pwMHLJQneRka4R8Btd2rCmst2WlG1Z GQBi7AVS2Zc/igMBm2cNwYU4f8G8NYQSVit714CQVZF58cgnflqjE9O8TaFOHGvOlgu3+dcSgEJ 7e7ElFfbc9XsxX86SC2Ix5OOARv+ekmw9DwhJjoyHmoEUrbrK+Ri+js+8qJb6OdOSjAbiTEowub pjwkW2x/jN/AYvlLl9jbCUH0Vlzo8ar1Ia7J56qEBfwn3ZltMWRMLSpPBRDrRWLOdf3dsGNDX4p /49pIMx3jX02HT9Sc8xFk10MWGxkWjez3feuZSF1M= X-Received: by 2002:a05:600c:c16e:b0:485:4eaf:eb53 with SMTP id 5b1f17b1804b1-486fee0f975mr77117095e9.19.1774088015816; Sat, 21 Mar 2026 03:13:35 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-487004fee41sm47800325e9.3.2026.03.21.03.13.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 03:13:35 -0700 (PDT) Date: Sat, 21 Mar 2026 13:13:32 +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 , Vincent Guittot , Khaled Ali Ahmed , Michal Simek Subject: [PATCH v5 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 Reviewed-by: Linus Walleij Acked-by: Sudeep Holla --- v5: no change v4: add r-b tags v3: new patch 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 Sat Apr 4 03:04:27 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 CD5F82D97B7 for ; Sat, 21 Mar 2026 10:13:43 +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=1774088025; cv=none; b=hezJp+fU7RObwwu0aKY2hpSYZd8Bz9JizngGsWqVAkkObZnDJyJS1MqZf60Qk/OnEWcqfdtCXrkkAMvsfmkYLOTba+V828WNXDj0QNu19c2WBn2OlOT34t2XB2Ndb9uG/Cg0uJkXM877E+50Z7N1EnxmEk95wVefFckgp76rv2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088025; c=relaxed/simple; bh=kgwtkoVu4mddoqE/ts7AvsOCdb0qDdCgFAlVSNZPAZw=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=tx+WcBg8RU3XWs2t6ktHQn+SSl3BQ+cgFfznax579ZMTsngvpnJ5Escll/JmNvWJhYFthHIma4e7v5FjmdywApL0FoRFGjyZYRyqLPKnpD9YqQmRIBu8cLtLVfIY3AjhX0CxYj1ARxer2KucY9YZpwQyJwMFULr8HI90ZkDYdIc= 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=uAMsPja2; 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="uAMsPja2" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-439cd6b0aedso1769059f8f.1 for ; Sat, 21 Mar 2026 03:13:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774088022; x=1774692822; 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=tQNlAf6vdnJiKr80lkdqTbyIfJO8B2GTTG5cZRsC5qE=; b=uAMsPja2xf3K/nXD8oWuXKsENoEhRo/SdTkIaE2NoQtr3EpH3ha7m4MtAxGxHOleNa 2o3bjx10oHxDl981cMAn+NTWX339foadIhVjhC7wRnGzN0pF1DYT+i1rtiiMf0TfRMbU ofLZzBeWt9JgtQ3H3w6RAYJpCQNDOCvyJe2SzI5Zpwi8dnM3/lNnoHLJnBbvZqOyXW6P +QG17zdJM8DqUyAvZvH+o9M1xasDTllCx2iFhP0eWhbwML+3YPWhjKE/gpByqLHrcUY9 goMXja/M7Z1iHb0pCIbIaVXLX/aBnuVPJwPojsUnRw2tDrNqwfqMMFt25Mx+8Rc0L7gv 3xqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774088022; x=1774692822; 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=tQNlAf6vdnJiKr80lkdqTbyIfJO8B2GTTG5cZRsC5qE=; b=DUb3pYITPgwyFFBeuzQKbK+Ot2580yTlkKRN0bJp/m7o2bUU1yCWDP6cQqiDRYAAKC Z2E7o7JNo8Jg8EPXfKrpq665LCVcLQZaQ9yCHHCHkt6hjA9ecPSYPVRk15TYXJCaHHs5 ltQJMMsmv9D4ojSnYNW6cr+J5aPSijtaD7t8jEICIzK+C2Yyuh27a7yZKgY//nwjDa+N 9BfmT20ocon2mUmtD1HwbwboD2+4sQhouC7TwHa4kcjFnPO49Mvl8U5lP0nGfdi2kwB8 GobYRsNkXWXsN/kLRdvV/tSCLHQH3uh9daYc3QLNYOrrDRRDg7R84zfo0/jj5MUSCNUK phaw== X-Forwarded-Encrypted: i=1; AJvYcCXN8NbUpmpnBYd4L6KqXDOCZQGnQ4M8Xuqg1MOdewRUG1p0xv3IjvqH/9W0ayN0ayqKAzQ11OdgfcBMgOo=@vger.kernel.org X-Gm-Message-State: AOJu0Yym5Ils0nxlWQ1GtyZJExTDizKKmWJ571NgE4QIH9uwXqDW3zu4 ZzYgn/DsvtTroH6arXUki+9Lz7EHDHJxXV2ExoRqymdSBSLYFKtviOrqdo80YYyG8yEqoOTdREA VWzqO X-Gm-Gg: ATEYQzy57S9Nl8RhjioolpnSn3yBQOx1blhADOf+vZzVT8sXgfIcBUzMKRkslTKV9+m 2xa60VDuqtzZ/vK0Sz4NY4ksCqhIUGdNL4ak5cVoiy7iYvPPiYp5Ey11fzoHnRHoMuJOr/39lw2 d4muef42us5sfAo/CeTYUgNgJ0H8CSRxrTbLFl3HhNRSQH6CsOWFpf/gQNUQIvqEvvoQbtnMw5m ffDTw9wiQZ/saiPRU1VSb2ygqGGSggP5R1npWJhCHkjZ4n+VOUxSgiyF7CTG7owZdYs55pDWPPk 2f2diIuFpQyXtAWXzVI4tYONTMeHK3j4Isp8rlk24AwqFLo5nnwjqFF3Idzjqy8iO/OV57Eqq8R BNCXyzAns6Ui6BozCNfgeCjtG62owFgSN1x7YdZ66uX3Yi6YPijexEaxhXKs1aiNNQEBMi39Tgf wb4o8v8ECWTFChDstHsxlMA2FTP6B8dYP5UpGlEKI= X-Received: by 2002:a05:6000:420c:b0:43b:460a:b13 with SMTP id ffacd0b85a97d-43b64281506mr9452939f8f.44.1774088022148; Sat, 21 Mar 2026 03:13:42 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b64703c27sm13473541f8f.18.2026.03.21.03.13.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 03:13:41 -0700 (PDT) Date: Sat, 21 Mar 2026 13:13:38 +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 , Vincent Guittot , Khaled Ali Ahmed , Michal Simek Subject: [PATCH v5 3/7] pinctrl: scmi: Delete PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS support Message-ID: <955306193a128db29f62a4a3261a1d67561834a8.1774087290.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" 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 --- Sorry, Peng Fang, I really thought that if I put CC: Peng Fan in the patch it would CC you but up to now it hasn't! I should have noticed that. v5: fix subystem prefix v4: add r-b tags v3: new patch 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 Sat Apr 4 03:04:27 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 61A702DE6FF for ; Sat, 21 Mar 2026 10:13:52 +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=1774088033; cv=none; b=lsnJgG8IXqJy4IYuzUv2xC9rEPwg1QGXW9+mG5APp5fXAFKaCoqtqZXjQg4wt7E3px7K1P4nqHtkeBarKAnmutrb6cH0Ul5FxjiAaiKA094J7N+I100a+G8PJr/VroP8NWec1eXDGMINGAbuf1ZKmHu8iFcy05chiToTUEe/0lw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088033; c=relaxed/simple; bh=9TT6fPPrCVPWyWOTkQtvqNji+N8nh0GAaHIQ5G61F/8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=dvNeGmAtCC3iHKZmfj8iJIl81lFdDPswFazJFEINOpTuMR8h3li6vRdO1DfnJGCrqUAHztOut8Ldqk5/GjKTqhNbvTRLglopvq1IBN2Bay2Ncgkg5cAMTARTIMniEgNPzgzk9hJLAc8WJBmWyCmOvgtED7wApv85AHnzJ8PoXkY= 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=j1xOTkMz; 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="j1xOTkMz" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-486b9675d36so20598635e9.0 for ; Sat, 21 Mar 2026 03:13:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774088031; x=1774692831; 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=5nvE2qXP7SXrFq3OejPF5HK1aF/+SsVNdOeY2ld3e5k=; b=j1xOTkMzdobbHtAYCpJ1yICxLtvfy4yrGWBvdKF5KUhsjwvMQeCrXTrTjM4JXCWJdI SEHzXxPR89YsmeP1yBeuR9eLRHkiPVJd2HdG93JAaWv8PE6hCEc877mwEFoDKwJEYpjn 6arMh81gx9bFxw/wr3V46mMeWdh6cSFcJosDAWjVm1Mr5MaGB2uS0GNTXfx8uNGrrMVl zMc+2r3WG8Vt9gI3SLiW0w8S9AKleqTMC14f/8MVpdVQ+b6mWDyXHLhI3xkN9slMKQOE VvoYj5x2Jdox2vTq1liHvZ9HxdJVPibb7i46vhZ0ZyyoBck8L1uUKdZZWPd83JG2wdvX +pBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774088031; x=1774692831; 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=5nvE2qXP7SXrFq3OejPF5HK1aF/+SsVNdOeY2ld3e5k=; b=UtnCPYp49hNhzbnwoucO7IGlxZAD3LpjE7d7EzkeMp1jLAMdqwlskFKxvJqbZWwZuN o7iGX+MmTXcZpbpM8wrAHlzUc6Z5vV+mNYtJmO91NRDRogXkYtT13MA12luae9naJ6F+ QXWmjnldDh9elyqcFMQDdYcn6FHDN+nVPlfFOXAa7vHbb6uwbTS8RONQHaOfTXrYIIWw FTeYhhX1RUEywPIJZpoLmBe2qcn0aOjoHdH59H8Oh/08klxp+q1eC2vqHRj2H5F8B07Q Pew0cLENuguQD9KAfVj3Fpcx/ZldKFCKWfcJobx/3e31fjNQRI6/P3EXSwrSqRMC5+9W 8bGw== X-Forwarded-Encrypted: i=1; AJvYcCVBWQ0iCR5HgRcVWelWiAjhE1XEnt2FI7z//khRVI4DvR/IZGC4bxbGai9P78fElyL9NaVd27My6sX9gpk=@vger.kernel.org X-Gm-Message-State: AOJu0YxPCRB0kfmx0wmMyc1kJxmyVshAXVTc4qU5CkseS4f0E3bv7et3 L9u2qn5xMF7SGZEZY2ga8YH/17UMnLkRqZZsuQOsgAFgQYD4/DHRBXN9pvFz3XJHWX4= X-Gm-Gg: ATEYQzxTunACuX+2OTB+ySfjLfZq4Y2W6PcEj5TTvmeJCt+s2/Q6K+mk3i+KYiDOAF4 dJov2O5cFdnN08ckvG/hQj3PcDKkREyyt2r0UJOurY0tWkFKtHMhhvu6crZmoTxwSKs/10C/ogg o9BfIlHiZBprqZEeRkFLnKtP6aWt2DuJvBFEr2NVX/64RiGpST1ICyKqZXpW1VYA7Z0KVP6t67e 6PreHY2nEuApzjcSJgkK9EIP3+uVb+CVDd7ZAJHM5cLutvk+x8Q7fyHkQ88kEp9rqCIdJ9CVPSG kyOJu/pXrDU2IdTPSRKkoZMW04ZVqhhJ3dDqXToCFdd5zndifeUY6IzJmnVz+2sMANiAsW3vVY5 Oe4NZYPYtsCgWklyuVsBqzA3wlf1EYDVs5iS3Rp1jODLl0URXj+zskE2o1cesvMoFja7xW5CkLI 7fxxXQ6h88dcbAbN8ic94THBk5sxSY X-Received: by 2002:a05:600c:4e8e:b0:483:c35d:3659 with SMTP id 5b1f17b1804b1-486fee04a48mr82485135e9.18.1774088030748; Sat, 21 Mar 2026 03:13:50 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486fe8159dcsm47760825e9.0.2026.03.21.03.13.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 03:13:50 -0700 (PDT) Date: Sat, 21 Mar 2026 13:13:47 +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 , Vincent Guittot , Khaled Ali Ahmed , Michal Simek Subject: [PATCH v5 4/7] pinctrl: scmi: ignore PIN_CONFIG_PERSIST_STATE Message-ID: <6087ce1233834f554de6f1941ff5bc85ffa059a0.1774087290.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" 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 --- v5: fix subsystem prefix v4: Add r-b tags v3: No change 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 Sat Apr 4 03:04:27 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.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 D12F22FD66D for ; Sat, 21 Mar 2026 10:13:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088038; cv=none; b=fGiCYdWvS2GDesOTRhw7N94nwCQr3HH1d/S6ofqdXc0kDekKFGGBc+iRAxX+Snc4sq+Sg0RLOisPnjV0GsbIUhi8q2kEx96JzPX86M1TYKL4ih5HXXv1OCdaVOTT53fXXPGvUcVJmrRSkcUKlJKocbZkqsoxb9ydAsR0Hu7AyFw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088038; c=relaxed/simple; bh=3wfx7eM8ipMNZPFdJ2mLCQZdHaH/tw9KlE7kv5yt5JA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=ao2kAzrzlcILpz6iDnoaJbawqDlXkVxRWFuwCNA3bPUVxebqUnhVobHsFPsqBAOYpwSX5O6b2sgEX2n0oaQ+HoykaaaKI0VpMfjTuXPsqkHnlI51exy9XNirNMhxqYHMd5LY8EVF16EeB8ef3eEkKuXzvXJ3T45N89mX2c8BjTs= 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=cBjHPibn; arc=none smtp.client-ip=209.85.128.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="cBjHPibn" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-486b96760easo30124935e9.2 for ; Sat, 21 Mar 2026 03:13:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774088035; x=1774692835; 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=BHDWTBbKB3qdUDZBmFuIiqFXJQpeVZ0CqRE3ngdwtZw=; b=cBjHPibn53eUy/fqhYtBVjufcdubC0yrmL+DI1H+3ruhRfwHkQy1ghIY3p0RU7YGcW iVDVWEY7bf78YG/XiWgwvsi6ilHPsiMnKMCP+7cADX6Lq/ElUbF91Gfx7zOdcvVOS8WC YJaeq76sL3N9jLn1NwimXfJvNYTMqlXTzqFBEuEozjVgqJdOF2Pbf0u+iOU4kJlT2GY3 /LJPHV4xJfBaxB47aWUi9qKtkmFWefvvWEfGJiaEdtclC739RMeWXCrSFq3AnUeevHhE DMlJHkRfZqBEmkG7QwhWSOUdsaA4QML3VN8Z+3y39I2OC4tdiqzMTX3ZonJoICbynD9C lQAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774088035; x=1774692835; 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=BHDWTBbKB3qdUDZBmFuIiqFXJQpeVZ0CqRE3ngdwtZw=; b=TgevXc43a0CbC5syWtE3+KTAErHIiYPOBn3jRYeghZOW62RugDApnskPZb3lv5DAVn jR2A5yhB99B40xbjtfINKwmfGYqoaYnWaYqt7O/lhxs+s1JS8JJLhct1Tw13moSMpIiK drIykTks4VYjboLdNET3tAADUbUE5I1abWN8N3nbju/36KfB9IqGSWEdQXtmC0+aJhvl FZWE3T57JJfcMrvwcYWjYvKdlez/t8gQQ0Ok3s6187Rn5hILuW25kCulrNYFTmVPqJCD prQmE0MOq4NsW97mM6UC0no1Q48QC45cCcZd/eO0RBd0yI4By15uYLC8QBf5AWGc9xkT vbkw== X-Forwarded-Encrypted: i=1; AJvYcCUWzZNtUfmtsxdhvOT6pnK6qflIIx78DqeY9SFBkBzkzEwlnwx1npV1NAWH5yC1Zyf8FknNTggRom6MOV0=@vger.kernel.org X-Gm-Message-State: AOJu0YxO/jZouMq5yX+p0Ty3eEL47w2luzYjrhhiWwFfdq8cj5CAah9q nB1JviFTGgfdnEBxyPTsTVix7kuhGE9Wp7oPG01uAJ01eVHEAK+0f3vKKWz8dBZHrLg= X-Gm-Gg: ATEYQzxPnJk/s9VtJEQ5ILwHHaOeLJqKF26mG8JRsvoe9LfaosonlU61QSaw6z4WDIM o6x9gy1xpTg6sjzk0g1wa+LphcXi4Jleo4deAv9ofDTCnW7BrUH0dc2Hu2oWt2E915750v4gjA4 bcVLj6o+Trw2rNyS4T75ImjqauzppHYbHeRJnvuwnkqbE5HpLtJmLcLsJn0N3KcB6T69pzMSV6E fAAcpRFr3Go7t7MOQedC+lkO82g64o/N3iblrZPBN2Md1/ehK+d7ZKRUJgIU84ggd6wt25Z7SbD sx+uHzBp0Lg/hKlAESBPEq3gubeWfQJDCRVzARBLSUoz/YwQXA0iz1KjwnS2T4DWTtrXNEizZXz ULRckgQxVkNtvLlogsOBeGyrgnmw5ZtTib5RCrMR3oHZPYTpi0c/75qksCMIZIz2UJL12y9s4zh /Wj6U7ZNkHWwdw1F5xxckw859iZkvL X-Received: by 2002:a05:600c:524e:b0:486:f634:ef3 with SMTP id 5b1f17b1804b1-486ff01efcdmr83170465e9.32.1774088035226; Sat, 21 Mar 2026 03:13:55 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48704f14441sm8311465e9.9.2026.03.21.03.13.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 03:13:54 -0700 (PDT) Date: Sat, 21 Mar 2026 13:13:52 +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, Vincent Guittot , Khaled Ali Ahmed , Michal Simek Subject: [PATCH v5 5/7] firmware: arm_scmi: Allow PINCTRL_REQUEST to return EOPNOTSUPP Message-ID: <96965696f3df12a7e64ee78191a727f7707cf96e.1774087290.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" 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 --- v5: fix subsytem prefix v4: add r-b tags v3: new patch 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 Sat Apr 4 03:04:27 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 EF7EB2DE6FF for ; Sat, 21 Mar 2026 10:14:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088043; cv=none; b=PapyfEr4Ytk5k9mfq8jkrC9PUWOCe9+eCJdQnO7JYJiOec9FJHAhPGuTsLH3mEqIVj4xZJIFPubu5t3EnwJKrSEtfyXiMsVaqcQ006MfF4JQQlZGsqJTbAxNQaZRnUq1csPGeiE6dZEwUtqRf5BLo231uXQCBFAfYhm0yBhWCAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088043; c=relaxed/simple; bh=frihfCmQzIanWsGaTNFRfE2QMRNSkUDCsJaH143VVzc=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Xa8x7gxL2ZdlR5QO4L61mupUCUSHhjpbtAgK9yCMoixusOHcPf5D576WR/uGVi7LJt0Y45nbYPXw2cwdVRKF/RblIzPsBNXW8xj5ysAjYz5ox+6+U61tjSrkJYviNY0e0WpP6dH9IOfgCDB5U62JaP2WtMCLcQ7/s08c25BjNwI= 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=OmTFv8Va; arc=none smtp.client-ip=209.85.128.46 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="OmTFv8Va" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-486507134e4so32496165e9.0 for ; Sat, 21 Mar 2026 03:14:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774088040; x=1774692840; 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=ZyCrfc/ZXBBtX/vytpgp8YE9CQadwN05k6xP+vhF1Ho=; b=OmTFv8Vacd91aiP9aLkE2H7zWi+9qXAYNKaK8G0g/PbPXlsixlITFI5Je3mUMd5MPE Z37qPzByarp5IVh3ZerXA3FY7eIzH8URSKKKJibBNoNk1Bw5kDyeGiwz8xCBE/yVjSEh PNlYFr5iK1vjuIM4KkW6oEQw/IjPZkNG/0Nc+W6/4KhN4Qimb09KQ3s8X9koMyTGUhri GM7xgiQlGuOMf1hoRVXHx1/f7fnp5zmBWwZj3d5fzRbyykW2eSEB1qWR3sGMtmonI0Hf EMSWsvBcro7gblXV0VADq5k0F81/Qhmi6fl6vkTkmW/R22kl5ISS+Q73Fc2KaolHMhXU lH8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774088040; x=1774692840; 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=ZyCrfc/ZXBBtX/vytpgp8YE9CQadwN05k6xP+vhF1Ho=; b=hUzYMD03Q/LnYhX6CgcLSGew87GeYf2idk0CqO8oxVzwjseiMXUZ8YR8UXoKnALeSF LJWjClPc8vTtaZgPyWEGiLMD4e21Zo4DexkpybXYIpzr2MEuAKRciyowcSh+0MuBTzE/ ER46IustiNtveTln7uA7Wqapdwk8VxNLW3SISQl9vJTJ8dr7R8xYmVrypOMlBGcNW0Jz xt1/osWviiEPlj59PVbkCU4uSW9Y6PXSgKdG2hA0CPhjVENp+Q4J69Az/GM0ltB8hW7H VAadr2TSVInFesZKdr0PSOMNqGtwmrMRSxiOhKWTp9Y4HrwK95YQ568D1FUgLuKdJWGT CRkA== X-Forwarded-Encrypted: i=1; AJvYcCXRjl9lJnMlK38jjs7gBfNe3lcx6nGMezZDuhJRuSQeJt/FYgzkKJ9lrRV0o81yRp2O7n+rXY8HAtn516g=@vger.kernel.org X-Gm-Message-State: AOJu0YyJWmIsJaw/5j3MCETV0DtYAiLsn6ftCDuBiy3PGx6ZCfXX0jES c5G/UQPm3BoB3rHwOa5bLftEYdtKDl0FONTbzDN/42M8ldekYlf2yfCUAnxPEIkNP+c= X-Gm-Gg: ATEYQzzzrax8dvTBdyZoSbiMZotd2sWZTtIztY47MaoNGaJhAVO8BoZQaTI+UADbLqv zaLbCmY2VmMsXibUidRs7B/p1I3aAzmgvqd1FiBbEM0BQSjk83USvId/SQ5TcvmpzF3ZkmwGKh4 Pc0vpApUvehiTqPegmlgZJPQG1S9fbnZ4+2cQehwb6X/NdNtHlEGiqEj5HZnTMnRY/BDV/SHmOE ZK3NRoDXkEPBX89tlNFw0/B/MWye40TyvLI34g1Wb6HrdNowrkacEyLlIn0lQTcEBFbcQIiOHa9 7hgbynRTi3pEb/0Iq25xhSS94cH7dzGs+2a+d8Xki2hC20tRiw8owchFAcpfRfI94q/i77okED1 DSiTetYHfnsUkfD9V8DoswteE8ZwNFQgufsXBXXx3H0/uigUaR6ypMFcz+/RoExlq51ET4V27Z4 zzAnhkq76GBHHVsybKky+zB6Gop4If X-Received: by 2002:a05:600c:1f0e:b0:486:5f71:5829 with SMTP id 5b1f17b1804b1-486fedab740mr84674065e9.5.1774088040301; Sat, 21 Mar 2026 03:14:00 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b6470393fsm14161545f8f.17.2026.03.21.03.13.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 03:13:59 -0700 (PDT) Date: Sat, 21 Mar 2026 13:13:57 +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, Vincent Guittot , Khaled Ali Ahmed , Michal Simek Subject: [PATCH v5 6/7] gpio: dt-bindings: Add bindings for pinctrl based generic gpio driver Message-ID: <047c75a48d76a0f11f9fcd156ace3b5fdaab10ed.1774087290.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 Traditionally, firmware will provide a GPIO interface or a pin control interface. However, the SCMI protocol provides a generic pin control interface and the GPIO support is built on top of that using the normal pin control interfaces. Potentially other firmware will adopt a similar generic approach in the future. Document how to configure the GPIO device. Signed-off-by: AKASHI Takahiro Signed-off-by: Dan Carpenter Reviewed-by: Linus Walleij Reviewed-by: Krzysztof Kozlowski --- v5: Fix subsystem prefix Re-word the commit message I removed all references to the driver. I also removed the reference to pin muxing because that's described in the pin control spec file. Fix 3 vs 4 typo in the example. v4: Changed additionalProperties: true to false. Add gpio-line-names. Deleted one example. Add r-b tags v3: Forward port and update .../bindings/gpio/pin-control-gpio.yaml | 59 +++++++++++++++++++ 1 file changed, 59 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..9d20b5f23cdc --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/pin-control-gpio.yaml @@ -0,0 +1,59 @@ +# 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-line-names: true + + gpio-ranges: true + + ngpios: true + +patternProperties: + "^.+-hog(-[0-9]+)?$": + type: object + + required: + - gpio-hog + +required: + - compatible + - gpio-controller + - "#gpio-cells" + - gpio-ranges + - ngpios + +additionalProperties: false + +examples: + - | + gpio { + compatible =3D "scmi-pinctrl-gpio"; + gpio-controller; + #gpio-cells =3D <2>; + ngpios =3D <4>; + 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 Sat Apr 4 03:04:27 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 7BE742E889C for ; Sat, 21 Mar 2026 10:14:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088054; cv=none; b=UpTXJ2E+sdZkadDis+WCTCRj8cGh7BoPWH0WTfysQ7738vLNPXTJk1/aOPAwyOo54XxfWfzU7kd2z/S01zS4Nv1ZzBj84wcfGpiNRfs2cVdi87pKpn/PhuTluujzlB6nX/OY595X/b77v9MdteRapZxPnTVnAudkc/E9eXrQp1w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774088054; c=relaxed/simple; bh=wY6WUJysSNDVSdiuttZZAjpu/Kme0Jnq6xQ0HwcjrAE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=np4Ku7TVBbSfJc8QWRFcal2TGUGkLDrSHdpZHKVopmxpfsdkRW/WMSTxNqJEt8ECEWpk6CkDDlaAHHvHNsL975fNa2A4PGku1chnICLXZ0c6yTOFeK83F0D83TZRU3BHXViCeSOxGNzsDhFYyqkGGFL3klQzMMSx+GiCBoZrZaU= 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=Md0kCWEX; arc=none smtp.client-ip=209.85.128.54 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="Md0kCWEX" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-48700b1ba53so11168135e9.1 for ; Sat, 21 Mar 2026 03:14:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1774088050; x=1774692850; 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=FIJ0ORdOnYrgZlpE3wQ5WhQb4mR1i2tid5DR6xBBUpk=; b=Md0kCWEX/AHi7Z5qa74DyS0r7t117Qiv5iHsVXDEbtk5cJF8wViUtuRc2WV2tFKHzm YNMn0Hh2rBNPLF1NAqBxH3QXzxmyTUXkdc5DmSkhUXbwewjrBWsWqwjx9zSi3hgqU+c5 18IIEyzyYUgWJEzRZhdcyDefqIgHiufTmvN0CUdBKBpEjSZEtRTM44qWs8sMXOVJLtg9 AszIo9TqVmHCGGqSIg9bp+g0qwitcOH7+Jjmz8ubrrsk6iiTjpCwbdw3FVagFwadJKwO 1rEleZxpGLWzba9med1+fYcIu2O/a1oRBf3+kpsLcS+AhN9eLNV0Z462ucI78FCQHwkW LPhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774088050; x=1774692850; 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=FIJ0ORdOnYrgZlpE3wQ5WhQb4mR1i2tid5DR6xBBUpk=; b=sJGiWoaXHszV1aurXAhHUlYUQ6w7J58YvYDWlA6bhjWXm5vIwn6AME/dPmbqNDWMvW ubg5hfbjcIs68XXaqdCrDJoATlGHiiIk/+ssartzD1jUNYf20WNhqpho96aIVkiOvP30 BOtj7hZps7nf1k9IzCKGNQR+470kUwW9SE+5NP+DCQ7J5/h/YR3UNJOj2fwoGDvXxstp RnUkVUPZlLGWCd22oeBXzm834WYEK7mOZvo3TXkK66w9G1GD/rYzQ17bpOALWLY6jr+Q GuWM0rjRI2LR0itDIjgQ218plqKZDq9NSUGRXUlpjGkqSmrmzfk9TvJPXXZjP7IgzTbr dkpw== X-Forwarded-Encrypted: i=1; AJvYcCWfEpdbWuoc9QQvXREhYQmU1sNGfMxRMEON9SdWVE1/e1EvRFYy5i4dtvRL2JLV4aOIcm62/OzDqjzffp4=@vger.kernel.org X-Gm-Message-State: AOJu0YyH9mSxDWa4rdLCkhRbqOJOCuiMnY0CXus92EqAKXcTS84OuSeQ YNWqNy9105hTfPBhmgXmVfRjXyeBaKvJP+S0g2y4/wiPHUb4VRNjghxUqmNnJgTQC48= X-Gm-Gg: ATEYQzzLF90N5oei96hHMT8yqwsR7TjUXuukd1eKSsDgjkwhi7kskN75sRqUIXWzkdl 9hxPKIrj2OtOuDPkK1vEqA7cNnENfzA8KTG5FtIid0Et98FcSWx5WXglaqWVcj4fxJivloOW41m LHC3nsJwtmwx3JOwl0X47HAbcLUEBVzwXVPz/bJlrozgxmNDfHVUKPpqocK0kKmRonIboqFyOtz /lnxFOx3XhqPcGWVcHW5vhEWDiTEezF/IUrogh6o5A/98/vn1GT3OTzZXFgHkUqLEB/W4vBioho RZZFHp/bb1+rq39SW0Aq14MVKnZ3l6rB/i6vNxdkboM2QP/dkEsEXiCa3DDm7wkCHJ7YsLuMtPm ntdO4WFUvQ5s7JruthKsr659AQjVul4raXY4aPNi+MlPFHn7QXruugJkXYENBVLG6aSzwClVKOM YQoBstYUEs3njSeaxXqYDonPCs3eDY X-Received: by 2002:a05:600c:3549:b0:485:3fe6:21f5 with SMTP id 5b1f17b1804b1-486fedb5928mr82796725e9.10.1774088049928; Sat, 21 Mar 2026 03:14:09 -0700 (PDT) Received: from localhost ([196.207.164.177]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486fe6d923fsm205276045e9.1.2026.03.21.03.14.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 03:14:09 -0700 (PDT) Date: Sat, 21 Mar 2026 13:14:06 +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, Vincent Guittot , Khaled Ali Ahmed , Michal Simek Subject: [PATCH v5 7/7] gpio: gpio-by-pinctrl: add pinctrl based generic GPIO driver Message-ID: <4aabafcd30c1e5549dde11d6c2fe5f3f9976bce8.1774087290.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 Reviewed-by: Linus Walleij Acked-by: Bartosz Golaszewski --- v5: Clean up based on Andy's feedback: Update Kconfig entry Update Copyright date Fix includes Get rid of unused private data Simplify pin_control_gpio_get_direction() v4: Add r-b tags v3: Forward port and update drivers/gpio/Kconfig | 13 +++++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-by-pinctrl.c | 101 +++++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 drivers/gpio/gpio-by-pinctrl.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index b45fb799e36c..c631ecb01e07 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -246,6 +246,19 @@ 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 + Support for generic GPIO handling based on top of pin control. + Traditionally, firmware creates a GPIO interface or a pin + controller interface and we have a driver to support it. But + in SCMI, the pin control interface is generic and we can + create a simple GPIO device based on the pin control interface + without doing anything custom. + + This driver 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..4661c4df8e38 --- /dev/null +++ b/drivers/gpio/gpio-by-pinctrl.c @@ -0,0 +1,101 @@ +// SPDX-License-Identifier: GPL-2.0 +// +// Copyright (C) 2026 Linaro Inc. +// Author: AKASHI takahiro + +#include +#include +#include +#include +#include +#include +#include + +#include "gpiolib.h" + +static int pin_control_gpio_get_direction(struct gpio_chip *gc, unsigned i= nt offset) +{ + unsigned long config; + int ret; + + config =3D PIN_CONFIG_OUTPUT_ENABLE; + ret =3D pinctrl_gpio_get_config(gc, offset, &config); + if (ret) + return ret; + if (config) + return GPIO_LINE_DIRECTION_OUT; + + return GPIO_LINE_DIRECTION_IN; +} + +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 gpio_chip *chip; + + chip =3D devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL); + if (!chip) + return -ENOMEM; + + 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; + + return devm_gpiochip_add_data(dev, chip, NULL); +} + +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