Bartosz Golaszewski
cc154c00a6
pinctrl: equilibrium: use pinmux_generic_add_pinfunction()
...
Instead of passing individual fields of struct pinfunction to
pinmux_generic_add_function(), use pinmux_generic_add_pinfunction() and
pass the entire structure directly.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-3-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-19 17:59:57 +02:00
Bartosz Golaszewski
431b68ae73
pinctrl: provide pinmux_generic_add_pinfunction()
...
Several drivers call pinmux_generic_add_function() passing it the
contents of struct pinfunction as first three arguments. We can make
this shorter by simply providing an interface allowing to pass the
address of struct pinfunction directly when adding a new function.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-2-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-19 17:59:48 +02:00
Bartosz Golaszewski
dd47155a0e
pinctrl: pinmux: open-code PINCTRL_FUNCTION_DESC()
...
This macro is only used in one place and pin function descriptors should
only be created by pinmux core so there's no point in exposing it to
other pinctrl users. Remove the macro and hand-code its functionality.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Reviewed-by: Bjorn Andersson <andersson@kernel.org >
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-1-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-19 17:59:35 +02:00
Bartosz Golaszewski
63149542dc
pinctrl: ma35: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250717125758.53141-1-brgl@bgdev.pl
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-19 17:36:40 +02:00
Linus Walleij
cc43eea3e1
Merge tag 'samsung-pinctrl-6.17' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel
...
Samsung pinctrl drivers changes for v6.17
Add support for programming wake up for Google GS101 SoC pin
controllers, so the SoC can be properly woken up from low power states.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-15 15:59:48 +02:00
Linus Walleij
2427d69c3d
Merge tag 'intel-pinctrl-v6.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into devel
...
intel-pinctrl for v6.16-1
* Use new GPIO line value setter callbacks (Bartosz Golaszewski)
* Add missed export.h to the main driver
The following is an automated git shortlog grouped by driver:
baytrail:
- use new GPIO line value setter callbacks
cherryview:
- use new GPIO line value setter callbacks
intel:
- fix build warnings about export.h
- use new GPIO line value setter callbacks
lynxpoint:
- use new GPIO line value setter callbacks
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-14 17:55:30 +02:00
Clément Le Goffic
ebbe8bfe07
MAINTAINERS: add Clément Le Goffic as STM32 HDP maintainer
...
Add Clément Le Goffic as STM32 HDP maintainer.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com >
Link: https://lore.kernel.org/20250711-hdp-upstream-v7-3-faeecf7aaee1@foss.st.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-14 17:50:58 +02:00
Clément Le Goffic
8eabf5ddbb
pinctrl: stm32: Introduce HDP driver
...
This patch introduce the driver for the Hardware Debug Port available on
STM32MP platforms. The HDP allows the observation of internal SoC
signals by using multiplexers. Each HDP port can provide up to 16
internal signals (one of them can be software controlled as a GPO).
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com >
Link: https://lore.kernel.org/20250711-hdp-upstream-v7-2-faeecf7aaee1@foss.st.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-14 17:50:58 +02:00
Clément Le Goffic
912275c325
dt-bindings: pinctrl: stm32: Introduce HDP
...
'HDP' stands for Hardware Debug Port, it is an hardware block in
STMicrolectronics' MPUs that let the user decide which internal SoC's
signal to observe.
It provides 8 ports and for each port there is up to 16 different
signals that can be output.
Signals are different for each MPU.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com >
Link: https://lore.kernel.org/20250711-hdp-upstream-v7-1-faeecf7aaee1@foss.st.com
[Fixed up Clement's new email address]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-14 17:50:58 +02:00
Luca Weiss
620d3d1025
pinctrl: qcom: Add Milos pinctrl driver
...
Add pinctrl driver for TLMM block found in the Milos SoC.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com >
Reviewed-by: Bjorn Andersson <andersson@kernel.org >
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com >
Link: https://lore.kernel.org/20250702-sm7635-pinctrl-v2-2-c138624b9924@fairphone.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-14 17:50:58 +02:00
Luca Weiss
fd7dac34fd
dt-bindings: pinctrl: document the Milos Top Level Mode Multiplexer
...
Document the Top Level Mode Multiplexer on the Milos Platform.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com >
Reviewed-by: Rob Herring (Arm) <robh@kernel.org >
Link: https://lore.kernel.org/20250702-sm7635-pinctrl-v2-1-c138624b9924@fairphone.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-11 20:26:08 +02:00
Luca Weiss
52e06d25bd
pinctrl: qcom: spmi: Add PM7550
...
PM7550 is a PMIC, featuring 12 GPIOs. Describe it.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com >
Link: https://lore.kernel.org/20250709-sm7635-pmxr2230-v2-4-09777dab0a95@fairphone.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-11 20:22:53 +02:00
Luca Weiss
2feab53ac4
dt-bindings: pinctrl: qcom,pmic-gpio: Add PM7550 support
...
Update the Qualcomm Technologies, Inc. PMIC GPIO binding documentation
to include the compatible string for the PM7550 PMICs.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com >
Acked-by: Rob Herring (Arm) <robh@kernel.org >
Link: https://lore.kernel.org/20250709-sm7635-pmxr2230-v2-3-09777dab0a95@fairphone.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-11 20:22:09 +02:00
Luca Weiss
19dca764db
pinctrl: qcom: spmi: Add PMIV0104
...
PMIV0104 is a PMIC, featuring 10 GPIOs. Describe it.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com >
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com >
Link: https://lore.kernel.org/20250709-sm7635-pmiv0104-v2-3-ebf18895edd6@fairphone.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-11 20:20:19 +02:00
Luca Weiss
ac6242b7ba
dt-bindings: pinctrl: qcom,pmic-gpio: Add PMIV0104 support
...
Update the Qualcomm Technologies, Inc. PMIC GPIO binding documentation
to include the compatible string for the PMIV0104 PMICs.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com >
Link: https://lore.kernel.org/20250709-sm7635-pmiv0104-v2-2-ebf18895edd6@fairphone.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-11 20:20:10 +02:00
Mukesh Ojha
0b075c0110
pinmux: fix race causing mux_owner NULL with active mux_usecount
...
commit 5a3e85c3c3 ("pinmux: Use sequential access to access
desc->pinmux data") tried to address the issue when two client of the
same gpio calls pinctrl_select_state() for the same functionality, was
resulting in NULL pointer issue while accessing desc->mux_owner.
However, issue was not completely fixed due to the way it was handled
and it can still result in the same NULL pointer.
The issue occurs due to the following interleaving:
cpu0 (process A) cpu1 (process B)
pin_request() { pin_free() {
mutex_lock()
desc->mux_usecount--; //becomes 0
..
mutex_unlock()
mutex_lock(desc->mux)
desc->mux_usecount++; // becomes 1
desc->mux_owner = owner;
mutex_unlock(desc->mux)
mutex_lock(desc->mux)
desc->mux_owner = NULL;
mutex_unlock(desc->mux)
This sequence leads to a state where the pin appears to be in use
(`mux_usecount == 1`) but has no owner (`mux_owner == NULL`), which can
cause NULL pointer on next pin_request on the same pin.
Ensure that updates to mux_usecount and mux_owner are performed
atomically under the same lock. Only clear mux_owner when mux_usecount
reaches zero and no new owner has been assigned.
Fixes: 5a3e85c3c3 ("pinmux: Use sequential access to access desc->pinmux data")
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com >
Link: https://lore.kernel.org/20250708-pinmux-race-fix-v2-1-8ae9e8a0d1a1@oss.qualcomm.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-11 20:19:55 +02:00
Linus Walleij
ac51d04144
Merge tag 'renesas-pinctrl-for-v6.17-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
...
pinctrl: renesas: Updates for v6.17 (take two)
- Sort Kconfig symbols and improve their descriptions,
- Simplify PINCTRL_RZV2M logic.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-11 20:12:20 +02:00
Peter Griffin
683d532dfc
pinctrl: samsung: Fix gs101 irq chip
...
When adding the dedicated gs101_wkup_irq_chip struct to support the eint
wakeup mask the .eint_con, eint_mask and .eint_pend fields were missed. The
result is that irqs on gs101 for the buttons etc are broken.
Reported-by: André Draszik <andre.draszik@linaro.org >
Fixes: 2642f55d44 ("pinctrl: samsung: add support for gs101 wakeup mask programming")
Signed-off-by: Peter Griffin <peter.griffin@linaro.org >
Tested-by: André Draszik <andre.draszik@linaro.org >
Link: https://lore.kernel.org/r/20250702-fix-gs101-irqchip-v1-1-ccc84b44ad72@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
2025-07-05 09:35:22 +02:00
Paul Kocialkowski
64daf13494
pinctrl: sunxi: v3s: Fix wrong comment about UART2 pinmux
...
The original comment doesn't match the pin attribution, probably due
to a hasty copy/paste.
Signed-off-by: Paul Kocialkowski <paulk@sys-base.io >
Reviewed-by: Icenowy Zheng <uwu@icenowy.me >
Link: https://lore.kernel.org/20250701201124.812882-2-paulk@sys-base.io
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-04 10:00:35 +02:00
Linus Walleij
eaa655c2e5
Merge tag 'renesas-pinctrl-for-v6.17-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
...
pinctrl: renesas: Updates for v6.17
- Use the new GPIO line value setter callbacks,
- Validate pins before setting a mux function on RZ/G2L.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-04 00:22:48 +02:00
Jack Ping CHNG
b306791037
pinctrl: equilibrium: Add request and free hooks
...
Add request and free gpio_chip hooks to support
gpio allocation and release in the driver.
Signed-off-by: Jack Ping CHNG <jchng@maxlinear.com >
Link: https://lore.kernel.org/20250627005419.3124660-1-jchng@maxlinear.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-04 00:16:33 +02:00
Antonio Borneo
b838fb5f16
dt-bindings: pinctrl: stm32: Add missing blank lines
...
Separate the properties through a blank line.
Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com >
Acked-by: Rob Herring (Arm) <robh@kernel.org >
Link: https://lore.kernel.org/20250610151837.299244-6-antonio.borneo@foss.st.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-04 00:03:55 +02:00
Frank Li
d3eed11b9c
dt-bindings: pinctrl: convert nxp,lpc1850-scu.txt to yaml format
...
Convert nxp,lpc1850-scu.txt to yaml format.
Additional changes:
- keep child name *_cfg to align legancy very old platform dts file.
- remove label in examples.
- just keep one examples.
Signed-off-by: Frank Li <Frank.Li@nxp.com >
Reviewed-by: Rob Herring (Arm) <robh@kernel.org >
Link: https://lore.kernel.org/20250606160359.1356555-1-Frank.Li@nxp.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-04 00:00:03 +02:00
Yuanjie Yang
56ffb63749
pinctrl: qcom: add multi TLMM region option parameter
...
Add support for selecting multiple TLMM regions using the
tlmm-test tool.
The current implementation only selects the TLMM Node region
0, which can lead to incorrect region selection.
QCS 615 TLMM Node dts reg:
tlmm: pinctrl@3100000 {
compatible = "qcom,qcs615-tlmm";
reg = <0x0 0x03100000 0x0 0x300000>,
<0x0 0x03500000 0x0 0x300000>,
<0x0 0x03d00000 0x0 0x300000>;
reg-names = "east",
"west",
"south";
QCS615 gpio57 is in the south region with an offset of 0x39000,
and its address is 0x3d39000. However, the default region selection
is region 0 (east region), resulting in a wrong calculated address
of 0x3139000.
Add a tlmm option parameter named tlmm_reg_name to select the region.
If the user does not input the parameter, the default region is 0.
Signed-off-by: Yuanjie Yang <quic_yuanjiey@quicinc.com >
Link: https://lore.kernel.org/20250624090600.91063-1-quic_yuanjiey@quicinc.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-07-03 23:44:21 +02:00
Geert Uytterhoeven
7000167796
pinctrl: renesas: Simplify PINCTRL_RZV2M logic
...
PINCTRL_RZV2M is selected by ARCH_R9A09G011, hence there is no need to
depend on the latter. Move the dependency on COMPILE_TEST to the symbol
prompt, like is done for all other auto-selected pin control symbols.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com >
Link: https://lore.kernel.org/d74843e06f73cd4c6e822d65f606e6042a50a0b7.1750945516.git.geert+renesas@glider.be
2025-07-02 20:16:45 +02:00
Kuninori Morimoto
8ca43e41fc
pinctrl: renesas: Unify config naming
...
Renesas SoC has chip number / chip name. Some SoC is using chip number,
and some SoC is using chip name on current Renesas pincontrol Kconfig.
Let's unify "pin control support for ${CHIP_NUMBER} (${CHIP_NAME}).
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com >
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/87bjqdraf1.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
2025-07-02 20:14:47 +02:00
Kuninori Morimoto
93e20e2b7a
pinctrl: renesas: Sort Renesas Kconfig configs
...
Current Renesas Kconfig is randomly arranged. Let's sort it by
alphabetical/number order, same as Makefile.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com >
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/87cyatrafh.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
2025-07-02 20:13:42 +02:00
Peter Griffin
2642f55d44
pinctrl: samsung: add support for gs101 wakeup mask programming
...
gs101 differs to other currently supported SoCs in that it has 3 wakeup
mask registers for the 67 external wakeup interrupt pins in alive and
far_alive.
EINT_WAKEUP_MASK 0x3A80 EINT[31:0]
EINT_WAKEUP_MASK2 0x3A84 EINT[63:32]
EINT_WAKEUP_MASK3 0x3A88 EINT[66:64]
Add gs101 specific callbacks and a dedicated gs101_wkup_irq_chip struct to
handle these differences.
The current wakeup mask with upstream is programmed as
WAKEUP_MASK0[0x3A80] value[0xFFFFFFFF]
WAKEUP_MASK1[0x3A84] value[0xF2FFEFFF]
WAKEUP_MASK2[0x3A88] value[0xFFFFFFFF]
Which corresponds to the following wakeup sources:
gpa7-3 vol down
gpa8-1 vol up
gpa10-1 power
gpa8-2 typec-int
Signed-off-by: Peter Griffin <peter.griffin@linaro.org >
Link: https://lore.kernel.org/r/20250619-gs101-eint-mask-v1-2-89438cfd7499@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
2025-06-25 16:17:05 +02:00
Peter Griffin
c8edb80494
pinctrl: samsung: rename exynosautov920_retention_data to no_retention_data
...
To avoid having an exact copy of this struct for gs101 rename it and use it
for both SoCs for eint banks.
The purpose of this for exynosautov920 and gs101 is to obtain the PMU
syscon for writing the calculated WAKEUP_MASK register(s).
Signed-off-by: Peter Griffin <peter.griffin@linaro.org >
Link: https://lore.kernel.org/r/20250619-gs101-eint-mask-v1-1-89438cfd7499@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
2025-06-25 16:17:05 +02:00
Linus Walleij
4ab401099d
pinctrl: amlogic: Staticize some local structs
...
Sparse complains:
sparse warnings: (new ones prefixed by >>)
>> drivers/pinctrl/meson/pinctrl-amlogic-a4.c:126:24: sparse: sparse:
symbol 'multi_mux_s7' was not declared. Should it be static?
>> drivers/pinctrl/meson/pinctrl-amlogic-a4.c:135:28: sparse: sparse:
symbol 's7_priv_data' was not declared. Should it be static?
>> drivers/pinctrl/meson/pinctrl-amlogic-a4.c:140:24: sparse: sparse:
symbol 'multi_mux_s6' was not declared. Should it be static?
>> drivers/pinctrl/meson/pinctrl-amlogic-a4.c:154:28: sparse: sparse:
symbol 's6_priv_data' was not declared. Should it be static?
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202506122145.wWAtKBoy-lkp@intel.com/
Cc: Xianwei Zhao <xianwei.zhao@amlogic.com >
Fixes: 1f8e5dfdda ("pinctrl: meson: support amlogic S6/S7/S7D SoC")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/20250624-amlogic-a4-fix-v1-1-03f0856d10cb@linaro.org
2025-06-24 21:51:57 +02:00
Colin Ian King
6cb0e9da94
pinctrl: eswin: Fix unsigned comparison to less than zero issue
...
The u32 variable voltage is being compared to less than zero and
this can never be true. Fix this by making voltage an int type which
is the same type as the return from the call to regulator_get_voltage.
Fixes: 5b797bcc00 ("pinctrl: eswin: Add EIC7700 pinctrl driver")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Link: https://lore.kernel.org/20250623222004.280928-1-colin.i.king@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:37:49 +02:00
Ze Huang
d94a32ac68
pinctrl: canaan: k230: Fix order of DT parse and pinctrl register
...
Move DT parse before pinctrl register. This ensures that device tree
parsing is done before calling devm_pinctrl_register() to prevent using
uninitialized pin resources.
Fixes: 545887eab6 ("pinctrl: canaan: Add support for k230 SoC")
Reported-by: Yao Zi <ziyao@disroot.org >
Signed-off-by: Ze Huang <huangze@whut.edu.cn >
Link: https://lore.kernel.org/20250624-k230-return-check-v1-2-6b4fc5ba0c41@whut.edu.cn
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:36:15 +02:00
Ze Huang
65bd0be486
pinctrl: canaan: k230: add NULL check in DT parse
...
Add a NULL check for the return value of of_get_property() when
retrieving the "pinmux" property in the group parser. This avoids
a potential NULL pointer dereference if the property is missing
from the device tree node.
Also fix a typo ("sintenel") in the device ID match table comment,
correcting it to "sentinel".
Fixes: 545887eab6 ("pinctrl: canaan: Add support for k230 SoC")
Reported-by: Yao Zi <ziyao@disroot.org >
Signed-off-by: Ze Huang <huangze@whut.edu.cn >
Link: https://lore.kernel.org/20250624-k230-return-check-v1-1-6b4fc5ba0c41@whut.edu.cn
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:36:14 +02:00
Da Xue
b58ea88d30
pinctrl: meson-g12a: add g12b pwm groups
...
G12B and SM1 have additional PWM pinmuxes for b, c, and d.
Signed-off-by: Da Xue <da@libre.computer >
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org >
Link: https://lore.kernel.org/20250619022337.43900-1-da@libre.computer
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:28:46 +02:00
Arnd Bergmann
c0d03cdfac
pinctrl: zynq: add CONFIG_OF dependency
...
The zynq driver can be enabled for compile-testing on builds without
CONFIG_OF, leading to a link error:
ld.lld-21: error: undefined symbol: pinconf_generic_dt_node_to_map
referenced by pinconf-generic.h:231 (/home/arnd/arm-soc/include/linux/pinctrl/pinconf-generic.h:231)
drivers/pinctrl/pinctrl-zynq.o:(pinconf_generic_dt_node_to_map_all) in archive vmlinux.a
Prevent this with the proper compile time dependency.
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202506212021.deAhuaWr-lkp@intel.com/
Fixes: 1982621dec ("pinctrl: Allow compile testing for K210, TB10X and ZYNQ")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Link: https://lore.kernel.org/20250620130814.2580678-1-arnd@kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:23:50 +02:00
Yuan Chen
8f6f303551
pinctrl: berlin: fix memory leak in berlin_pinctrl_build_state()
...
In the original implementation, krealloc() failure handling incorrectly
assigned the original memory pointer to NULL after kfree(), causing a
memory leak when reallocation failed.
Fixes: de845036f9 ("pinctrl: berlin: fix error return code of berlin_pinctrl_build_state()")
Signed-off-by: Yuan Chen <chenyuan@kylinos.cn >
Link: https://lore.kernel.org/20250620015343.21494-1-chenyuan_fl@163.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:17:11 +02:00
Yuan Chen
e3507c56cb
pinctrl: sunxi: Fix memory leak on krealloc failure
...
In sunxi_pctrl_dt_node_to_map(), when krealloc() fails to resize
the pinctrl_map array, the function returns -ENOMEM directly
without freeing the previously allocated *map buffer. This results
in a memory leak of the original kmalloc_array allocation.
Fixes: e11dee2e98 ("pinctrl: sunxi: Deal with configless pins")
Signed-off-by: Yuan Chen <chenyuan@kylinos.cn >
Link: https://lore.kernel.org/20250620012708.16709-1-chenyuan_fl@163.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:17:01 +02:00
Bartosz Golaszewski
b4102e3524
pinctrl: aw9523: fix mutex unlock in error path
...
We must unlock the mutex *after* the `out` label or we'd trigger a
deadlock in error path.
Fixes: dffe286e24 ("pinctrl: aw9523: use new GPIO line value setter callbacks")
Reported-by: kernel test robot <lkp@intel.com >
Reported-by: Dan Carpenter <dan.carpenter@linaro.org >
Closes: https://lore.kernel.org/r/202506191952.A03cvn22-lkp@intel.com/
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250619173537.64298-1-brgl@bgdev.pl
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:11:02 +02:00
Shiji Yang
4b443bbcd1
pinctrl: falcon: mark pinctrl_falcon_init() as static
...
Fix the following missing-prototypes build warning:
drivers/pinctrl/pinctrl-falcon.c:508:12: error: no previous prototype for 'pinctrl_falcon_init' [-Werror=missing-prototypes]
508 | int __init pinctrl_falcon_init(void)
| ^~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com >
Link: https://lore.kernel.org/OSBPR01MB167014AF54EF9818CB98C83BBC72A@OSBPR01MB1670.jpnprd01.prod.outlook.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-24 21:01:31 +02:00
Lad Prabhakar
5216103557
pinctrl: renesas: rzg2l: Validate pins before setting mux function
...
Ensure only valid pins are configured by validating pin mappings before
setting the mux function.
Rename rzg2l_validate_gpio_pin() to rzg2l_validate_pin() to reflect its
broader purpose validating both GPIO pins and muxed pins. This helps
avoid invalid configurations.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com >
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be >
Link: https://lore.kernel.org/20250616132750.216368-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
2025-06-19 19:25:20 +02:00
Linus Walleij
62be3d6e48
Merge tag 'gpio-mmio-bgpiof-no-input-flag-for-v6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into devel
...
Immutable tag for the pinctrl tree to pull from
Add the BGPIOF_NO_INPUT to the gpio-mmio API.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-19 09:17:10 +02:00
Clément Le Goffic
deefc70834
gpio: mmio: add BGPIOF_NO_INPUT flag for GPO gpiochip
...
When using bgpio_init with a gpiochip acting as a GPO (output only), the
gpiochip ops `direction_input` was set to `bgpio_simple_dir_in` by
default but we have no input ability.
Adding this flag allows to set a valid ops for the `direction_output`
ops without setting a valid ops for `direction_input` by default.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com >
Link: https://lore.kernel.org/r/20250613-hdp-upstream-v5-1-6fd6f0dc527c@foss.st.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-19 09:05:33 +02:00
Bartosz Golaszewski
9a40347181
pinctrl: amdisp: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-16-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:38 +02:00
Bartosz Golaszewski
b8cd87c0e9
pinctrl: as3722: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-15-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:38 +02:00
Bartosz Golaszewski
5956a3a973
pinctrl: sunxi: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-14-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:38 +02:00
Bartosz Golaszewski
84b91ca38f
pinctrl: keembay: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-13-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:38 +02:00
Bartosz Golaszewski
d9727b4851
pinctrl: spear: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-12-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:38 +02:00
Bartosz Golaszewski
dfdbce9649
pinctrl: pic32: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-11-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:37 +02:00
Bartosz Golaszewski
72c236f78e
pinctrl: apple: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Reviewed-by: Janne Grunau <j@jannau.net >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-10-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:37 +02:00
Bartosz Golaszewski
66a0708111
pinctrl: digicolor: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Link: https://lore.kernel.org/20250612-gpiochip-set-rv-pinctrl-remaining-v1-9-556b0a530cd4@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2025-06-18 14:08:37 +02:00