]> git.ipfire.org Git - thirdparty/kernel/stable.git/log
thirdparty/kernel/stable.git
2 weeks agoMerge tag 'intel-pinctrl-v6.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Walleij [Tue, 25 Nov 2025 13:29:03 +0000 (14:29 +0100)] 
Merge tag 'intel-pinctrl-v6.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into devel

intel-pinctrl for v6.19-1

* Add and use common macro INTEL_GPP() to avoid duplication
* Export intel_gpio_add_pin_ranges() and reuse it instead of custom copies
* Unify error messages with help of dev_err_probe()

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 weeks agopinctrl: cix: Fix obscure dependency
Linus Walleij [Mon, 24 Nov 2025 14:35:16 +0000 (15:35 +0100)] 
pinctrl: cix: Fix obscure dependency

When compile-testing for UM-Linux the build fails because
we don't have IOMEM.

Add an explicit dependency.

Fixes: 920500c5fe66 ("pinctrl: cix: Add pin-controller support for sky1")
Reviewed-by: Peter Chen <peter.chen@cixtech.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
3 weeks agodt-bindings: pinctrl: cix,sky1-pinctrl: Drop duplicate newline
Marek Vasut [Tue, 18 Nov 2025 12:11:24 +0000 (13:11 +0100)] 
dt-bindings: pinctrl: cix,sky1-pinctrl: Drop duplicate newline

Fix the following DT schema check warning:

./Documentation/devicetree/bindings/pinctrl/cix,sky1-pinctrl.yaml:68:1: [warning] too many blank lines (2 > 1) (empty-lines)

One newline is enough. No functional change.

Signed-off-by: Marek Vasut <marex@nabladev.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
3 weeks agodt-bindings: pinctrl: aspeed,ast2600-pinctrl: Add PCIe RC PERST# group
Jacky Chou [Mon, 17 Nov 2025 12:37:50 +0000 (20:37 +0800)] 
dt-bindings: pinctrl: aspeed,ast2600-pinctrl: Add PCIe RC PERST# group

Add PCIe PERST# group to support for PCIe RC.

Signed-off-by: Jacky Chou <jacky_chou@aspeedtech.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
3 weeks agopinctrl: airoha: Fix AIROHA_PINCTRL_CONFS_DRIVE_E2 in an7583_pinctrl_match_data
Nathan Chancellor [Wed, 12 Nov 2025 18:44:30 +0000 (11:44 -0700)] 
pinctrl: airoha: Fix AIROHA_PINCTRL_CONFS_DRIVE_E2 in an7583_pinctrl_match_data

Clang warns (or errors with CONFIG_WERROR=y / W=e):

  pinctrl/mediatek/pinctrl-airoha.c:2064:41: error: variable 'an7583_pinctrl_drive_e2_conf' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]
   2064 | static const struct airoha_pinctrl_conf an7583_pinctrl_drive_e2_conf[] = {
        |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

Due to a typo, an7583_pinctrl_drive_e2_conf is only used within
ARRAY_SIZE() (hence no instance of -Wunused-variable), which is
evaluated at compile time, so it will not be needed in the final object
file.

Fix the .confs assignment for AIROHA_PINCTRL_CONFS_DRIVE_E2 in
an7583_pinctrl_match_data to clear up the warning.

Closes: https://github.com/ClangBuiltLinux/linux/issues/2142
Fixes: 3ffeb17a9a27 ("pinctrl: airoha: add support for Airoha AN7583 PINs")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Acked-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
3 weeks agopinctrl: airoha: fix pinctrl function mismatch issue
Chukun Pan [Sat, 15 Nov 2025 10:00:00 +0000 (18:00 +0800)] 
pinctrl: airoha: fix pinctrl function mismatch issue

The blamed commit made the following changes:

-#define PINCTRL_FUNC_DESC(id)...
- .desc = PINCTRL_PINFUNCTION(#id, ...
+#define PINCTRL_FUNC_DESC(id, table)...
+ .desc = PINCTRL_PINFUNCTION(#id, ...

- PINCTRL_FUNC_DESC(pon)...
+ PINCTRL_FUNC_DESC("pon", pon)...

It's clear that the id of funcs doesn't match the definition.
Remove redundant #string from the definition to fix this issue:
pinctrl-airoha ...: invalid function mdio in map table

Fixes: 4043b0c45f85 ("pinctrl: airoha: generalize pins/group/function/confs handling")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Acked-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
3 weeks agoMerge tag 'renesas-pinctrl-for-v6.19-tag2' of git://git.kernel.org/pub/scm/linux...
Linus Walleij [Tue, 18 Nov 2025 23:00:58 +0000 (00:00 +0100)] 
Merge tag 'renesas-pinctrl-for-v6.19-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel

pinctrl: renesas: Updates for v6.19 (take two)

  - Remove removed signals on R-Car V4H and V4M,
  - Refactor OEN register PWPR handling on RZ/G2L.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
3 weeks agoMerge patch series "pinctrl: intel: Export intel_gpio_add_pin_ranges() and use it"
Andy Shevchenko [Tue, 18 Nov 2025 14:14:06 +0000 (15:14 +0100)] 
Merge patch series "pinctrl: intel: Export intel_gpio_add_pin_ranges() and use it"

Andy Shevchenko <andriy.shevchenko@linux.intel.com> says:

Deduplicate more code with help of being exported intel_gpio_add_pin_ranges().

Link: https://patch.msgid.link/20251118123444.1217863-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
3 weeks agopinctrl: cherryview: Convert to use intel_gpio_add_pin_ranges()
Andy Shevchenko [Tue, 18 Nov 2025 12:34:02 +0000 (13:34 +0100)] 
pinctrl: cherryview: Convert to use intel_gpio_add_pin_ranges()

Driver is ready to use intel_gpio_add_pin_ranges() directly instead of
custom approach. Convert it now.

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
3 weeks agopinctrl: intel: Export intel_gpio_add_pin_ranges()
Andy Shevchenko [Tue, 18 Nov 2025 12:34:01 +0000 (13:34 +0100)] 
pinctrl: intel: Export intel_gpio_add_pin_ranges()

Export intel_gpio_add_pin_ranges() for reuse in other drivers.

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 weeks agopinctrl: renesas: rzg2l: Refactor OEN register PWPR handling
John Madieu [Thu, 6 Nov 2025 08:07:58 +0000 (09:07 +0100)] 
pinctrl: renesas: rzg2l: Refactor OEN register PWPR handling

Extract the OEN register write with PWPR protection logic into a helper
function to eliminate code duplication between rzg2l_write_oen() and
rzg2l_pinctrl_resume_noirq().

Introduce rzg2l_oen_write_with_pwpr() helper that encapsulates the
PWPR unlock, OEN register write, and PWPR lock sequence. This helper
must be called with pctrl->lock already held by the caller.

Reported-by: Pavel Machek <pavel@denx.de>
Closes: https://lore.kernel.org/cip-dev/OS9PR01MB16368C765305362F5F4132759FFC4A@OS9PR01MB16368.jpnprd01.prod.outlook.com/T/#u
Signed-off-by: John Madieu <john.madieu.xa@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20251106080758.36645-1-john.madieu.xa@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
4 weeks agopinctrl: airoha: convert comma to semicolon
Chen Ni [Tue, 11 Nov 2025 06:29:44 +0000 (14:29 +0800)] 
pinctrl: airoha: convert comma to semicolon

Replace comma between expressions with semicolons.

Using a ',' in place of a ';' can have unintended side effects.
Although that is not the case here, it is seems best to use ';'
unless ',' is intended.

Found by inspection.
No functional change intended.
Compile tested only.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agoMerge patch series "pinctrl: intel: Convert the rest to use INTEL_GPP()"
Andy Shevchenko [Wed, 12 Nov 2025 06:29:33 +0000 (07:29 +0100)] 
Merge patch series "pinctrl: intel: Convert the rest to use INTEL_GPP()"

Andy Shevchenko <andriy.shevchenko@linux.intel.com> says:

A few drivers use the more customised versions of INTEL_GPP().
Convert them to use INTEL_GPP() directly.

Link: https://patch.msgid.link/20251111191214.1378051-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 weeks agopinctrl: elkhartlake: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 11 Nov 2025 19:10:29 +0000 (20:10 +0100)] 
pinctrl: elkhartlake: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 weeks agopinctrl: cherryview: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 11 Nov 2025 19:10:28 +0000 (20:10 +0100)] 
pinctrl: cherryview: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 weeks agopinctrl: emmitsburg: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 11 Nov 2025 19:10:27 +0000 (20:10 +0100)] 
pinctrl: emmitsburg: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 weeks agopinctrl: denverton: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 11 Nov 2025 19:10:26 +0000 (20:10 +0100)] 
pinctrl: denverton: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 weeks agopinctrl: cedarfork: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 11 Nov 2025 19:10:25 +0000 (20:10 +0100)] 
pinctrl: cedarfork: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 weeks agopinctrl: airoha: add support for Airoha AN7583 PINs
Christian Marangi [Thu, 6 Nov 2025 23:57:08 +0000 (00:57 +0100)] 
pinctrl: airoha: add support for Airoha AN7583 PINs

Add all the required entry to add suppot for Airoha AN7583 PINs.

Where possible the same function group are used from Airoha EN7581 to
reduce code duplication.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agodt-bindings: pinctrl: airoha: Document AN7583 Pin Controller
Christian Marangi [Thu, 6 Nov 2025 23:57:07 +0000 (00:57 +0100)] 
dt-bindings: pinctrl: airoha: Document AN7583 Pin Controller

Document Airoha AN7583 Pin Controller based on Airoha EN7581 with some
minor difference on some function group (PCM and LED gpio).

To not bloat the EN7581 schema with massive if condition, use a
dedicated YAML schema for Airoha AN7583.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agopinctrl: airoha: convert PWM GPIO to macro
Christian Marangi [Thu, 6 Nov 2025 23:57:06 +0000 (00:57 +0100)] 
pinctrl: airoha: convert PWM GPIO to macro

The PWM GPIO struct definition follow the same pattern for every GPIO
pin hence it can be converted to a macro.

Create 2 macro one for normal mux and one for ext mux and convert all
the entry to these new macro to reduce code size.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agopinctrl: airoha: convert PHY LED GPIO to macro
Christian Marangi [Thu, 6 Nov 2025 23:57:05 +0000 (00:57 +0100)] 
pinctrl: airoha: convert PHY LED GPIO to macro

PHY LED GPIO pinctrl struct definition is very similar across the
different 4 PHY and 2 LED and it can be generelized to a macro.

To reduce code size, convert them to a common macro.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agopinctrl: airoha: generalize pins/group/function/confs handling
Christian Marangi [Thu, 6 Nov 2025 23:57:04 +0000 (00:57 +0100)] 
pinctrl: airoha: generalize pins/group/function/confs handling

In preparation for support of Airoha AN7583, generalize
pins/group/function/confs handling and move them in match_data.
Inner function will base the values on the pinctrl priv struct instead of
relying on hardcoded struct.

This permits to use different PIN data while keeping the same logic.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agodt-bindings: pinctrl: mt7988: allow gpio-hogs
Frank Wunderlich [Mon, 27 Oct 2025 13:28:11 +0000 (14:28 +0100)] 
dt-bindings: pinctrl: mt7988: allow gpio-hogs

Allow gpio-hogs in pinctrl node for switching pcie on Bananapi R4 Pro.

Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogiocchino.delregno@collabora.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agopinctrl: stm32: handle semaphore acquisition when handling pinctrl/pinmux
Gatien Chevallier [Wed, 5 Nov 2025 10:50:22 +0000 (11:50 +0100)] 
pinctrl: stm32: handle semaphore acquisition when handling pinctrl/pinmux

When a GPIO RIF configuration is in semaphore mode, and the semaphore
hasn't been taken before configuring the GPIO, the write operations
silently fail.

To avoid a silent fail when applying a pinctrl, if the pins that are
being configured are in semaphore mode, take the semaphore. Note that
there is no proper release of the RIF semaphore yet for pinctrl.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agopinctrl: rockchip: Add rk3506 pinctrl support
Ye Zhang [Tue, 4 Nov 2025 02:12:22 +0000 (10:12 +0800)] 
pinctrl: rockchip: Add rk3506 pinctrl support

Add support for the 5 rk3506 GPIO banks.

Signed-off-by: Ye Zhang <ye.zhang@rock-chips.com>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agodt-bindings: pinctrl: Add rk3506 pinctrl support
Ye Zhang [Tue, 4 Nov 2025 02:12:21 +0000 (10:12 +0800)] 
dt-bindings: pinctrl: Add rk3506 pinctrl support

Add the compatible string for the rk3506 SoC.

Signed-off-by: Ye Zhang <ye.zhang@rock-chips.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agoMerge tag 'samsung-pinctrl-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git...
Linus Walleij [Mon, 10 Nov 2025 20:55:16 +0000 (21:55 +0100)] 
Merge tag 'samsung-pinctrl-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel

Samsung pinctrl drivers changes for v6.19

Add pin controller support for Samsung Exynos8890 and Axis ARTPEC-9
SoCs.  The latter is a newer design of Artpec SoCs made/designed by
Samsung, thus it shares most of the core blocks with Samsung Exynos,
including the pinctrl.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agodt-bindings: pinctrl: Convert sprd,sc9860-pinctrl to DT schema
Rob Herring (Arm) [Mon, 27 Oct 2025 21:26:41 +0000 (16:26 -0500)] 
dt-bindings: pinctrl: Convert sprd,sc9860-pinctrl to DT schema

Convert the sprd,sc9860-pinctrl binding to DT schema format. What's
valid for the the sleep mode child nodes wasn't well defined. The schema
is based on the example (as there's no .dts with pin states) and the
driver's register definitions.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 weeks agopinctrl: renesas: r8a779h0: Remove STPWT_EXTFXR
Geert Uytterhoeven [Tue, 4 Nov 2025 16:59:47 +0000 (17:59 +0100)] 
pinctrl: renesas: r8a779h0: Remove STPWT_EXTFXR

Rev.0.81 of the R-Car V4M Series Hardware User’s Manual removed the
"STPWT_EXTFXR" signal from the pin control register tables.  As this is
further unused in the pin control driver, it can be removed safely.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Link: https://patch.msgid.link/f849fa3b9b516e9dd04b45462b69f52225259480.1762274384.git.geert+renesas@glider.be
4 weeks agopinctrl: renesas: r8a779h0: Remove CC5_OSCOUT
Huy Bui [Tue, 4 Nov 2025 16:59:46 +0000 (17:59 +0100)] 
pinctrl: renesas: r8a779h0: Remove CC5_OSCOUT

Rev.0.71 of the R-Car V4M Series Hardware User’s Manual removed the
"CC5_OSCOUT" signal from the pin control register tables.  As this is
further unused in the pin control driver, it can be removed safely.

Signed-off-by: Huy Bui <huy.bui.wm@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Link: https://patch.msgid.link/895bb560467309706931d14aeea0e063ad0e86eb.1762274384.git.geert+renesas@glider.be
4 weeks agopinctrl: renesas: r8a779g0: Remove STPWT_EXTFXR
Huy Bui [Tue, 4 Nov 2025 16:59:45 +0000 (17:59 +0100)] 
pinctrl: renesas: r8a779g0: Remove STPWT_EXTFXR

Rev.1.30 of the R-Car V4H Series Hardware User’s Manual removed the
"STPWT_EXTFXR" signal from the pin control register tables.  As this is
further unused in the pin control driver, it can be removed safely.

Signed-off-by: Huy Bui <huy.bui.wm@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Link: https://patch.msgid.link/f6cfdbbc024d85e87583a1d57ea01582632f1216.1762274384.git.geert+renesas@glider.be
4 weeks agopinctrl: renesas: r8a779g0: Remove CC5_OSCOUT
Huy Bui [Tue, 4 Nov 2025 16:59:44 +0000 (17:59 +0100)] 
pinctrl: renesas: r8a779g0: Remove CC5_OSCOUT

Rev.1.30 of the R-Car V4H Series Hardware User’s Manual removed the
"CC5_OSCOUT" signal from the pin control register tables.  As this is
further unused in the pin control driver, it can be removed safely.

Signed-off-by: Huy Bui <huy.bui.wm@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Link: https://patch.msgid.link/77f9efe5388f2801ace945b7793d4823618eeec8.1762274384.git.geert+renesas@glider.be
4 weeks agopinctrl: renesas: r8a779g0: Remove AVB[01]_MII
Thanh Quan [Tue, 4 Nov 2025 16:59:43 +0000 (17:59 +0100)] 
pinctrl: renesas: r8a779g0: Remove AVB[01]_MII

Rev.1.30 of the R-Car V4H Series Hardware User’s Manual removed the
"AVB[01]_MII_*" signals from the pin control register tables.  As these
are further unused in the pin control driver, they can be removed
safely.

Signed-off-by: Thanh Quan <thanh.quan.xn@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Link: https://patch.msgid.link/58662f50136280532bcc8bbe94741d82425bd118.1762274384.git.geert+renesas@glider.be
4 weeks agoMerge tag 'renesas-pinctrl-for-v6.19-tag1' of git://git.kernel.org/pub/scm/linux...
Linus Walleij [Sun, 9 Nov 2025 22:55:18 +0000 (23:55 +0100)] 
Merge tag 'renesas-pinctrl-for-v6.19-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel

pinctrl: renesas: Updates for v6.19

  - Fix interrupt configuration and port mode after resume on RZ/G2L
    family SoCs,
  - Miscellaneous fixes and improvements.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
5 weeks agoMerge patch series "pinctrl: intel: Consolidate struct intel_padgroup initialisers"
Andy Shevchenko [Wed, 5 Nov 2025 17:15:07 +0000 (18:15 +0100)] 
Merge patch series "pinctrl: intel: Consolidate struct intel_padgroup initialisers"

Andy Shevchenko <andriy.shevchenko@linux.intel.com> says:

We have plenty of repetitive *_GPP() macros across the drivers.
Consolidate them under a newly introduced INTEL_GPP().

Link: https://patch.msgid.link/20251104145814.1018867-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: sunrisepoint: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:44 +0000 (15:56 +0100)] 
pinctrl: sunrisepoint: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: tigerlake: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:43 +0000 (15:56 +0100)] 
pinctrl: tigerlake: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: meteorpoint: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:42 +0000 (15:56 +0100)] 
pinctrl: meteorpoint: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: meteorlake: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:41 +0000 (15:56 +0100)] 
pinctrl: meteorlake: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: lakefield: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:40 +0000 (15:56 +0100)] 
pinctrl: lakefield: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: jasperlake: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:39 +0000 (15:56 +0100)] 
pinctrl: jasperlake: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: icelake: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:38 +0000 (15:56 +0100)] 
pinctrl: icelake: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: cannonlake: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:37 +0000 (15:56 +0100)] 
pinctrl: cannonlake: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: alderlake: Switch to INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:36 +0000 (15:56 +0100)] 
pinctrl: alderlake: Switch to INTEL_GPP() macro

Replace custom macro with the recently defined INTEL_GPP().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: intel: Introduce INTEL_GPP() macro
Andy Shevchenko [Tue, 4 Nov 2025 14:56:35 +0000 (15:56 +0100)] 
pinctrl: intel: Introduce INTEL_GPP() macro

A new macro will be used for the further refactoring of the drivers.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: cix: sky1: Provide pin control dummy states
Linus Walleij [Tue, 4 Nov 2025 13:01:03 +0000 (14:01 +0100)] 
pinctrl: cix: sky1: Provide pin control dummy states

This exports and calls the pinctrl_provide_dummies() function from
the CIX SKY1 driver.

The reasons are explained in a comment in the commit, in essence the
two pin controllers need to go through explicit state transitions
default->sleep->default despite they only handle one single state
each.

Reviewed-by: Hans Zhang <hans.zhang@cixtech.com>
Reviewed-by: Fugang Duan <fugang.duan@cixtech.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
5 weeks agoMerge patch series "pinctrl: intel: Unify error messages"
Andy Shevchenko [Tue, 4 Nov 2025 08:29:58 +0000 (09:29 +0100)] 
Merge patch series "pinctrl: intel: Unify error messages"

Andy Shevchenko <andriy.shevchenko@linux.intel.com> says:

Unify error messages with help of dev_err_probe(). This brings
a common pattern with error code printed as well. While at it,
make the text message the same for the same reasons across
the Intel pin control drivers.

Link: https://patch.msgid.link/20251103200235.712436-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: tangier: Unify messages with help of dev_err_probe()
Andy Shevchenko [Mon, 3 Nov 2025 19:58:31 +0000 (20:58 +0100)] 
pinctrl: tangier: Unify messages with help of dev_err_probe()

Unify error messages that might appear during probe phase by
switching to use dev_err_probe().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: lynxpoint: Unify messages with help of dev_err_probe()
Andy Shevchenko [Mon, 3 Nov 2025 19:19:15 +0000 (20:19 +0100)] 
pinctrl: lynxpoint: Unify messages with help of dev_err_probe()

Unify error messages that might appear during probe phase by
switching to use dev_err_probe().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: intel: Unify messages with help of dev_err_probe()
Andy Shevchenko [Mon, 3 Nov 2025 19:58:30 +0000 (20:58 +0100)] 
pinctrl: intel: Unify messages with help of dev_err_probe()

Unify error messages that might appear during probe phase by
switching to use dev_err_probe().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: cherryview: Unify messages with help of dev_err_probe()
Andy Shevchenko [Mon, 3 Nov 2025 19:58:29 +0000 (20:58 +0100)] 
pinctrl: cherryview: Unify messages with help of dev_err_probe()

Unify error messages that might appear during probe phase by
switching to use dev_err_probe().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
5 weeks agopinctrl: baytrail: Unify messages with help of dev_err_probe()
Andy Shevchenko [Mon, 3 Nov 2025 19:58:28 +0000 (20:58 +0100)] 
pinctrl: baytrail: Unify messages with help of dev_err_probe()

Unify error messages that might appear during probe phase by
switching to use dev_err_probe().

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
6 weeks agopinctrl: mpfs-iomux0: fix compile-time constant warning for LLVM prior to 17
Conor Dooley [Wed, 29 Oct 2025 15:29:35 +0000 (15:29 +0000)] 
pinctrl: mpfs-iomux0: fix compile-time constant warning for LLVM prior to 17

With LLVM prior to 17.0.0:

drivers/pinctrl/pinctrl-mpfs-iomux0.c:89:2: error: initializer element is not a compile-time constant
        MPFS_IOMUX0_GROUP(spi0),
        ^~~~~~~~~~~~~~~~~~~~~~~
drivers/pinctrl/pinctrl-mpfs-iomux0.c:79:10: note: expanded from macro 'MPFS_IOMUX0_GROUP'
        .mask = BIT(mpfs_iomux0_##_name##_pins[0]),     \
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/vdso/bits.h:7:19: note: expanded from macro 'BIT'
\#define BIT(nr)                 (UL(1) << (nr))
                                ^~~~~~~~~~~~~~~

This is a constant, but LLVM prior to a change from Nick to match the
gcc behaviour did not allow this. The macro isn't really all that much
of an idiot-proofing, just change it to the same sort that's in the
gpio2 driver, where a second argument provides the mask/setting.

Reported-by: Nathan Chancellor <nathan@kernel.org>
Link: https://github.com/ClangBuiltLinux/linux/issues/2140
Fixes: 46397274da22 ("pinctrl: add polarfire soc iomux0 pinmux driver")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: stm32: fix hwspinlock resource leak in probe function
Haotian Zhang [Wed, 29 Oct 2025 01:42:52 +0000 (09:42 +0800)] 
pinctrl: stm32: fix hwspinlock resource leak in probe function

In stm32_pctl_probe(), hwspin_lock_request_specific() is called to
request a hwspinlock, but the acquired lock is not freed on multiple
error paths after this call. This causes resource leakage when the
function fails to initialize properly.

Use devm_hwspin_lock_request_specific() instead of
hwspin_lock_request_specific() to automatically manage the hwspinlock
resource lifecycle.

Fixes: 97cfb6cd34f2 ("pinctrl: stm32: protect configuration registers with a hwspinlock")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Reviewed-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: mcp23s08: init reg_defaults from HW at probe and switch cache type
Maksim Kiselev [Mon, 27 Oct 2025 10:46:26 +0000 (13:46 +0300)] 
pinctrl: mcp23s08: init reg_defaults from HW at probe and switch cache type

The probe function does not guarantee that chip registers are in their
default state. Thus using reg_defaults for regmap is incorrect.

For example, the chip may have already been configured by the bootloader
before the Linux driver loads, or the mcp might not have a reset at all
and not reset a state between reboots.

In such cases, using reg_defaults leads to the cache values diverging
from the actual registers values in the chip.

Previous attempts to fix consequences of this issue were made in
'commit 3ede3f8b4b4b ("pinctrl: mcp23s08: Reset all pins to input at
probe")', but this is insufficient. The OLAT register reset is also
required. And there's still potential for new issues arising due to cache
desynchronization of other registers.

Therefore, remove reg_defaults and provide num_reg_defaults_raw. In that
case the cache defaults being initialized from hardware.

Also switch cache type to REGCACHE_MAPLE, which is aware of (in)valid
cache entries.

And remove the force reset all pins to input at probe as it is no longer
required.

Link: https://lore.kernel.org/all/20251009132651.649099-2-bigunclemax@gmail.com/
Suggested-by: Mike Looijmans <mike.looijmans@topic.nl>
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Suggested-by: Sander Vanheule <sander@svanheule.net>
Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl-scmi: remove unused struct members
Dan Carpenter [Mon, 27 Oct 2025 15:18:20 +0000 (18:18 +0300)] 
pinctrl-scmi: remove unused struct members

The ->pins and ->nr_pins members are not used so delete them.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agodt-bindings: pinctrl: stm32: Support I/O synchronization parameters
Antonio Borneo [Thu, 23 Oct 2025 13:26:59 +0000 (15:26 +0200)] 
dt-bindings: pinctrl: stm32: Support I/O synchronization parameters

Document the support of the I/O synchronization parameters:
- skew-delay-input-ps;
- skew-delay-output-ps;
- st,io-sync.

Forbid 'skew-delay-input-ps' and 'skew-delay-output-ps' to be both
present on the same pin.
Allow the new properties only with compatibles that support them.
Add an example that uses the new properties.

Co-developed-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agodt-bindings: pinctrl: stm32: Use properties from pincfg-node.yaml
Antonio Borneo [Thu, 23 Oct 2025 13:26:58 +0000 (15:26 +0200)] 
dt-bindings: pinctrl: stm32: Use properties from pincfg-node.yaml

Don't re-declare the standard pincfg properties; take them from
the default schema.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: stm32: Support I/O synchronization parameters
Antonio Borneo [Thu, 23 Oct 2025 13:26:57 +0000 (15:26 +0200)] 
pinctrl: stm32: Support I/O synchronization parameters

Devices in the stm32mp2xx family include an I/O synchronization
block on each pin that is used to fine tune and improve the I/O
timing margins of high speed synchronous interfaces.
It can be configured to provide independently for each pin:
- skew rate on input direction or latch delay on output direction;
- inversion of clock signals or re-sampling of data signals.

Add support for the generic properties:
- skew-delay-input-ps;
- skew-delay-output-ps.

Add support for the property 'st,io-sync' to configure clock
inversion or data re-sampling mode.

Show the new parameters on debugfs pinconf-pins.

Enable it for the stm32mp257 pinctrl driver.

Co-developed-by: Valentin Caron <valentin.caron@foss.st.com>
Signed-off-by: Valentin Caron <valentin.caron@foss.st.com>
Co-developed-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: stm32: Avoid keeping a bool value in a u32 variable
Antonio Borneo [Thu, 23 Oct 2025 13:26:56 +0000 (15:26 +0200)] 
pinctrl: stm32: Avoid keeping a bool value in a u32 variable

Change type of variable to avoid keeping the bool return value in
a variable of u32 type.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: stm32: Drop useless spinlock save and restore
Antonio Borneo [Thu, 23 Oct 2025 13:26:55 +0000 (15:26 +0200)] 
pinctrl: stm32: Drop useless spinlock save and restore

There is no need to acquire a spinlock to only read a register for
debugfs reporting.
Drop such useless spinlock save and restore.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: stm32: Simplify handling of backup pin status
Antonio Borneo [Thu, 23 Oct 2025 13:26:54 +0000 (15:26 +0200)] 
pinctrl: stm32: Simplify handling of backup pin status

Use C bit-field to keep the backup of the pin status, instead of
explicitly handling the bit-field through shift and mask of a u32
container.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: stm32: Rework stm32_pconf_parse_conf()
Antonio Borneo [Thu, 23 Oct 2025 13:26:53 +0000 (15:26 +0200)] 
pinctrl: stm32: Rework stm32_pconf_parse_conf()

Reduce the number of parameters of the function by moving inside
the function the decoding of the field 'config'.

While there:
- change the type of 'param' to 'unsigned int' to handle the extra
  values not in 'enum pin_config_param';
- change the type of 'arg' to 'u32' to avoid additional conversions
  and align to 'u32' the corresponding param of __stm32_gpio_set().

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agodt-bindings: pincfg-node: Add properties 'skew-delay-{in,out}put-ps'
Antonio Borneo [Thu, 23 Oct 2025 13:26:52 +0000 (15:26 +0200)] 
dt-bindings: pincfg-node: Add properties 'skew-delay-{in,out}put-ps'

Add the properties 'skew-delay-input-ps' and 'skew-delay-output-ps'
to specify independent skew delay value for the two pin's directions.
Make the new properties unavailable when the existing property
'skew-delay' is selected.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: pinconf-generic: Add properties 'skew-delay-{in,out}put-ps'
Antonio Borneo [Thu, 23 Oct 2025 13:26:51 +0000 (15:26 +0200)] 
pinctrl: pinconf-generic: Add properties 'skew-delay-{in,out}put-ps'

Add the properties 'skew-delay-input-ps' and 'skew-delay-output-ps'
to the generic parameters used for parsing DT files. This allows to
specify the independent skew delay value for the two directions.
This enables drivers that use the generic pin configuration to get
the value passed through these new properties.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: pinconf-generic: Handle string values for generic properties
Antonio Borneo [Thu, 23 Oct 2025 13:26:50 +0000 (15:26 +0200)] 
pinctrl: pinconf-generic: Handle string values for generic properties

Allow a generic pinconf property to specify its argument as one of
the strings in a match list.
Convert the matching string to an integer value using the index in
the list, then keep using this value in the generic pinconf code.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: pinconf-generic: Fix minor typos in comments
Antonio Borneo [Thu, 23 Oct 2025 13:26:49 +0000 (15:26 +0200)] 
pinctrl: pinconf-generic: Fix minor typos in comments

s/specyfying/specifying/
s/propertity/property/

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: cix: Add pin-controller support for sky1
Gary Yang [Tue, 21 Oct 2025 07:04:09 +0000 (15:04 +0800)] 
pinctrl: cix: Add pin-controller support for sky1

There are two pin-controllers on Cix Sky1 platform.
one is used under S0 state, the other is used under S0 and S5 state.

Signed-off-by: Gary Yang <gary.yang@cixtech.com>
[Dropped pinctrl_provide_dummies()]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agodt-bindings: pinctrl: Add cix,sky1-pinctrl
Gary Yang [Tue, 21 Oct 2025 07:04:08 +0000 (15:04 +0800)] 
dt-bindings: pinctrl: Add cix,sky1-pinctrl

The pin-controller is used to control the Soc pins.
There are two pin-controllers on Cix Sky1 platform.
One is used under S0 state, the other is used under
S0 and S5 state.

Signed-off-by: Gary Yang <gary.yang@cixtech.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
6 weeks agopinctrl: renesas: rzg2l: Remove useless wrappers
Cosmin Tanislav [Wed, 22 Oct 2025 07:40:58 +0000 (10:40 +0300)] 
pinctrl: renesas: rzg2l: Remove useless wrappers

rzg2l_gpio_irq_set_type() and rzg2l_gpio_irqc_eoi() only call the
equivalent parent functions, replace their usage with the parent
functions and remove them.

Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20251022074100.1994447-1-cosmin-gabriel.tanislav.xa@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
7 weeks agoMAINTAINERS: add Microchip RISC-V pinctrl drivers/bindings to entry
Conor Dooley [Thu, 23 Oct 2025 17:15:01 +0000 (18:15 +0100)] 
MAINTAINERS: add Microchip RISC-V pinctrl drivers/bindings to entry

Add the new gpio2 and iomux0 drivers and bindings to the existing entry
for Microchip RISC-V devices.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agopinctrl: add polarfire soc iomux0 pinmux driver
Conor Dooley [Thu, 23 Oct 2025 17:15:00 +0000 (18:15 +0100)] 
pinctrl: add polarfire soc iomux0 pinmux driver

On Polarfire SoC, iomux0 is responsible for routing functions to either
Multiprocessor Subsystem (MSS) IOs or to the FPGA fabric, where they
can either interface with custom RTL or be routed to the FPGA fabric's
IOs. Add a driver for it.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agodt-bindings: pinctrl: document polarfire soc iomux0 pinmux
Conor Dooley [Thu, 23 Oct 2025 17:14:59 +0000 (18:14 +0100)] 
dt-bindings: pinctrl: document polarfire soc iomux0 pinmux

On Polarfire SoC, iomux0 is responsible for routing functions to either
Multiprocessor Subsystem (MSS) IOs or to the FPGA fabric, where they
can either interface with custom RTL or be routed to the FPGA fabric's
IOs. Document it.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agopinctrl: add pic64gx "gpio2" pinmux driver
Conor Dooley [Thu, 23 Oct 2025 17:14:58 +0000 (18:14 +0100)] 
pinctrl: add pic64gx "gpio2" pinmux driver

The pic64gx has a second pinmux "downstream" of the iomux0 pinmux. The
documentation for the SoC provides no name for this device, but it is
used to swap pins between either GPIO controller #2 or select other
functions, hence the "gpio2" name. Add a driver for it.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agodt-bindings: pinctrl: document pic64gx "gpio2" pinmux
Conor Dooley [Thu, 23 Oct 2025 17:14:57 +0000 (18:14 +0100)] 
dt-bindings: pinctrl: document pic64gx "gpio2" pinmux

The pic64gx has a second pinmux "downstream" of the iomux0 pinmux. The
documentation for the SoC provides no name for this device, but it is
used to swap pins between either GPIO controller #2 or select other
functions, hence the "gpio2" name. Currently there is no documentation
about what each bit actually does that is publicly available, nor (I
believe) what pins are affected. That info is as follows:

pin     role (1/0)
---     ----------
E14 MAC_0_MDC/GPIO_2_0
E15 MAC_0_MDIO/GPIO_2_1
F16 MAC_1_MDC/GPIO_2_2
F17 MAC_1_MDIO/GPIO_2_3
D19 SPI_0_CLK/GPIO_2_4
B18 SPI_0_SS0/GPIO_2_5
B10 CAN_0_RXBUS/GPIO_2_6
C14 PCIE_PERST_2#/GPIO_2_7
E18 PCIE_WAKE#/GPIO_2_8
D18 PCIE_PERST_1#/GPIO_2_9
E19 SPI_0_DO/GPIO_2_10
C7 SPI_0_DI/GPIO_2_11
D6 QSPI_SS0/GPIO_2_12
D7 QSPI_CLK (B)/GPIO_2_13
C9 QSPI_DATA0/GPIO_2_14
C10 QSPI_DATA1/GPIO_2_15
A5 QSPI_DATA2/GPIO_2_16
A6 QSPI_DATA3/GPIO_2_17
D8 MMUART_3_RXD/GPIO_2_18
D9 MMUART_3_TXD/GPIO_2_19
B8 MMUART_4_RXD/GPIO_2_20
A8 MMUART_4_TXD/GPIO_2_21
C12 CAN_1_TXBUS/GPIO_2_22
B12 CAN_1_RXBUS/GPIO_2_23
A11 CAN_0_TX_EBL_N/GPIO_2_24
A10 CAN_1_TX_EBL_N/GPIO_2_25
D11 MMUART_2_RXD/GPIO_2_26
C11 MMUART_2_TXD/GPIO_2_27
B9 CAN_0_TXBUS/GPIO_2_28

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agoMerge tag 'mpfs-pinctrl-binding-base' of https://git.kernel.org/pub/scm/linux/kernel...
Linus Walleij [Fri, 24 Oct 2025 09:07:47 +0000 (11:07 +0200)] 
Merge tag 'mpfs-pinctrl-binding-base' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into devel

mpfs pinctrl binding base

The pinctrl binding patch for iomux0 mpfs adds a ref to itself to the
syscon/mfd mss-top-sysreg binding, and therefore needs that file to
exist.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agopinctrl: renesas: rza1: Make mux_conf const in rza1_pin_mux_single()
Geert Uytterhoeven [Tue, 21 Oct 2025 08:06:05 +0000 (10:06 +0200)] 
pinctrl: renesas: rza1: Make mux_conf const in rza1_pin_mux_single()

The rza1_mux_conf object pointed to by the mux_conf parameter of
rza1_pin_mux_single() is never modified.  Make it const.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Link: https://patch.msgid.link/168e06bc57081aa3c42ff9aa2740a0a108df7d34.1761033950.git.geert+renesas@glider.be
7 weeks agodt-bindings: pinctrl: toshiba,visconti: Drop redundant functions type
Krzysztof Kozlowski [Wed, 22 Oct 2025 13:34:27 +0000 (15:34 +0200)] 
dt-bindings: pinctrl: toshiba,visconti: Drop redundant functions type

Referenced pinmux-node.yaml schema already defines type for "functions"
so $ref is redundant.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agopinctrl: pinmux: Add missing .function_is_gpio kerneldoc
Linus Walleij [Wed, 22 Oct 2025 13:23:42 +0000 (15:23 +0200)] 
pinctrl: pinmux: Add missing .function_is_gpio kerneldoc

This callback was undocumented, add the docs.

Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agodt-bindings: pinctrl: Convert bitmain,bm1880-pinctrl to DT schema
Rob Herring (Arm) [Mon, 13 Oct 2025 19:12:33 +0000 (14:12 -0500)] 
dt-bindings: pinctrl: Convert bitmain,bm1880-pinctrl to DT schema

Convert the bitmain,bm1880-pinctrl binding to DT schema format. It's a
straight-forward conversion.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agodt-bindings: pinctrl: Convert brcm,ns2-pinmux to DT schema
Rob Herring (Arm) [Mon, 13 Oct 2025 19:12:25 +0000 (14:12 -0500)] 
dt-bindings: pinctrl: Convert brcm,ns2-pinmux to DT schema

Convert the brcm,ns2-pinmux binding to DT schema format. It's a
straight-forward conversion.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agodt-bindings: pinctrl: Convert actions,s900-pinctrl to DT schema
Rob Herring (Arm) [Mon, 13 Oct 2025 19:12:16 +0000 (14:12 -0500)] 
dt-bindings: pinctrl: Convert actions,s900-pinctrl to DT schema

Convert the actions,s900-pinctrl binding to DT schema format. It's a
straight-forward conversion.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agodt-bindings: pinctrl: Convert actions,s700-pinctrl to DT schema
Rob Herring (Arm) [Mon, 13 Oct 2025 19:12:05 +0000 (14:12 -0500)] 
dt-bindings: pinctrl: Convert actions,s700-pinctrl to DT schema

Convert the actions,s700-pinctrl binding to DT schema format. It's a
straight-forward conversion.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
7 weeks agodt-bindings: soc: microchip: document the simple-mfd syscon on PolarFire SoC
Conor Dooley [Mon, 13 Oct 2025 17:45:33 +0000 (18:45 +0100)] 
dt-bindings: soc: microchip: document the simple-mfd syscon on PolarFire SoC

"mss-top-sysreg" contains clocks, pinctrl, resets, an interrupt controller
and more. At this point, only the reset controller child is described as
that's all that is described by the existing bindings.
The clock controller already has a dedicated node, and will retain it as
there are other clock regions, so like the mailbox, a compatible-based
lookup of the syscon is sufficient to keep the clock driver working as
before, so no child is needed. There's also an interrupt multiplexing
service provided by this syscon, for which there is work in progress at
[1].

Link: https://lore.kernel.org/linux-gpio/20240723-uncouple-enforcer-7c48e4a4fefe@wendy/
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
8 weeks agopinctrl: tegra20: register csus_mux clock
Svyatoslav Ryhel [Wed, 8 Oct 2025 07:30:23 +0000 (10:30 +0300)] 
pinctrl: tegra20: register csus_mux clock

Add csus_mux for further use as the csus clock parent, similar to how the
cdev1 and cdev2 muxes are utilized. Additionally, constify the cdev parent
name lists to resolve checkpatch warnings.

Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
8 weeks agopinctrl: renesas: Remove unneeded semicolons
Geert Uytterhoeven [Wed, 24 Sep 2025 12:47:52 +0000 (14:47 +0200)] 
pinctrl: renesas: Remove unneeded semicolons

Semicolons after end of function braces are not needed, remove them.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/99db8c1bfb64980b54a4b5c4988c7935609133e1.1758718027.git.geert+renesas@glider.be
8 weeks agopinctrl: renesas: rzg2l: Remove extra semicolons
Cosmin Tanislav [Tue, 23 Sep 2025 17:49:50 +0000 (20:49 +0300)] 
pinctrl: renesas: rzg2l: Remove extra semicolons

Semicolons after end of function braces are unnecessary, remove them.

Signed-off-by: Cosmin Tanislav <cosmin-gabriel.tanislav.xa@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20250923174951.1136259-1-cosmin-gabriel.tanislav.xa@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
8 weeks agopinctrl: renesas: rzg2l: Fix PMC restore
Biju Das [Sun, 21 Sep 2025 11:15:52 +0000 (12:15 +0100)] 
pinctrl: renesas: rzg2l: Fix PMC restore

PMC restore needs unlocking the register using the PWPR register.

Fixes: ede014cd1ea6422d ("pinctrl: renesas: rzg2l: Add function pointer for PMC register write")
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20250921111557.103069-2-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
8 weeks agopinctrl: renesas: Drop duplicate newlines
Marek Vasut [Thu, 18 Sep 2025 20:04:01 +0000 (22:04 +0200)] 
pinctrl: renesas: Drop duplicate newlines

Remove duplicate newlines.  No functional change.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20250918200409.37284-1-marek.vasut+renesas@mailbox.org
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
8 weeks agopinctrl: renesas: rzg2l: Drop unnecessary pin configurations
Biju Das [Tue, 9 Sep 2025 10:42:44 +0000 (11:42 +0100)] 
pinctrl: renesas: rzg2l: Drop unnecessary pin configurations

There is no need to reconfigure a pin if the pin's configuration
values are the same as the reset values.  E.g. the PS0 pin configuration
for the NMI function is PMC = 1 and PFC = 0, which is the same as the
reset values.  Currently the code is first setting it to GPIO HI-Z state
and then again reconfiguring to the NMI function, leading to spurious
IRQs.  Fix this by dropping unnecessary pin configuration from the
driver.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20250909104247.3309-1-biju.das.jz@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
8 weeks agopinctrl: renesas: rzg2l: Fix ISEL restore on resume
Claudiu Beznea [Fri, 12 Sep 2025 09:53:08 +0000 (12:53 +0300)] 
pinctrl: renesas: rzg2l: Fix ISEL restore on resume

Commit 1d2da79708cb ("pinctrl: renesas: rzg2l: Avoid configuring ISEL in
gpio_irq_{en,dis}able*()") dropped the configuration of ISEL from
struct irq_chip::{irq_enable, irq_disable} APIs and moved it to
struct gpio_chip::irq::{child_to_parent_hwirq,
child_irq_domain_ops::free} APIs to fix spurious IRQs.

After commit 1d2da79708cb ("pinctrl: renesas: rzg2l: Avoid configuring ISEL
in gpio_irq_{en,dis}able*()"), ISEL was no longer configured properly on
resume. This is because the pinctrl resume code used
struct irq_chip::irq_enable  (called from rzg2l_gpio_irq_restore()) to
reconfigure the wakeup interrupts. Some drivers (e.g. Ethernet) may also
reconfigure non-wakeup interrupts on resume through their own code,
eventually calling struct irq_chip::irq_enable.

Fix this by adding ISEL configuration back into the
struct irq_chip::irq_enable API and on resume path for wakeup interrupts.

As struct irq_chip::irq_enable needs now to lock to update the ISEL,
convert the struct rzg2l_pinctrl::lock to a raw spinlock and replace the
locking API calls with the raw variants. Otherwise the lockdep reports
invalid wait context when probing the adv7511 module on RZ/G2L:

 [ BUG: Invalid wait context ]
 6.17.0-rc5-next-20250911-00001-gfcfac22533c9 #18 Not tainted
 -----------------------------
 (udev-worker)/165 is trying to lock:
 ffff00000e3664a8 (&pctrl->lock){....}-{3:3}, at: rzg2l_gpio_irq_enable+0x38/0x78
 other info that might help us debug this:
 context-{5:5}
 3 locks held by (udev-worker)/165:
 #0: ffff00000e890108 (&dev->mutex){....}-{4:4}, at: __driver_attach+0x90/0x1ac
 #1: ffff000011c07240 (request_class){+.+.}-{4:4}, at: __setup_irq+0xb4/0x6dc
 #2: ffff000011c070c8 (lock_class){....}-{2:2}, at: __setup_irq+0xdc/0x6dc
 stack backtrace:
 CPU: 1 UID: 0 PID: 165 Comm: (udev-worker) Not tainted 6.17.0-rc5-next-20250911-00001-gfcfac22533c9 #18 PREEMPT
 Hardware name: Renesas SMARC EVK based on r9a07g044l2 (DT)
 Call trace:
 show_stack+0x18/0x24 (C)
 dump_stack_lvl+0x90/0xd0
 dump_stack+0x18/0x24
 __lock_acquire+0xa14/0x20b4
 lock_acquire+0x1c8/0x354
 _raw_spin_lock_irqsave+0x60/0x88
 rzg2l_gpio_irq_enable+0x38/0x78
 irq_enable+0x40/0x8c
 __irq_startup+0x78/0xa4
 irq_startup+0x108/0x16c
 __setup_irq+0x3c0/0x6dc
 request_threaded_irq+0xec/0x1ac
 devm_request_threaded_irq+0x80/0x134
 adv7511_probe+0x928/0x9a4 [adv7511]
 i2c_device_probe+0x22c/0x3dc
 really_probe+0xbc/0x2a0
 __driver_probe_device+0x78/0x12c
 driver_probe_device+0x40/0x164
 __driver_attach+0x9c/0x1ac
 bus_for_each_dev+0x74/0xd0
 driver_attach+0x24/0x30
 bus_add_driver+0xe4/0x208
 driver_register+0x60/0x128
 i2c_register_driver+0x48/0xd0
 adv7511_init+0x5c/0x1000 [adv7511]
 do_one_initcall+0x64/0x30c
 do_init_module+0x58/0x23c
 load_module+0x1bcc/0x1d40
 init_module_from_file+0x88/0xc4
 idempotent_init_module+0x188/0x27c
 __arm64_sys_finit_module+0x68/0xac
 invoke_syscall+0x48/0x110
 el0_svc_common.constprop.0+0xc0/0xe0
 do_el0_svc+0x1c/0x28
 el0_svc+0x4c/0x160
 el0t_64_sync_handler+0xa0/0xe4
 el0t_64_sync+0x198/0x19c

Having ISEL configuration back into the struct irq_chip::irq_enable API
should be safe with respect to spurious IRQs, as in the probe case IRQs
are enabled anyway in struct gpio_chip::irq::child_to_parent_hwirq. No
spurious IRQs were detected on suspend/resume, boot, ethernet link
insert/remove tests (executed on RZ/G3S). Boot, ethernet link
insert/remove tests were also executed successfully on RZ/G2L.

Fixes: 1d2da79708cb ("pinctrl: renesas: rzg2l: Avoid configuring ISEL in gpio_irq_{en,dis}able*(")
Cc: stable@vger.kernel.org
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20250912095308.3603704-1-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2 months agopinctrl: Demote subsystem banner message
Linus Walleij [Tue, 7 Oct 2025 13:18:50 +0000 (15:18 +0200)] 
pinctrl: Demote subsystem banner message

There is no reason to print any "hello world" from pin control
unless (maybe) if we are debugging.

Drop the banner.

Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 months agodt-bindings: pinctrl: qcom,sm6115-lpass-lpi: add QCM2290 compatible
Alexey Klimov [Tue, 7 Oct 2025 02:03:29 +0000 (03:03 +0100)] 
dt-bindings: pinctrl: qcom,sm6115-lpass-lpi: add QCM2290 compatible

Add a compatible for the LPASS LPI pin controller on QCM2290. It seems
to be compatible with sm6115 LPASS pinctrl.

Cc: Konrad Dybcio <konradybcio@kernel.org>
Cc: Srinivas Kandagatla <srini@kernel.org>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 months agopinctrl: qcom: add the tlmm driver for Kaanapali platforms
Jingyi Wang [Wed, 24 Sep 2025 23:16:04 +0000 (16:16 -0700)] 
pinctrl: qcom: add the tlmm driver for Kaanapali platforms

Add support for Kaanapali TLMM configuration and control via the pinctrl
framework.

Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 months agodt-bindings: pinctrl: describe Kaanapali TLMM
Jingyi Wang [Wed, 24 Sep 2025 23:16:03 +0000 (16:16 -0700)] 
dt-bindings: pinctrl: describe Kaanapali TLMM

The Top Level Mode Multiplexer (TLMM) in the Kaanapali SoC provide GPIO and
pinctrl functionality for UFS, SDC and 217 GPIO pins.

Add a DeviceTree binding to describe the Kaanapali TLMM block.

Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 months agodt-bindings: pinctrl: Convert marvell,armada-3710-(sb|nb)-pinctrl to DT schema
Rob Herring (Arm) [Thu, 25 Sep 2025 22:18:50 +0000 (17:18 -0500)] 
dt-bindings: pinctrl: Convert marvell,armada-3710-(sb|nb)-pinctrl to DT schema

Convert the marvell,armada3710-(sb|nb)-pinctrl binding to DT schema
format. The binding includes the "marvell,armada-3700-xtal-clock"
subnode which is simple enough to include here.

Mark interrupt-controller/#interrupt-cells as required as the users have
them and the h/w is either capable of interrupts or not.

As this syscon has 2 register ranges, syscon-common.yaml needs to be
updated to drop the restriction of 1 register entry.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 months agodt-bindings: pinctrl: Convert Marvell Berlin pinctrl to DT schema
Rob Herring (Arm) [Wed, 24 Sep 2025 22:31:59 +0000 (17:31 -0500)] 
dt-bindings: pinctrl: Convert Marvell Berlin pinctrl to DT schema

Convert the Marvell/Synaptics Berlin pinctrl binding to DT schema
format. The "reg" property was not documented for the newer SoCs.
Otherwise, it's a straight-forward conversion.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 months agopinctrl: qcom: spmi-gpio: add support for {LV_VIN2, MV_VIN3}_CLK subtypes
Subbaraman Narayanamurthy [Wed, 24 Sep 2025 17:01:04 +0000 (22:31 +0530)] 
pinctrl: qcom: spmi-gpio: add support for {LV_VIN2, MV_VIN3}_CLK subtypes

Add support for SPMI PMIC GPIO subtypes GPIO_LV_VIN2_CLK and
GPIO_MV_VIN3_CLK.

Signed-off-by: Subbaraman Narayanamurthy <subbaraman.narayanamurthy@oss.qualcomm.com>
Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>
Signed-off-by: Kamal Wadhwa <kamal.wadhwa@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2 months agopinctrl: qcom: spmi-gpio: Add PMCX0102, PMK8850 & PMH01XX PMICs support
Anjelique Melendez [Wed, 24 Sep 2025 17:01:03 +0000 (22:31 +0530)] 
pinctrl: qcom: spmi-gpio: Add PMCX0102, PMK8850 & PMH01XX PMICs support

Add support for PMCX0102, PMH0101, PMH0104, PMH0110 and PMK8850 PMIC
GPIOs with adding appropriate compatible strings.

Signed-off-by: Anjelique Melendez <anjelique.melendez@oss.qualcomm.com>
Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>
Signed-off-by: Kamal Wadhwa <kamal.wadhwa@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>