From nobody Wed Oct 8 04:05:58 2025 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.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 AAF6C23183A for ; Wed, 2 Jul 2025 08:45:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445943; cv=none; b=bt4/oE46iYOraXnSZZgO3JpTntHj+Ts9h9LvG0IlCFqs2e3VFF2KRCboT+Io/GUf6DsZ7ZiI53oVYozRAq35Dm7CA+GIWyfvUEXJDf8dPGfm77bZ8VSumQXgHwpDiVbwHTXS2VhthJ2JnWRhhevNaDTAu0Zhf2Yu22ELmUDsgoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445943; c=relaxed/simple; bh=WAFN3XMGJl1YSCRSRQ49asmYULSwnRZTgEOnMEgM9kI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=f2e//srxAAQ+E3uFw1pDvbpFy9Z3/jlUfqNp7LlVCOjACbQpkpp6V+k/LZnRQgAhoJLYhe4w9xt4ywnxMEj6asDU1jvQ0AJKdxW8TXmR6d4PWHPr0qugHg/gjOu2ZbsZ7SzLMvxxhrUjOSpVPpqtY0gQcBjjlpvz8ThCLNEtrR0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=KJ6O/cCq; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="KJ6O/cCq" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-3a4ef2c2ef3so3613886f8f.2 for ; Wed, 02 Jul 2025 01:45:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1751445940; x=1752050740; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=eT32Fo8JzyMKt5wvkWJtbuCECu+UVVsWJUiz4fSfT0s=; b=KJ6O/cCqtMNNgYnMau6uatdkqTeTWbE8bTWNz5Brmfc6hRBNzO+SjV6dAeKTYez01j 7mBSFqJ+NJhAETDqoss3Sv+B0VNfvSY2ZkAJ84Chn39wZNR/wvk1k6oA+xUuDzA3ZwdS +SugGRThsDZgyRCG91tkxFP1GkXr8SBmWzMtfGX8YzN6E64KDSf12ryWPeYnCjuKRDbp URcFegRLkieClV2yAlO1dO598IarfBECdwZmSpY2rghC5aLmfWJdc4r7es4pretvm5B2 4FBBh4bgrhPIzlpvj9SGELdQYvYPkWUvM+g50x8P3drhGvTdGxexPkJDGOl/1K0+pDZC N2/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751445940; x=1752050740; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eT32Fo8JzyMKt5wvkWJtbuCECu+UVVsWJUiz4fSfT0s=; b=G8uaCty69nCt1fRWLgEQlHdnuofBHOY+Pul1edA+YEuyqjBnP9AkSmwSGrOhCVt02Y xlggf9c8S34xwAjrGzKjsWJ5gXMfmF0MApaeWhi2pAHVDD71rpxHs68b28YGtV1gfIco ZSIdTf4zPmZHxqG6b/Il4EUKdsv4YFe4k1KQLj9J5a09zogzqjFFc+t4lwWzU47kQeIE JsRKkOeRfpZ46VuWW0eUnSzff+Ul/aWK+zJiZJLn/WzC1si8j+gfL52YLCh/RX7HsQAo JrLF2CJTYn5XAxXevyxPqljgn9kcPkTBR7uNYXDC0sY/uGx+cy8aheApiakFqW+T8Qgs 9TXA== X-Forwarded-Encrypted: i=1; AJvYcCW1FbfUnpojt8Ykl8I1VAUhByzA/pNH7FyhTJozoPJ2YJJ5X0kq2pyTseVsm8SuMLVcQ5m7DIbLbzlgznU=@vger.kernel.org X-Gm-Message-State: AOJu0YxXmdEfBKgphVjM9UWDOQIgOCH9gwBU4JvM5l/YdTd45r8Zg1FA J65NlNw5UfWihXW5zvDDe3b3jF/NqY4RH2DzEdfx2/wWLQNzrThN4wGZ0pZzVfWF7hk= X-Gm-Gg: ASbGncuAY6KzAhbyhP865KasrT+xPGvV7IOUVQbgMiVr54wuDoheCJVofAFUmg1y5zP KzBYbYjFipnryJ0RMTtFD+cnYVmb+b/y8jz1hBzLpvjLXey790VKkTCShj9by0l0U1bbK4qoZBz nXbTqV32nV79UlCLlC6bmHI2Hef3YfYPXwgdJhdQS8I4HzWYUynvPNoEzeDmrXgTn1hRC4WR8Pm VNfo4nj0WbmmsajZoHynDvopk6DzFyaUoAwd944cgOTwf6w9BdHJu4knHfT7rWB/oA9ZabxXrIt MguZqqcyhU7qUh2+kcLzrz27gpaSSbSMyM2vljSEYj5SDi9DyVAmlw== X-Google-Smtp-Source: AGHT+IHG3Yj+dH/J1LSuzIb/KvrqdHiuMNAs7+JHPwiQz+8EIfOrd3c/qJCkVCObtKeDO0K6/uKVYQ== X-Received: by 2002:a05:6000:4611:b0:3a6:ec1d:1cba with SMTP id ffacd0b85a97d-3b1fea90838mr1441696f8f.20.1751445939834; Wed, 02 Jul 2025 01:45:39 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8827:d0e:25e:834a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a892e52a26sm15620571f8f.51.2025.07.02.01.45.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 01:45:38 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 02 Jul 2025 10:45:31 +0200 Subject: [PATCH RFC 1/5] pinctrl: allow to mark pin functions as requestable GPIOs Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250702-pinctrl-gpio-pinfuncs-v1-1-ed2bd0f9468d@linaro.org> References: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> In-Reply-To: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> To: Linus Walleij , Bjorn Andersson , Konrad Dybcio , Alexey Klimov Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5275; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=VoXODpXI27tHlO4yOhmbyOjvm5AV1TRNRVTTPs+jIns=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBoZPGvlSUBKMn73XM8CBhUX3vLu3W2QtZGA8zPI hpUN2TYdDSJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaGTxrwAKCRARpy6gFHHX cpnZEACWs8czQlfIRRQH1G6v7fzPiWMAdQ+g29fdQS2NJufJm3dWG3YIcKTFaAo2i4981K7JDy5 WRwLdGrY/OuAjE7s6/YRi8hT5klrMWD6R9Mzc2LSg368EqxUlTYZkXFcOT6XPuzlHmy/TLAq8HF jokOjYQTEfECNshM+Lxl1Q0UZdBhpvISVJJjTgx/oJ2i9owI/CRhm55V+u3Z8n4ox3qOoVN31XY +MgAQo0kGIRwHt90Ua4Yz66WxcU86Wh4iITMx42EFi68HaHsAZf5ernKb88suNf029SDMCWA44F RJqUxqfqFD/Rv3JZSqUbAbJTZIhwN62c1C/kXx6JFMVBfiqmJtgRW8BlNQ0+iwICAou8lbHmnVX mxPG4T/fURdaG+sum2aLEDBdDcK1oGVViRzNJQWJ7IA+9wAGDz8dCG2cR18L4zvGXjowqliXgrY O4xFA/GFC3t0u84BONgayXP5+uFhimQs+6MkP7QBujDykZNYR9aDb+3bDgrp9j4yJDyJf/9CHoN 14ZbxJJCvW5YgOnTtBd519HkYpw6htYmJtPGpSgnlInDJD5C+lF6HmM5oMVRbY9dq9bsBSNR7+D 3+XkpGCoNeHhZ/HGuLz+g8HKkqIHWvIlg+8WtT+GIKasj0xhlCqVwGz9LWCnhUHFxYEHS+tv+y6 zyy62yylszHnA3w== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski The name of the pin function has no real meaning to pinctrl core and is there only for human readability of device properties. Some pins are muxed as GPIOs but for "strict" pinmuxers it's impossible to request them as GPIOs if they're bound to a devide - even if their function name explicitly says "gpio". Add a new field to struct pinfunction that allows to pass additional flags to pinctrl core. While we could go with a boolean "is_gpio" field, a flags field is more future-proof. If the PINFUNCTION_FLAG_GPIO is set for a given function, the pin muxed to it can be requested as GPIO even on strict pin controllers. Add a new callback to struct pinmux_ops - function_is_gpio() - that allows pinmux core to inspect a function and see if it's a GPIO one. Signed-off-by: Bartosz Golaszewski --- drivers/pinctrl/pinmux.c | 17 +++++++++++++++-- include/linux/pinctrl/pinctrl.h | 14 ++++++++++++++ include/linux/pinctrl/pinmux.h | 2 ++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c index 0743190da59e819d1c72c1ed1ece72f206d60d65..49855e6c49616d70bf9c805fc7c= 11ef41284dc52 100644 --- a/drivers/pinctrl/pinmux.c +++ b/drivers/pinctrl/pinmux.c @@ -89,13 +89,19 @@ bool pinmux_can_be_used_for_gpio(struct pinctrl_dev *pc= tldev, unsigned int pin) { struct pin_desc *desc =3D pin_desc_get(pctldev, pin); const struct pinmux_ops *ops =3D pctldev->desc->pmxops; + const struct pinctrl_setting_mux *mux_setting =3D desc->mux_setting; + bool func_is_gpio =3D false; =20 /* Can't inspect pin, assume it can be used */ if (!desc || !ops) return true; =20 guard(mutex)(&desc->mux_lock); - if (ops->strict && desc->mux_usecount) + if (ops->function_is_gpio && mux_setting) + func_is_gpio =3D ops->function_is_gpio(pctldev, + mux_setting->func); + + if (ops->strict && desc->mux_usecount && !func_is_gpio) return false; =20 return !(ops->strict && !!desc->gpio_owner); @@ -116,7 +122,9 @@ static int pin_request(struct pinctrl_dev *pctldev, { struct pin_desc *desc; const struct pinmux_ops *ops =3D pctldev->desc->pmxops; + const struct pinctrl_setting_mux *mux_setting; int status =3D -EINVAL; + bool func_is_gpio =3D false; =20 desc =3D pin_desc_get(pctldev, pin); if (desc =3D=3D NULL) { @@ -126,11 +134,16 @@ static int pin_request(struct pinctrl_dev *pctldev, goto out; } =20 + mux_setting =3D desc->mux_setting; + dev_dbg(pctldev->dev, "request pin %d (%s) for %s\n", pin, desc->name, owner); =20 scoped_guard(mutex, &desc->mux_lock) { - if ((!gpio_range || ops->strict) && + if (ops->function_is_gpio && mux_setting) + func_is_gpio =3D ops->function_is_gpio(pctldev, + mux_setting->func); + if ((!gpio_range || ops->strict) && !func_is_gpio && desc->mux_usecount && strcmp(desc->mux_owner, owner)) { dev_err(pctldev->dev, "pin %s already requested by %s; cannot claim for %s\n", diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctr= l.h index d138e18156452e008f24ca06358fcab45135632f..1a8084e2940537f8f0862761d3e= 47c56c8783193 100644 --- a/include/linux/pinctrl/pinctrl.h +++ b/include/linux/pinctrl/pinctrl.h @@ -11,6 +11,7 @@ #ifndef __LINUX_PINCTRL_PINCTRL_H #define __LINUX_PINCTRL_PINCTRL_H =20 +#include #include =20 struct device; @@ -206,16 +207,20 @@ extern int pinctrl_get_group_pins(struct pinctrl_dev = *pctldev, const char *pin_group, const unsigned int **pins, unsigned int *num_pins); =20 +#define PINFUNCTION_FLAG_GPIO BIT(0) + /** * struct pinfunction - Description about a function * @name: Name of the function * @groups: An array of groups for this function * @ngroups: Number of groups in @groups + * @flags: Additional pin function flags */ struct pinfunction { const char *name; const char * const *groups; size_t ngroups; + unsigned long flags; }; =20 /* Convenience macro to define a single named pinfunction */ @@ -226,6 +231,15 @@ struct pinfunction { .ngroups =3D (_ngroups), \ } =20 +/* Same as PINCTRL_PINFUNCTION() but for the GPIO category of functions */ +#define PINCTRL_GPIO_PINFUNCTION(_name, _groups, _ngroups) \ +(struct pinfunction) { \ + .name =3D (_name), \ + .groups =3D (_groups), \ + .ngroups =3D (_ngroups), \ + .flags =3D PINFUNCTION_FLAG_GPIO, \ + } + #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_PINCTRL) extern struct pinctrl_dev *of_pinctrl_get(struct device_node *np); #else diff --git a/include/linux/pinctrl/pinmux.h b/include/linux/pinctrl/pinmux.h index d6f7b58d6ad0cce421aad80463529c9ccc65d68e..6db6c3e1ccc2249d4b4204e6fc1= 9bf7b4397cc81 100644 --- a/include/linux/pinctrl/pinmux.h +++ b/include/linux/pinctrl/pinmux.h @@ -66,6 +66,8 @@ struct pinmux_ops { unsigned int selector, const char * const **groups, unsigned int *num_groups); + bool (*function_is_gpio) (struct pinctrl_dev *pctldev, + unsigned int selector); int (*set_mux) (struct pinctrl_dev *pctldev, unsigned int func_selector, unsigned int group_selector); int (*gpio_request_enable) (struct pinctrl_dev *pctldev, --=20 2.48.1 From nobody Wed Oct 8 04:05:58 2025 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (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 2B0EA1FC0E3 for ; Wed, 2 Jul 2025 08:45:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445944; cv=none; b=Q4NkpThPsNHXBHOcU5pE9X1nrlEnLFb6OrbL5bH+6QPG2udSRJ3NZ/IJs1RR4oQ2H2S+rDHJaQzeI6XWoBgqNtSXMLVvDmKoGcKxOlB1J7xbWdwr89T3YD7Gxjh+qEYeynY6bimZd971s+ZPM3ItYnJzXj+LSswgZGmGzj8xoy8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445944; c=relaxed/simple; bh=n+b5nx1+JBjRozO+Cx/7ZN17j5HdvRNm5alXDhUL0xk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Mr5fVdNopLse4f7BO/TpIm/t78vWSx7qTblAJLjX0SeULPhTQ2RMol5VxavcbXJxgBO9OkyU4MwmC1TklZq57dsB2ewLWeQQ/OcWH3ggFWjQfdstxqiR6OimuA5xElbSCfXjvT4U1EVfOVKirng3N4TfSizr0sdkD5q+14gJLRo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=0hGIwQoF; arc=none smtp.client-ip=209.85.221.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="0hGIwQoF" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-3a522224582so3427456f8f.3 for ; Wed, 02 Jul 2025 01:45:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1751445941; x=1752050741; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Rs08bQcW40TM9Af/OuJiqaYgiV9Dgu9agE6s4LzHkTg=; b=0hGIwQoFp0w6Ue0ZHe5xQXd48TcojqTSOkskIt3bXaWyMKpuoLU0DNYSrqYBWafcti P3nej8IOBUp4KNP0tbrK8UYull/YCkbUw0J/Ne4T7rFmhKEvrw+0DnfO8fJFATUylEMx R5wJJmyCW+NuG9ikKfNtRGErNoKCFW1FdAb9BPnxUl8XEdpxfsRCs4l3dlchulFwrOle LHvIxjGoFKlOl0k1RFKGdIU656l6nClODs8Uyq+x/O21MF/IeRUtmVyNdXThNXl/RfMO TS/VadoMMdcg+cLwUEU0P6nhxGy7jQo0Cyx2TEfJ41XHy42YxPTn49P6gCIIIFRgdWff 7SVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751445941; x=1752050741; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Rs08bQcW40TM9Af/OuJiqaYgiV9Dgu9agE6s4LzHkTg=; b=PV3KkG2q7s6xssuotJgNjTRtahPB2gwAjR3FA77pfKfnsOBit9lAFARR4MSBMpQPrp t1SsUXhWh+pxH3KrgoTYd6pFiRPJN3JTorv+NwEXLUGKOLOcEfvaa1Zywmj4A/gocU77 K2/KoGOhD1BHVCd1y1cGHsNL+NHx3iRe5ZrLxuKM3g48TfTIE5ZMz8+h9VkUjhU2zEVB k3bDEt27WjviUvKj3iS3NVPwkEbC95D+rki3smqPxD9o5y/QB0pxRRw0L/WZAyynCPAM EOpriCryikeTrpkXvY/DSX0tVQZAp5jlB++voaJKkqTmIe3zfiGkyG4O71uGJzF13NMv BPFA== X-Forwarded-Encrypted: i=1; AJvYcCWI9uTby5TLTzfvnpw/1G+kAM/dz1r8JJwa0acuHMy5cjqBiP868aUowbhVNCfOCpRPZQWxodtwEjibK8c=@vger.kernel.org X-Gm-Message-State: AOJu0YzRUVuBr/Y7Q8ztR2qyivBkcw/+b5+PMVBGf/MKIQBMk8hYlHcx Mfubu7FCZso3GF5I5FKQNanDkTd+mEKYyW114gYV8DOZ7HOXxVE4MwdLIC4T4xoax4Q= X-Gm-Gg: ASbGnctqk71UzuBSoMs4nK+F8H/AdM5ByqVxKOwpWlDCK+aX7EJlacqzaPwzK4kWvLp RVHD3u5zPg+ltTYX9sqOKijwxYX9q+2ZvLDmAvEUuNGLv2I/0BSNaSnx2tpujbJSJgxkbxcsae3 Y7KZl9ji10W8iH+h9OBXV4lgv/3xkntkm3MmCiXiUCU3Ru8Jm1IW3DIPPntHU35Iivi2RtpnBrf q4cC6r43DhrsCoQJizulPbCDwKLotW/CsdF+J7DimbZcevtt5cCaWfaAJ2pYNCqpEItexhCGl1w mMfcyyFFlq3S2DliV9Ic4oAPu03E5HfdN8K3ciaKZZyZUc2AhQ6gGLbU26wfZN64 X-Google-Smtp-Source: AGHT+IG+UV/n5OZw7RJOlbQwrxSyVzLF9p/WpSZZqGHUIf1KCNRm5aaw0CKCQBbVNSpk4hyMerVxVg== X-Received: by 2002:a5d:6f07:0:b0:3a9:16d5:cacc with SMTP id ffacd0b85a97d-3b20110b0e4mr1271063f8f.49.1751445941121; Wed, 02 Jul 2025 01:45:41 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8827:d0e:25e:834a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a892e52a26sm15620571f8f.51.2025.07.02.01.45.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 01:45:40 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 02 Jul 2025 10:45:32 +0200 Subject: [PATCH RFC 2/5] pinctrl: qcom: add infrastructure for marking pin functions as GPIOs Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250702-pinctrl-gpio-pinfuncs-v1-2-ed2bd0f9468d@linaro.org> References: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> In-Reply-To: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> To: Linus Walleij , Bjorn Andersson , Konrad Dybcio , Alexey Klimov Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2096; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=9NUCa1lPWQXFimM/gZhuG/PHTdiwXUxqEFQxJKSZ4qc=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBoZPGw/1evvC9XaNzHd0bTGA1ZL5jNdMm16uM57 uhp3OBVhaCJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaGTxsAAKCRARpy6gFHHX ctpDD/4jR0dxT2vLFaLcVbgsBjwZSyPAlBL0VqLbumb33iDCPHFBGgEHpnOLo/kPYzjEmS6Ha5r 2wCYGVcP+mJp1QzAEJAIc67kYOl+OAaJixSPgeLPPZqfUAOma0MgI5x1IAWy3t0YUi+4tlSyG2X M78VMn1csnH2JrsrV/CIwbjqKGLSGEY3kviy2U/5Pc5TvvYgQedWU1wO5M2c6xH2c2XoRmGBfwC 2n3L5bE6GzvxcxY2kaZEnqWWhRk3RBfG2Rl5Qbdxjol5dN6qeWHsX6DJUNdOoanBfHqFh0tZfW6 j8wZ1NalsCIUZEWzcYtVYOf0b8JxuV9BEXP5Mn2JGGajb9ezZGxyzI0AcsQV2S+5sUFdi6nswcs l+QYoLgwJOVhN5AdGa76gIhZR766OnlGP6bHTTuJJYZsHjp2kxPZt+TyHLv/8BYS/4luhrDYtoz I7wAj7q8GlVYmypOWvlfGryzrIvtWK7UlfbxIHJ6bYQPsfPgdFe/53PoyiDL4jd+L2WclYgIk9y O1tFfSke1zhsV+8kXUMhvtMjugBSY8pdcXSQRkjw4acjidwQvAEoUL7w+pijTeY6zS3yKwf5V5y +3Jj21W5q12tBuKJ1qGKJNWfkNxxhjmpCVo1n5oXie1oZAEs3XbNefRhafMjSuNq8MmiH9crMXX kXlyXZNCRfJ02xw== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Add a helper macro that wraps PINCTRL_GPIO_PINFUNCTION() for pinctrl-msm pin functions and implement the .function_is_gpio() callback. Signed-off-by: Bartosz Golaszewski --- drivers/pinctrl/qcom/pinctrl-msm.c | 9 +++++++++ drivers/pinctrl/qcom/pinctrl-msm.h | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinc= trl-msm.c index f713c80d7f3eda06de027cd539e8decd4412876a..bb1e5aca058fc28c3cc823876c8= fe7880d66b6fa 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c @@ -286,10 +286,19 @@ static int msm_pinmux_request_gpio(struct pinctrl_dev= *pctldev, return msm_pinmux_set_mux(pctldev, g->funcs[pctrl->soc->gpio_func], offse= t); } =20 +static bool msm_pinmux_function_is_gpio(struct pinctrl_dev *pctldev, + unsigned int selector) +{ + struct msm_pinctrl *pctrl =3D pinctrl_dev_get_drvdata(pctldev); + + return (pctrl->soc->functions[selector].flags & PINFUNCTION_FLAG_GPIO); +} + static const struct pinmux_ops msm_pinmux_ops =3D { .request =3D msm_pinmux_request, .get_functions_count =3D msm_get_functions_count, .get_function_name =3D msm_get_function_name, + .function_is_gpio =3D msm_pinmux_function_is_gpio, .get_function_groups =3D msm_get_function_groups, .gpio_request_enable =3D msm_pinmux_request_gpio, .set_mux =3D msm_pinmux_set_mux, diff --git a/drivers/pinctrl/qcom/pinctrl-msm.h b/drivers/pinctrl/qcom/pinc= trl-msm.h index d7dc0947bb161868c8f433dc2536719b8afc8bd8..4625fa5320a95a4d24e3a0c98a2= 49e4f163dd4c7 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.h +++ b/drivers/pinctrl/qcom/pinctrl-msm.h @@ -29,6 +29,11 @@ struct pinctrl_pin_desc; fname##_groups, \ ARRAY_SIZE(fname##_groups)) =20 +#define MSM_GPIO_PIN_FUNCTION(fname) \ + [msm_mux_##fname] =3D PINCTRL_GPIO_PINFUNCTION(#fname, \ + fname##_groups, \ + ARRAY_SIZE(fname##_groups)) + #define QCA_PIN_FUNCTION(fname) \ [qca_mux_##fname] =3D PINCTRL_PINFUNCTION(#fname, \ fname##_groups, \ --=20 2.48.1 From nobody Wed Oct 8 04:05:58 2025 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (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 943CD158DAC for ; Wed, 2 Jul 2025 08:45:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445945; cv=none; b=U3OAcd0XS7YYfOowxnghnF+ymrWaGTFMUXzHLXwb/f22sjzs1ZKHljpFS09Ku9Bi/0nK0A8PgZ+aXzS6z9Xv72sA7DUE4YF+7WSJ9WhovKGgv3JmxTJiavfk27BOtQlQIqxcilq/Vf/0fwqh2KBWzJ9EP1KwfdrpHs+cRmZkOs8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445945; c=relaxed/simple; bh=4eNoEGYPEAvMXGMHyppT2sA734wCqZlMj9KGAuScq7c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UNA7SZnMjKB1dmnUwrpwIRABtbR4Z8y7hd8sgluV8ERdZHaHCKCnCIc5dpQdIVgYVIvyiNay2N6JrR00M3WDuHTRV9rKWPQWVSzmjrGzzcQPeCDPZL4NJmnRO3K/EB3Y41cMLef6K40ARUF7zSiuaAabd9un4NtZjCHkpLRpK78= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=XSAmOdkb; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="XSAmOdkb" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3a6d1369d4eso3608006f8f.2 for ; Wed, 02 Jul 2025 01:45:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1751445942; x=1752050742; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6hyBpvkXpsdyLCbyc77Y+t4FiY7HzT+n8f5AUiNbkS8=; b=XSAmOdkb0iCHxvWPGS2+g3BI3AkPfSHOBj7vWe0K1/UBWGytU/A3dCCpPtmKZlU82X K2snVrjI87anyvoommt8K+D9vFb77d2qEs4Kd3JQC/Ci2Sy4ei97Ge2H2Ioh9SawaU6k RcBFogiwJZOn7xSaoNcOBvP1i6v2OLkA73e4gJblh94lTKVKGLDqJjnUECh0OMfWRW0c d67iomjCzXoW922hbad5Id6soVV3xRfuHVKuswFIx1sK3n7fyZfg4oVru69OsDWrMr5V OVvwPyrSU/moVrlT9EgU+SbfFt7pmr4Z1KhT5U/VIeQ6teN+zgpF/qY/AC6h7Q8eLMgx tA+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751445942; x=1752050742; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6hyBpvkXpsdyLCbyc77Y+t4FiY7HzT+n8f5AUiNbkS8=; b=QujRCeRErSLUifgg/6c43sMtxJx/GXYenHyOl98ipGeJNi/N1mvMflCAJjdyQSfnXV CLmVLoQ2HsuwSRfaLpyt+RbkXwNpJ9hU47z5HMuwYs5q4MVTeORb2ayKcOcPn/9/1SA2 Ue1dLJY/TUC9RhV0PX2Qc6k4LjZjcL0JdMLKKxsfJpHLQnrU3Pchk8kFUPyL3MoRcYRP vSvPXNhjwd5HXNpn9BX99QKpub7GnQEKBfuRY6rPUbIeY/8fHKtGkKjBLZpoYhD53c5K 9muDh2KbMjSnJeL/YpBB/6unQlJN6b1yhOkAUJ0wTeRmsHisLU+OBZLFBNQIkWUwKUav hz3A== X-Forwarded-Encrypted: i=1; AJvYcCXmnha7cUcC4s5KROheP7vtr7z+a51Bz4H5h3eS8uB2XcPfwP8dn8kjkqj0fldBegiX66DJSWoc+D0oYdc=@vger.kernel.org X-Gm-Message-State: AOJu0YzfAZ5SKskoh0sw0K365D1V1V1bWG+Id2XG8FYVRfHlSLj0HZrE 0rytr7UnyIhFtKCU2W1z5HlwA3SAEneJn4oZNuWMrkYB9n+q0UHPNsKhUF9LY+Seeyg= X-Gm-Gg: ASbGncskyndc3RK+oOUAub3KG8fT2URG4cyyFe1lBZFnMXtJFFOJvRvw5et/DKsT2VP sKa8CWfPwzMNHBFJ7UzqX9MOLgivfzBxWX7dkNiLzBBl3Ce+W30K+/m5AotyeYxeY7MdZItah+O b2X2aoFGZMKu61ecYws6H5bz1LQ+cG6rYm+aKngSiVEgoRY0iips69ODd5fbnr8GuSxFu23zGyu m5xMBeiarj6kFlQ58obeYCttLhnNRI7PJgPvCK2Kx8dKT37HsuUece8zap5UgBqwcDyr14dm1I7 fjJ4Le4tqVFUsVcQJQ+sSRtTS+u/WWDBcmOkj8LlAEPiItLFI4NOuA== X-Google-Smtp-Source: AGHT+IHJb3z8M860dK3fs2rS4Q0akrg1/3Gw8aQy4UrD9Q8p6MNxb6Rzpc3c2JwhJLChEPk7Vbp8pQ== X-Received: by 2002:a05:6000:41f5:b0:3a4:f722:f00b with SMTP id ffacd0b85a97d-3b1fdc22160mr1402479f8f.11.1751445941970; Wed, 02 Jul 2025 01:45:41 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8827:d0e:25e:834a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a892e52a26sm15620571f8f.51.2025.07.02.01.45.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 01:45:41 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 02 Jul 2025 10:45:33 +0200 Subject: [PATCH RFC 3/5] pinctrl: qcom: sm8650: mark the `gpio` pin function as a non-strict function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250702-pinctrl-gpio-pinfuncs-v1-3-ed2bd0f9468d@linaro.org> References: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> In-Reply-To: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> To: Linus Walleij , Bjorn Andersson , Konrad Dybcio , Alexey Klimov Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=893; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=jRdYxCj7D4STZwFqPe35Zw19hML7V+rAMKmzg1nGymI=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBoZPGwugmFNm2faShHzwUW2ioHIDM0QHXxYXhBQ cEfPt6JajyJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaGTxsAAKCRARpy6gFHHX cqaHEADW2WyAalEo0uVymxsrwbmVC7EBQCEm3JVHFeIGx9KBJv00oeqEpBN3YGiOC8bx9sLcP+q SDZrt8xcnOoZJkZjp0jOzvRITM+KQUFCEH/IWbFZk8+IsdnooEI810bUnxK31paCbJQ3kB4GcxC yP0yGWKNAGjAqGeGUdteBQAFMkDt9MlYJqB7NGzy1pa/fzFICTkQzjO/LQ0RFiilIcYkTs3/N4u Zh8ZwKeZa1LGCBfHLOCqfP+Df2Kx9UmNveHuWjhBZ6a9w04mjwvXEoHMZ13wqr4pb0l0nBKmac/ a9UsGe1TrPD8BaS3bM1Md3CRkah2qOmieCB2M3Q+Vs4wclifXFUTMtQ4U3ZxoY5tEGGmTa/oBWY u3zKgpVL6rXI3rOpLgc6nG53fvRNAqH1MbE1LVSL3AG/33CQd4lOlNE3rDKDfvMT7eNkRA/gd5P ksFKpwVo+uWhpt1JdOsPNMXmKRfJ0t+HpREgwF2SH39ga24cAkILm10b4RPp/FLW5U6C5Xk8UGB CIoQB6MLtMOLVL5TlULcuTNFdkF0hveBB9GgExczGYbVayh06LLJndx/xJcXYCFGQgsAJ49L3GA 30rdLrtAwM7s2AhflMuez0Dnpx1p6sbCYhaG9y3MuoRcpnslNHsOQ11msg0Ovg5bnf46YMy6I+3 Ca+EdcsC5CmCh6Q== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Allow pins muxed to the "gpio" function to be requested as GPIOs even if pinmux_ops say the controller should be strict. Signed-off-by: Bartosz Golaszewski --- drivers/pinctrl/qcom/pinctrl-sm8650.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/qcom/pinctrl-sm8650.c b/drivers/pinctrl/qcom/p= inctrl-sm8650.c index 449a0077f4b10666ecd9dfaae8e0057a91e181a6..4ab0e75079cd5dec1d86835dae3= 0c9a09455c7f3 100644 --- a/drivers/pinctrl/qcom/pinctrl-sm8650.c +++ b/drivers/pinctrl/qcom/pinctrl-sm8650.c @@ -1328,7 +1328,7 @@ static const char *const vsense_trigger_mirnat_groups= [] =3D { }; =20 static const struct pinfunction sm8650_functions[] =3D { - MSM_PIN_FUNCTION(gpio), + MSM_GPIO_PIN_FUNCTION(gpio), MSM_PIN_FUNCTION(aoss_cti), MSM_PIN_FUNCTION(atest_char), MSM_PIN_FUNCTION(atest_usb), --=20 2.48.1 From nobody Wed Oct 8 04:05:59 2025 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.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 E119123D295 for ; Wed, 2 Jul 2025 08:45:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445946; cv=none; b=f21ISvgEyirrEiGMyFxTLsWVUIzZkXcfIVOZhAV2A8mgvqInWYwE0Pai7KTAVAww6keWB5VowX02uUHAKLemKuGzNX+OzOil6szAOIic4AIJq/7ss3QC1EwlPEN5kUGk0QnSV8IOkdlgec/XTElFglWb8oNtx7AtZvNepVQTMfQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445946; c=relaxed/simple; bh=9LWvmWcvTSZ0I/aQvXUMLaUEUgGhwL3FAKnRn6jpC1Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r7PqwIYrSCkELXMxx6+WbSEoMbXi+5RrWH9efEUDoF+Mqcdzmcty5J2iI6nJNWXnEiloDn6ktJab7MuF6n+U1sJL/Lmeq5QobWTJN3klqBKWO0M5qSjsmxiYXNcSS268hg1OoA+M3qW91HXX+EOvv5RYhHdKvj80WA07/Eq0Sgg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=LtQPJkJt; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="LtQPJkJt" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-3a531fcaa05so2540543f8f.3 for ; Wed, 02 Jul 2025 01:45:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1751445943; x=1752050743; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Yl6c7WwMVNRDxT5GfujSd5D09Be8FqLB3a1ohzpgOYw=; b=LtQPJkJt5stbFmQrUgh0lIyQcpfW7s91R0fArzllTtVE6Q3puGYI2nXlb9aFoVIB0z qJS9IuUnfNx0aWmi89v8pIFMRGcskWkCPuKKelt5tKP65glB+M0tfI8XLNpTAq9FBzTO bcL4UOFp0IocgJvMxEZr+LUY5LxlOYVn15ZjmPXa8lUUqFIZWGaXtZ1FyWHwXf6LtAZt BC4lpZwg43HRq8ecNaIFNk+txD0eIOPATR+qhYJn1TZbwxjKQF5LhyaZEijMr4ugIih6 MqAzWQ+cMWwvXLJ4kKYQ1hngBh1D64kzfip2v0ZZfzati/E+1mrYhD/5GOWxphFHlewH QgVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751445943; x=1752050743; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Yl6c7WwMVNRDxT5GfujSd5D09Be8FqLB3a1ohzpgOYw=; b=ICTxHZ2tr+klqTe6nCKpwF7GzXuVe7Z7Rt5+E25zNrUiS7uaWIyn+bg6OXuDM6Z3rJ C7G4auW/x/K3mIXbwqqab7EDYmKds/bTfD+pdZjXmhjChRSdYEofGU+86jgqsrACVbvc r6X90AFSCv91XGs/S7GQLvXGZdJET+Zy2XuxFAlD+Wxvq+LhV5OEH8TAjLC+ekvZGKQg 8fgWf7D+1NdQWTeuLNlq5tsEPWAy6PBdYPBatJFM44OJqRjxUErRbl5Pgs0iOfcqsR2r bnbObLmmxkJIWTqleQAQYr7rr3wjs0Ob3/tbenBE2F9qGlzKctoqtixPBv3uhbUdMMnL KJ4w== X-Forwarded-Encrypted: i=1; AJvYcCXDXP6TNoe6pOoqS8gMDyCrBosuNVhNV5awElJ39OVW2ybtRpb7hRqgFmtecCckr7pRtu8L/FS1wOxuYVc=@vger.kernel.org X-Gm-Message-State: AOJu0YxLJUes6/PTuq9oQgMMWxymZkwF8Egy5zQAdzfI0wqlVWFBNR/R JKBQyV0PKqaB0EhJPn5X1WJkRtq66P8k9FWcHZdXsPCDEnet9R/tGmsVfhdfsR43QcluKYjJw+m r7rv4hBw= X-Gm-Gg: ASbGncuBFU1GxVEmOXjYsrZneWr1Oe4A8xnMWBlQpV9aGkOUXHNb53v62BZWYLUkfSZ dTKmIvuC2acXFSYthuqfhgPmACuAbxCBOa8HTcHilZzYOcn9pEDBrCpm1nDQ0lNjiM8izRILg0p 5lcq/zvQuRLW/dGC1mq7LpYO1uf2O7JJiq4q8MvqKbGCv8dvwzclR1FrCwN7zPmnuZ0KcKy0mts NUo4vyTzlK4h8sxCT2OyNpkCooYaAIOQiUzRCS3axk8+tvu3auDgK+biR9lCvXw/sq6U6HPFX0Q MLDMyjJSQC4VhfLXDm/0OsyM4pdVXxyLo0JDt31ncRMQDNzP9tKuFA== X-Google-Smtp-Source: AGHT+IHTgLceFYR99RZRppBDbDVsi2WUzj4C8vFzWgsGsV6+C/AnVIirveabiUSIuVfUUlVZQDfOuQ== X-Received: by 2002:a05:6000:4206:b0:3a4:f723:3e73 with SMTP id ffacd0b85a97d-3b1ff8ff61fmr1220779f8f.16.1751445943202; Wed, 02 Jul 2025 01:45:43 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8827:d0e:25e:834a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a892e52a26sm15620571f8f.51.2025.07.02.01.45.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 01:45:42 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 02 Jul 2025 10:45:34 +0200 Subject: [PATCH RFC 4/5] pinctrl: qcom: sc8280xp: mark the `gpio` pin function as a non-strict function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250702-pinctrl-gpio-pinfuncs-v1-4-ed2bd0f9468d@linaro.org> References: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> In-Reply-To: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> To: Linus Walleij , Bjorn Andersson , Konrad Dybcio , Alexey Klimov Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=922; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=1/+I4enowG8VS5jwSCh4y4lBWL7WVy3t3eEb4hrt2qo=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBoZPGwfbcxJHXjajKQw6T556GfUrm4ELzuUdvt0 plctHc+8IqJAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaGTxsAAKCRARpy6gFHHX cnggEACCkZldTWPBj6XEA8q59sHoG7IKGQGQ75a9bvAsWQ4BlD0/QxJpKgClf0wJ7HHKRoESdMP 5sW2B0FMNMfPHDtt9kWk294WtALI3nDb8gJA0A6xEXR19G2zJvdWX87dcDUD5qerv3NyPJIRqdV ZEbw8gZJn9uzdjgYR/+nBPu0jKqlKH4vbzM2ci59iQDCB1jrRrzbJ3lh0jTr2KHotHjkeGl3fqR tfOjxjXN3E+PhLwy4+H+8eG+/Xfznrj75J9xU45k8Z465EWALI4+r2zaMu7O9DqXR6KtqA4CO1w E+igMLhOgh7F/mVvRBY0YyVallbfcYpx2LOO9w4X+kFsN7VGZnPNqtr+1XnXzTBLqA3N47kRcAc DpN8pFu1vX0xtJpJrPgSc25cUBbgSE1pRo3ALIRcxtmleO8FdaX5qVCi9OCR0O2uW/DXhUAdm00 rO5vQHHbTP3Ogc1KqRAHY/y3CM7R0KTvyuXG37w8yBVujGSK2e11K5J/Le9X3wvAgALQnbUmcah WZXG3p6qR8xgMpEtM+vLaH9KyYz73G3miKNJtUwzCielXWYbDMrWrSPW6zKjumtJqXTiBEyKHj6 9WgR4NONmLp2dfJwEXFFnrcQTRR6ALkIJ1O8HDOlOcRUq4NkQkWdecRHhNVoYJ7AO8cAHEZgECB ge5BD9KNvUzZLLg== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski Allow pins muxed to the "gpio" function to be requested as GPIOs even if pinmux_ops say the controller should be strict. Signed-off-by: Bartosz Golaszewski --- drivers/pinctrl/qcom/pinctrl-sc8280xp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/qcom/pinctrl-sc8280xp.c b/drivers/pinctrl/qcom= /pinctrl-sc8280xp.c index 6ccd7e5648d420072f7ce467d92ef0764a6d7764..352cb08bdc12cabed8a0c3b2b96= 16a56578c6a58 100644 --- a/drivers/pinctrl/qcom/pinctrl-sc8280xp.c +++ b/drivers/pinctrl/qcom/pinctrl-sc8280xp.c @@ -1527,7 +1527,7 @@ static const struct pinfunction sc8280xp_functions[] = =3D { MSM_PIN_FUNCTION(gcc_gp3), MSM_PIN_FUNCTION(gcc_gp4), MSM_PIN_FUNCTION(gcc_gp5), - MSM_PIN_FUNCTION(gpio), + MSM_GPIO_PIN_FUNCTION(gpio), MSM_PIN_FUNCTION(hs1_mi2s), MSM_PIN_FUNCTION(hs2_mi2s), MSM_PIN_FUNCTION(hs3_mi2s), --=20 2.48.1 From nobody Wed Oct 8 04:05:59 2025 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.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 ED78C23E350 for ; Wed, 2 Jul 2025 08:45:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445948; cv=none; b=S60QSNmvocG4yk3hw9JzC8gPBQuO6ZF56wBgb8/fUm17rf3BoHVCMEXaKZJZavfn98teDbRNw1C6Sjkp5YYlmVfl8q7uJfruMWiCbRdl3XdS8u/iBAwkZgcP606yC67S6TbrJUxv8ASWg7HzIcts3h8wK9YGVYV7EqGj8VOUJOk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751445948; c=relaxed/simple; bh=OMLzjDb07AyUp83AV0GD0cM+vuaw1gwx03PQmJxw7XE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YRYvHWMQNjdszRYioNTy8WDVG8FtSV9KGM27Jg4js9mwqlcDfFJXBAm4Uc3KdtK0ZaIG/R5T0ENLE1wfXjhBlAflkNbmKoX4VjQSCHeGDb+FDxvpnCzUr0xqq+hWKHrrAn4tgMf48+3395gdXP1IZRThBp3F57BvouRINqE3Dq8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=1MLNDAOO; arc=none smtp.client-ip=209.85.221.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="1MLNDAOO" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-3a6cdc27438so3495392f8f.2 for ; Wed, 02 Jul 2025 01:45:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1751445944; x=1752050744; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ZwPpNwCYln313MFwdNQx7OjpsLCSlHqrL9enedbM0bk=; b=1MLNDAOO5V3ajQwPYXc0hwPq4I4V1CwFyH3ty1HOGgN8oDpDvX1QGwR4qzy6w73Wtl CuG0KFdMTVtfD4zkaJSDLgiGAnSaQG4EW9PnHOENkvd0DYdRHsGSNXkuXlse/jsVNbYO d4JYO/s4beBULto9WLEu8aRDsipro1MN/cS245dJJUi5hq/YyeyUd0M/D6BNRZO75V0W Rt0fOkP16v1mERtOVkxRcKBfnikaudIDaNHqLacQYgtkzY6DjQb2iDWGGKTNuKDPudpD wJf4DxNVO5UuNJ8e0jlIhf8vwu9q7So/loxU+wOsn9Ogz0L2H1XnNwsahCUV6Vnx8OVL TAmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751445944; x=1752050744; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZwPpNwCYln313MFwdNQx7OjpsLCSlHqrL9enedbM0bk=; b=JasHDFO2JFBLEE2UAgoiYwPT0Y7zM+xjPU3oHrD6YNWTmxkx0wguby3IhsGihbIShq ApNDwpVU5QW+cXFmxC0VLCYyVe4Kuiy+UgxNcHcz7jM3X9hIlkbVNslLmGG+jXjDCiHS rejPrzDnbfsMC/rUp2KoCJ4ruvnH1s0L3B4Br2sRtnu5GJlBS97lGqoLDE7sII2Pm2Oy CPXmDu0Vu+Toumx1/ScNt1YH6srKjsQ0oP8XLwINeSiO3gbErf+A3E90uFMZin+fi2JQ N6YleW10ehrFsijf2LjMTWvkpfRqwhYnQss7wulreG8vU6IY/d1CS1WsYnYOhhH4jQuB oRxg== X-Forwarded-Encrypted: i=1; AJvYcCUzyT4VBHL+dF4kLU8lLTcjZ1RV6UxzptjyPeZ9HPrfnmkTP+z3cxEyv4QMp2zG8h6TC++JgKz3Va2ecic=@vger.kernel.org X-Gm-Message-State: AOJu0YwDD69M/wX1evo1mhnp+P7KGburqkQ1M+ZvYUjk8J8KYG7OPlff 2kxf7VZ5BgBtyQ5r0IGhwShLVHexgwQN8u/egYtn5ycHgH4sM2XeHJSJk2FL91PbSlM= X-Gm-Gg: ASbGncsEhrtb2Tf3VolrBGFJcvmqDprbPnq7hmV3hJCRe1tDdRmB0YljYrUFoU8lWhx 82w8G78POU4819Usgb0+xlJ0GmohBpXJbEdSZzfagWwMLOawRnwMXH6XFFgFNscPEjAKnsGnFZo DC2H66cWHVO9lqPchFVV64qChXICcsVBWeRRplV04cB7PcGkAMLkWYSrJAoazyUMT3yqptaieRt dzwKBgVhynXAlXKgi7shZZvLARfwk6gpIuZKW974cprMaIZxSNeXyBPmcoHpLsKibQNWf3xmtVC kaCKDOnouUWSsNOCxAk7OtiC0cpGejmD7XsV02orqLPJHQYgb7Gddw== X-Google-Smtp-Source: AGHT+IEFh5AmGgfvsCCKFb1ElEYNehy+umZmo3olYFL9QRSS/S0Dg0pyMclntsqGh93jA274HIA62Q== X-Received: by 2002:a05:6000:64f:b0:3ab:27f9:e52 with SMTP id ffacd0b85a97d-3b201203956mr1229163f8f.42.1751445944138; Wed, 02 Jul 2025 01:45:44 -0700 (PDT) Received: from [127.0.1.1] ([2a01:cb1d:dc:7e00:8827:d0e:25e:834a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a892e52a26sm15620571f8f.51.2025.07.02.01.45.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 01:45:43 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 02 Jul 2025 10:45:35 +0200 Subject: [PATCH RFC 5/5] pinctrl: qcom: make the pinmuxing strict Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250702-pinctrl-gpio-pinfuncs-v1-5-ed2bd0f9468d@linaro.org> References: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> In-Reply-To: <20250702-pinctrl-gpio-pinfuncs-v1-0-ed2bd0f9468d@linaro.org> To: Linus Walleij , Bjorn Andersson , Konrad Dybcio , Alexey Klimov Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1076; i=bartosz.golaszewski@linaro.org; h=from:subject:message-id; bh=OwkxPIY+ly3qk9K5KMkBmlKJolP2LmYDOd6T4DDMhzY=; b=owEBbQKS/ZANAwAKARGnLqAUcddyAcsmYgBoZPGwiqrlDD6VTQ+SSYTG7O/hq3u765I/ubDxX 8PuCC705T+JAjMEAAEKAB0WIQQWnetsC8PEYBPSx58Rpy6gFHHXcgUCaGTxsAAKCRARpy6gFHHX cg2XD/wId1y4HKdHsUrX29XYKcHhJqIjLS8zAw4bFVv0RIqvj+CQcPFNw2UJSfCFt1ise1qc5/V He8yFAFvyIMC4UsLm1NpkgYyeZD/3yRiVoh0kVWDnxYm1ebmYXAcNFtC5napCTAYqHI80WOGlTT EMuCat7+ZPdRCX3/JBnYzTp0wgRftHo2f03XvXa1DgsC7gC6uHVYpgCdfKTSqM+6+JspxQzSQ/z 8m28/fvzBESRQcHuFCAaLUjNwzcpDJ9pB88qZrVDCqDbH4p6X1zZpAx2r2sqoquPh51WGYGorA/ ZTJ7itByBFIBFAois9/xcIYvwNe6WEoI+VVtzXOtwomeYkjanS4BNsfr3CX7i0RSMGYZnCLMV+6 SFddbcLoTfsM0zFJ1eoMrNKab9KHOwRjRArrDCu19OhkytIkKeuqXYaW3F0gbRr7BgKd1Kt1qiV nGl+9Cf1rEAZ7w1s270OhdONyT2fOLVv3Ub6pAJRK+Qukm49BQdV7zzAh429jc0V8evvj3Wv/wb UbfBVFp8Pa8AKhczTqxU3k93l7DXrr6FHDfx54kKucDVvQF/ZcO8f5HL6qmsFelq0h1tILrsMwZ zNCEfrLAPbRmb77RC84sfAHKxm5irjcMBsbHnTPxjc3LU6Dl0pLRxrdpScqfNctGxToPwvvUq/8 3yS3sy9BjzvRPFQ== X-Developer-Key: i=bartosz.golaszewski@linaro.org; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 From: Bartosz Golaszewski The strict flag in struct pinmux_ops disallows the usage of the same pin as a GPIO and for another function. Without it, a rouge user-space process with enough privileges (or even a buggy driver) can request a used pin as GPIO and drive it, potentially confusing devices or even crashing the system. Set it globally for all pinctrl-msm users. Signed-off-by: Bartosz Golaszewski --- drivers/pinctrl/qcom/pinctrl-msm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinc= trl-msm.c index bb1e5aca058fc28c3cc823876c8fe7880d66b6fa..8727b8f394a5a2669c0dc8ffe5f= 1b83d5db526e8 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c @@ -302,6 +302,7 @@ static const struct pinmux_ops msm_pinmux_ops =3D { .get_function_groups =3D msm_get_function_groups, .gpio_request_enable =3D msm_pinmux_request_gpio, .set_mux =3D msm_pinmux_set_mux, + .strict =3D true, }; =20 static int msm_config_reg(struct msm_pinctrl *pctrl, --=20 2.48.1