The struct group_desc has a lot of duplication with struct pingroup. Deduplicate that by embeddind the latter in the former and convert users. Linus, assuming everything is fine, I can push this to my tree. Or you can apply it (assumming all CIs and people are happy with the series). NB. This series contains previously sent patches for Qualcomm and Nuovoton. Here the updated version for Qualcomm that splits previous patch to two and fixes compilation warnings. NB. The function_desc is in plan to follow the similar deduplication. In v2: - added a few patches to fix multiple compile-time errors (LKP) - added tag (Jonathan) v1: https://lore.kernel.org/r/20231122164040.2262742-1-andriy.shevchenko@xxxxxxxxxxxxxxx Andy Shevchenko (21): pinctrl: qcom: lpass-lpi: Replace kernel.h with what is being used pinctrl: qcom: lpass-lpi: Remove unused member in struct lpi_pingroup pinctrl: equilibrium: Use temporary variable to hold pins pinctrl: imx: Use temporary variable to hold pins pinctrl: core: Make pins const in struct group_desc pinctrl: equilibrium: Convert to use struct pingroup pinctrl: keembay: Convert to use struct pingroup pinctrl: nuvoton: Convert to use struct pingroup and PINCTRL_PINGROUP() pinctrl: core: Add a convenient define PINCTRL_GROUP_DESC() pinctrl: ingenic: Make use of PINCTRL_GROUP_DESC() pinctrl: mediatek: Make use of PINCTRL_GROUP_DESC() pinctrl: core: Embed struct pingroup into struct group_desc pinctrl: bcm: Convert to use grp member pinctrl: equilibrium: Convert to use grp member pinctrl: imx: Convert to use grp member pinctrl: ingenic: Convert to use grp member pinctrl: keembay: Convert to use grp member pinctrl: mediatek: Convert to use grp member pinctrl: renesas: Convert to use grp member pinctrl: starfive: Convert to use grp member pinctrl: core: Remove unused members from struct group_desc drivers/pinctrl/bcm/pinctrl-ns.c | 4 +- drivers/pinctrl/core.c | 13 +++--- drivers/pinctrl/core.h | 19 +++++--- drivers/pinctrl/freescale/pinctrl-imx.c | 44 +++++++++---------- drivers/pinctrl/mediatek/pinctrl-moore.c | 13 +++--- drivers/pinctrl/mediatek/pinctrl-moore.h | 7 +-- drivers/pinctrl/mediatek/pinctrl-paris.h | 7 +-- drivers/pinctrl/nuvoton/pinctrl-wpcm450.c | 9 ++-- drivers/pinctrl/pinctrl-equilibrium.c | 39 ++++++++-------- drivers/pinctrl/pinctrl-ingenic.c | 27 +++++------- drivers/pinctrl/pinctrl-keembay.c | 6 +-- drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 6 +-- .../pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c | 16 ------- .../pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c | 20 --------- .../pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c | 20 --------- .../pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c | 15 ------- .../pinctrl/qcom/pinctrl-sm8350-lpass-lpi.c | 16 ------- .../pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c | 24 ---------- .../pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c | 24 ---------- .../pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c | 24 ---------- drivers/pinctrl/renesas/pinctrl-rza1.c | 2 +- drivers/pinctrl/renesas/pinctrl-rza2.c | 10 ++--- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 6 +-- drivers/pinctrl/renesas/pinctrl-rzv2m.c | 6 +-- .../starfive/pinctrl-starfive-jh7100.c | 8 ++-- .../starfive/pinctrl-starfive-jh7110.c | 8 ++-- 26 files changed, 106 insertions(+), 287 deletions(-) -- 2.43.0.rc1.1.gbec44491f096