All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lei Xue <lei.xue@mediatek.com>
To: Sean Wang <sean.wang@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>
Cc: <linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>,
	<linux-gpio@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <yong.mao@mediatek.com>,
	<lei.xue@mediatek.com>, <qingliang.li@mediatek.com>,
	<Fred-WY.Chen@mediatek.com>, <ot_cathy.xu@mediatek.com>,
	<ot_shunxi.zhang@mediatek.com>, <ot_yaoy.wang@mediatek.com>,
	<ot_ye.wang@mediatek.com>
Subject: [PATCH 1/3] pinctrl: mediatek: Add gpio-range record in pinctrl driver
Date: Tue, 25 Nov 2025 10:36:34 +0800	[thread overview]
Message-ID: <20251125023639.2416546-2-lei.xue@mediatek.com> (raw)
In-Reply-To: <20251125023639.2416546-1-lei.xue@mediatek.com>

Kernel GPIO subsystem mapping hardware pin number to a different
range of gpio number. Add gpio-range structure to hold
the mapped gpio range in pinctrl driver. That enables the kernel
to search a range of mapped gpio range against a pinctrl device.

Signed-off-by: Lei Xue <lei.xue@mediatek.com>
---
 drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h |  1 +
 drivers/pinctrl/mediatek/pinctrl-paris.c         | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h
index fa7c0ed49346..df8dce14744f 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h
@@ -302,6 +302,7 @@ struct mtk_pinctrl {
 	spinlock_t lock;
 	/* identify rsel setting by si unit or rsel define in dts node */
 	bool rsel_si_unit;
+	struct pinctrl_gpio_range	range;
 };
 
 void mtk_rmw(struct mtk_pinctrl *pctl, u8 i, u32 reg, u32 mask, u32 set);
diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index 6bf37d8085fa..2cf61cfe809e 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -3,7 +3,7 @@
  * MediaTek Pinctrl Paris Driver, which implement the vendor per-pin
  * bindings for MediaTek SoC.
  *
- * Copyright (C) 2018 MediaTek Inc.
+ * Copyright (C) 2018-2025 MediaTek Inc.
  * Author: Sean Wang <sean.wang@mediatek.com>
  *	   Zhiyong Tao <zhiyong.tao@mediatek.com>
  *	   Hongzhou.Yang <hongzhou.yang@mediatek.com>
@@ -936,6 +936,15 @@ static int mtk_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
 	return mtk_eint_set_debounce(hw->eint, desc->eint.eint_n, debounce);
 }
 
+static void mtk_pinctrl_gpio_range_init(struct mtk_pinctrl *hw, struct gpio_chip *chip)
+{
+	hw->range.name = "mtk_pinctrl_gpio_range";
+	hw->range.id = 0;
+	hw->range.pin_base = 0;
+	hw->range.base = chip->base;
+	hw->range.npins = hw->soc->npins;
+}
+
 static int mtk_build_gpiochip(struct mtk_pinctrl *hw)
 {
 	struct gpio_chip *chip = &hw->chip;
@@ -959,6 +968,8 @@ static int mtk_build_gpiochip(struct mtk_pinctrl *hw)
 	if (ret < 0)
 		return ret;
 
+	mtk_pinctrl_gpio_range_init(hw, chip);
+
 	return 0;
 }
 
@@ -1077,6 +1088,8 @@ int mtk_paris_pinctrl_probe(struct platform_device *pdev)
 	if (err)
 		return dev_err_probe(dev, err, "Failed to add gpio_chip\n");
 
+	pinctrl_add_gpio_range(hw->pctrl, &hw->range);
+
 	platform_set_drvdata(pdev, hw);
 
 	return 0;
-- 
2.45.2



  reply	other threads:[~2025-11-25  2:37 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-25  2:36 [PATCH 0/3] Add pinctrl and GPIO support for MediaTek MT8901 Lei Xue
2025-11-25  2:36 ` Lei Xue [this message]
2025-11-26 18:06   ` [PATCH 1/3] pinctrl: mediatek: Add gpio-range record in pinctrl driver Andy Shevchenko
2026-03-26 12:33     ` Fred-WY Chen (陳威宇)
2026-03-27 13:33       ` Deep Pani
2026-04-17  6:02         ` Deep Pani
2026-04-17  6:36           ` andriy.shevchenko
2026-04-17  6:35         ` andriy.shevchenko
2025-11-25  2:36 ` [PATCH 2/3] pinctrl: mediatek: Add acpi support Lei Xue
2025-11-26  9:10   ` Linus Walleij
2025-11-26 16:52     ` Lorenzo Pieralisi
2025-11-26 18:06       ` Andy Shevchenko
2025-11-27 10:06         ` Lorenzo Pieralisi
2025-11-27 14:29           ` Andy Shevchenko
2025-11-27 15:53             ` Lorenzo Pieralisi
2026-04-17  6:26               ` Andy Shevchenko
2026-04-23  9:08                 ` Lorenzo Pieralisi
2025-11-25  2:36 ` [PATCH 3/3] pinctrl: mediatek: mt8901: Add pinctrl driver for MT8901 Lei Xue
2025-11-25  9:56   ` AngeloGioacchino Del Regno
2026-03-26 12:36     ` Fred-WY Chen (陳威宇)
2026-03-27 13:41       ` Deep Pani
2026-04-17  6:04         ` Deep Pani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251125023639.2416546-2-lei.xue@mediatek.com \
    --to=lei.xue@mediatek.com \
    --cc=Fred-WY.Chen@mediatek.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=ot_cathy.xu@mediatek.com \
    --cc=ot_shunxi.zhang@mediatek.com \
    --cc=ot_yaoy.wang@mediatek.com \
    --cc=ot_ye.wang@mediatek.com \
    --cc=qingliang.li@mediatek.com \
    --cc=sean.wang@kernel.org \
    --cc=yong.mao@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.