[PATCH] pinctrl: qcom: ipq5018: add required gpios and missing PWM functions

From: George Moussalem via B4 Relay

Date: Thu Sep 24 2026 - 08:36:28 EST


From: George Moussalem <george.moussalem@xxxxxxxxxxx>

On multiple Linksys routers, GPIO 1, 30, and 46 are used to drive the
PWM led on PWM1, PWM3, and PWM0 channels respectively, so let's update
the pwm# and pingroups accordingly.

Signed-off-by: George Moussalem <george.moussalem@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>