[PATCH v2] pinctrl: qcom: ipq5018: update PWM groups and corresponding pin functions

From: George Moussalem via B4 Relay

Date: Mon Sep 28 2026 - 05:53:37 EST


From: George Moussalem <george.moussalem@xxxxxxxxxxx>

On multiple Linksys routers, GPIOs 1, 30, and 46 drive the PWM LED on
the PWM1, PWM3, and PWM0 channels, respectively.
Update the corresponding PWM groups to include these GPIOs and allocate
the PWM functions to empty slots in the relevant pin groups.

Signed-off-by: George Moussalem <george.moussalem@xxxxxxxxxxx>
---
Changes in v2:
- Updated the commit title and message to reflect this isn't a fix for a
regression but rather an update for specific IPQ5018 boards.
- Link to v1: https://lore.kernel.org/r/20260924-ipq5018-pwm-functions-v1-1-8990a4e85b2f@xxxxxxxxxxx
---
Changes in v2:
- Updated the commit title and message to reflect this isn't a fix for a
regression but rather an update for specific IPQ5018 boards.
- Link to v1: https://lore.kernel.org/r/20260924-ipq5018-pwm-functions-v1-1-8990a4e85b2f@xxxxxxxxxxx
---
drivers/pinctrl/qcom/pinctrl-ipq5018.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/pinctrl/qcom/pinctrl-ipq5018.c b/drivers/pinctrl/qcom/pinctrl-ipq5018.c
index 84392fe258c9..74fccdd5146a 100644
--- a/drivers/pinctrl/qcom/pinctrl-ipq5018.c
+++ b/drivers/pinctrl/qcom/pinctrl-ipq5018.c
@@ -539,7 +539,7 @@ static const char * const qdss_tracectl_b_groups[] = {
};

static const char * const pwm0_groups[] = {
- "gpio42",
+ "gpio42", "gpio46",
};

static const char * const qdss_cti_trig_out_b0_groups[] = {
@@ -547,7 +547,7 @@ static const char * const qdss_cti_trig_out_b0_groups[] = {
};

static const char * const pwm1_groups[] = {
- "gpio43",
+ "gpio43", "gpio1",
};

static const char * const qdss_cti_trig_in_b0_groups[] = {
@@ -563,7 +563,7 @@ static const char * const qdss_cti_trig_out_b1_groups[] = {
};

static const char * const pwm3_groups[] = {
- "gpio45", "gpio13",
+ "gpio45", "gpio30", "gpio13",
};

static const char * const qdss_cti_trig_in_b1_groups[] = {
@@ -677,7 +677,7 @@ static const struct pinfunction ipq5018_functions[] = {

static const struct msm_pingroup ipq5018_groups[] = {
PINGROUP(0, atest_char, _, qdss_cti_trig_out_a0, wci_txd, wci_rxd, xfem, _, _, _),
- PINGROUP(1, atest_char, _, qdss_cti_trig_in_a0, wci_txd, wci_rxd, xfem, _, _, _),
+ PINGROUP(1, atest_char, pwm1, qdss_cti_trig_in_a0, wci_txd, wci_rxd, xfem, _, _, _),
PINGROUP(2, atest_char, _, qdss_cti_trig_out_a1, wci_txd, wci_rxd, xfem, _, _, _),
PINGROUP(3, atest_char, _, qdss_cti_trig_in_a1, wci_txd, wci_rxd, xfem, _, _, _),
PINGROUP(4, sdc1_data, qspi_data, blsp1_spi1, btss, dbg_out, qdss_traceclk_a, _, burn0, _),
@@ -706,7 +706,7 @@ static const struct msm_pingroup ipq5018_groups[] = {
PINGROUP(27, audio_txmclk, wsa_swrm, audio_txmclk, blsp2_spi, btss, _, qdss_tracedata_b, _, _),
PINGROUP(28, audio_txbclk, wsa_swrm, blsp0_uart1, btss, qdss_tracedata_b, _, _, _, _),
PINGROUP(29, audio_txfsync, _, blsp0_uart1, _, qdss_tracedata_b, _, _, _, _),
- PINGROUP(30, audio_txd, led2, led0, _, _, _, _, _, _),
+ PINGROUP(30, audio_txd, led2, led0, pwm3, _, _, _, _, _),
PINGROUP(31, blsp2_spi0, blsp1_uart1, _, qdss_tracedata_b, eud_gpio, _, _, _, _),
PINGROUP(32, blsp2_spi0, blsp1_uart1, _, qdss_tracedata_b, eud_gpio, _, _, _, _),
PINGROUP(33, blsp2_i2c0, blsp2_spi0, blsp1_uart1, _, qdss_tracedata_b, eud_gpio, _, _, _),
@@ -722,7 +722,7 @@ static const struct msm_pingroup ipq5018_groups[] = {
PINGROUP(43, pwm1, qdss_cti_trig_in_b0, wci_txd, wci_rxd, xfem, _, _, _, _),
PINGROUP(44, pwm2, qdss_cti_trig_out_b1, wci_txd, wci_rxd, xfem, _, _, _, _),
PINGROUP(45, pwm3, qdss_cti_trig_in_b1, wci_txd, wci_rxd, xfem, _, _, _, _),
- PINGROUP(46, led0, _, _, _, _, _, _, _, _),
+ PINGROUP(46, led0, pwm0, _, _, _, _, _, _, _),
};

static const struct msm_pinctrl_soc_data ipq5018_pinctrl = {

---
base-commit: 3d7783543c2646af69ad65825e810060494bea21
change-id: 20260924-ipq5018-pwm-functions-2ec0211d65c1

Best regards,
--
George Moussalem <george.moussalem@xxxxxxxxxxx>