* [PATCH 0/2] pinctrl: add support amlogic a9
@ 2026-04-28 8:22 Xianwei Zhao via B4 Relay
2026-04-28 8:22 ` [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 Xianwei Zhao via B4 Relay
2026-04-28 8:22 ` [PATCH 2/2] pinctrl: meson: support amlogic A9 SoC Xianwei Zhao via B4 Relay
0 siblings, 2 replies; 7+ messages in thread
From: Xianwei Zhao via B4 Relay @ 2026-04-28 8:22 UTC (permalink / raw)
To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl
Cc: linux-amlogic, linux-gpio, devicetree, linux-kernel,
linux-arm-kernel, Xianwei Zhao
Add pinctrl bindings and driver about for amlogic a9.
Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
---
Xianwei Zhao (2):
dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9
pinctrl: meson: support amlogic A9 SoC
.../bindings/pinctrl/amlogic,pinctrl-a4.yaml | 1 +
drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 61 ++++++++++++++++++++--
2 files changed, 57 insertions(+), 5 deletions(-)
---
base-commit: bd7fd288490c64835a74c05e631c102ce056d5e1
change-id: 20260129-a9-pinctrl-a9511aa224bf
Best regards,
--
Xianwei Zhao <xianwei.zhao@amlogic.com>
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 2026-04-28 8:22 [PATCH 0/2] pinctrl: add support amlogic a9 Xianwei Zhao via B4 Relay @ 2026-04-28 8:22 ` Xianwei Zhao via B4 Relay 2026-04-30 9:36 ` Krzysztof Kozlowski 2026-05-05 9:21 ` Linus Walleij 2026-04-28 8:22 ` [PATCH 2/2] pinctrl: meson: support amlogic A9 SoC Xianwei Zhao via B4 Relay 1 sibling, 2 replies; 7+ messages in thread From: Xianwei Zhao via B4 Relay @ 2026-04-28 8:22 UTC (permalink / raw) To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl Cc: linux-amlogic, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, Xianwei Zhao From: Xianwei Zhao <xianwei.zhao@amlogic.com> Update dt-binding document for pinctrl of Amlogic A9. Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com> --- Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml b/Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml index 6ba66c2033b4..b69db1b95345 100644 --- a/Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml +++ b/Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml @@ -17,6 +17,7 @@ properties: oneOf: - enum: - amlogic,pinctrl-a4 + - amlogic,pinctrl-a9 - amlogic,pinctrl-s6 - amlogic,pinctrl-s7 - items: -- 2.52.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 2026-04-28 8:22 ` [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 Xianwei Zhao via B4 Relay @ 2026-04-30 9:36 ` Krzysztof Kozlowski 2026-05-06 2:59 ` Xianwei Zhao 2026-05-05 9:21 ` Linus Walleij 1 sibling, 1 reply; 7+ messages in thread From: Krzysztof Kozlowski @ 2026-04-30 9:36 UTC (permalink / raw) To: Xianwei Zhao Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl, linux-amlogic, linux-gpio, devicetree, linux-kernel, linux-arm-kernel On Tue, Apr 28, 2026 at 08:22:48AM +0000, Xianwei Zhao wrote: > Update dt-binding document for pinctrl of Amlogic A9. And why it is not compatible with a4 or a5? You have entire commit msg for this. > > Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com> > --- > Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml | 1 + > 1 file changed, 1 insertion(+) Best regards, Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 2026-04-30 9:36 ` Krzysztof Kozlowski @ 2026-05-06 2:59 ` Xianwei Zhao 0 siblings, 0 replies; 7+ messages in thread From: Xianwei Zhao @ 2026-05-06 2:59 UTC (permalink / raw) To: Krzysztof Kozlowski Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl, linux-amlogic, linux-gpio, devicetree, linux-kernel, linux-arm-kernel Hi Krzysztof, Thanks for your advice. On 2026/4/30 17:36, Krzysztof Kozlowski wrote: > On Tue, Apr 28, 2026 at 08:22:48AM +0000, Xianwei Zhao wrote: >> Update dt-binding document for pinctrl of Amlogic A9. > And why it is not compatible with a4 or a5? You have entire commit msg > for this. > Will add a commit message explaining why it is not compatible with previous SoCs. >> Signed-off-by: Xianwei Zhao<xianwei.zhao@amlogic.com> >> --- >> Documentation/devicetree/bindings/pinctrl/amlogic,pinctrl-a4.yaml | 1 + >> 1 file changed, 1 insertion(+) > Best regards, > Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 2026-04-28 8:22 ` [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 Xianwei Zhao via B4 Relay 2026-04-30 9:36 ` Krzysztof Kozlowski @ 2026-05-05 9:21 ` Linus Walleij 2026-05-06 3:01 ` Xianwei Zhao 1 sibling, 1 reply; 7+ messages in thread From: Linus Walleij @ 2026-05-05 9:21 UTC (permalink / raw) To: xianwei.zhao Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl, linux-amlogic, linux-gpio, devicetree, linux-kernel, linux-arm-kernel Hi Xianwei, thanks for your patch! On Tue, Apr 28, 2026 at 10:22 AM Xianwei Zhao via B4 Relay <devnull+xianwei.zhao.amlogic.com@kernel.org> wrote: > From: Xianwei Zhao <xianwei.zhao@amlogic.com> > > Update dt-binding document for pinctrl of Amlogic A9. > > Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com> Please update the commit message with the information the DT maintainers need to determine that a new compatible is needed, i.e. "registers are allocated differently" or "new hardware registers exist" etc. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 2026-05-05 9:21 ` Linus Walleij @ 2026-05-06 3:01 ` Xianwei Zhao 0 siblings, 0 replies; 7+ messages in thread From: Xianwei Zhao @ 2026-05-06 3:01 UTC (permalink / raw) To: Linus Walleij Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl, linux-amlogic, linux-gpio, devicetree, linux-kernel, linux-arm-kernel Hi Linus, Thanks for your review. On 2026/5/5 17:21, Linus Walleij wrote: > Hi Xianwei, > > thanks for your patch! > > On Tue, Apr 28, 2026 at 10:22 AM Xianwei Zhao via B4 Relay > <devnull+xianwei.zhao.amlogic.com@kernel.org> wrote: > >> From: Xianwei Zhao<xianwei.zhao@amlogic.com> >> >> Update dt-binding document for pinctrl of Amlogic A9. >> >> Signed-off-by: Xianwei Zhao<xianwei.zhao@amlogic.com> > Please update the commit message with the information the DT > maintainers need to determine that a new compatible is needed, > i.e. "registers are allocated differently" or "new hardware registers > exist" etc. Will do. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] pinctrl: meson: support amlogic A9 SoC 2026-04-28 8:22 [PATCH 0/2] pinctrl: add support amlogic a9 Xianwei Zhao via B4 Relay 2026-04-28 8:22 ` [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 Xianwei Zhao via B4 Relay @ 2026-04-28 8:22 ` Xianwei Zhao via B4 Relay 1 sibling, 0 replies; 7+ messages in thread From: Xianwei Zhao via B4 Relay @ 2026-04-28 8:22 UTC (permalink / raw) To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl Cc: linux-amlogic, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, Xianwei Zhao From: Xianwei Zhao <xianwei.zhao@amlogic.com> In Amlogic A9 SoC, subordinate bank reuse other master bank is not from bit0, and subordinate bank reuse multi master banks. This submission implements this situation. Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com> --- drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 61 +++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c index e2293a872dcb..256d9787f004 100644 --- a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c +++ b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c @@ -55,14 +55,18 @@ struct aml_pio_control { * partial bank(subordinate) pins mux config use other bank(main) mux registgers * m_bank_id: the main bank which pin_id from 0, but register bit not from bit 0 * m_bit_offs: bit offset the main bank mux register + * s_bit_offs: start bit that subordinate bank use mux register * sid: start pin_id of subordinate bank * eid: end pin_id of subordinate bank + * next: subordinate bank reused multiple other bank groups. */ struct multi_mux { unsigned int m_bank_id; unsigned int m_bit_offs; + unsigned int s_bit_offs; unsigned int sid; unsigned int eid; + const struct multi_mux *next; }; struct aml_pctl_data { @@ -124,12 +128,51 @@ static const char *aml_bank_name[31] = { "GPIOCC", "TEST_N", "ANALOG" }; +static const struct multi_mux multi_mux_a9[] = { + { + .m_bank_id = AMLOGIC_GPIO_C, + .m_bit_offs = 4, + .s_bit_offs = 0, + .sid = (AMLOGIC_GPIO_D << 8) + 16, + .eid = (AMLOGIC_GPIO_D << 8) + 16, + .next = &multi_mux_a9[1], + }, { + .m_bank_id = AMLOGIC_GPIO_AO, + .m_bit_offs = 0, + .s_bit_offs = 52, + .sid = (AMLOGIC_GPIO_D << 8) + 17, + .eid = (AMLOGIC_GPIO_D << 8) + 17, + .next = NULL, + }, { + .m_bank_id = AMLOGIC_GPIO_A, + .m_bit_offs = 0, + .s_bit_offs = 80, + .sid = (AMLOGIC_GPIO_Y << 8) + 8, + .eid = (AMLOGIC_GPIO_Y << 8) + 9, + .next = NULL, + }, { + .m_bank_id = AMLOGIC_GPIO_CC, + .m_bit_offs = 24, + .s_bit_offs = 0, + .sid = (AMLOGIC_GPIO_X << 8) + 16, + .eid = (AMLOGIC_GPIO_X << 8) + 17, + .next = NULL, + }, +}; + +static const struct aml_pctl_data a9_priv_data = { + .number = ARRAY_SIZE(multi_mux_a9), + .p_mux = multi_mux_a9, +}; + static const struct multi_mux multi_mux_s7[] = { { .m_bank_id = AMLOGIC_GPIO_CC, .m_bit_offs = 24, + .s_bit_offs = 0, .sid = (AMLOGIC_GPIO_X << 8) + 16, .eid = (AMLOGIC_GPIO_X << 8) + 19, + .next = NULL, }, }; @@ -142,13 +185,17 @@ static const struct multi_mux multi_mux_s6[] = { { .m_bank_id = AMLOGIC_GPIO_CC, .m_bit_offs = 24, + .s_bit_offs = 0, .sid = (AMLOGIC_GPIO_X << 8) + 16, .eid = (AMLOGIC_GPIO_X << 8) + 19, + .next = NULL, }, { .m_bank_id = AMLOGIC_GPIO_F, .m_bit_offs = 4, + .s_bit_offs = 0, .sid = (AMLOGIC_GPIO_D << 8) + 6, .eid = (AMLOGIC_GPIO_D << 8) + 6, + .next = NULL, }, }; @@ -177,31 +224,34 @@ static int aml_pctl_set_function(struct aml_pinctrl *info, struct aml_gpio_bank *bank = gpio_chip_to_bank(range->gc); unsigned int shift; int reg; - int i; + int i, loop_count; unsigned int offset = bank->mux_bit_offs; const struct multi_mux *p_mux; /* peculiar mux reg set */ - if (bank->p_mux) { - p_mux = bank->p_mux; + loop_count = 10; + p_mux = bank->p_mux; + while (p_mux && loop_count) { if (pin_id >= p_mux->sid && pin_id <= p_mux->eid) { bank = NULL; for (i = 0; i < info->nbanks; i++) { if (info->banks[i].bank_id == p_mux->m_bank_id) { bank = &info->banks[i]; - break; + break; } } if (!bank || !bank->reg_mux) return -EINVAL; - shift = (pin_id - p_mux->sid) << 2; + shift = ((pin_id - p_mux->sid) << 2) + p_mux->s_bit_offs; reg = (shift / 32) * 4; offset = shift % 32; return regmap_update_bits(bank->reg_mux, reg, 0xf << offset, (func & 0xf) << offset); } + p_mux = p_mux->next; + loop_count--; } /* normal mux reg set */ @@ -1159,6 +1209,7 @@ static int aml_pctl_probe(struct platform_device *pdev) static const struct of_device_id aml_pctl_of_match[] = { { .compatible = "amlogic,pinctrl-a4", }, + { .compatible = "amlogic,pinctrl-a9", .data = &a9_priv_data, }, { .compatible = "amlogic,pinctrl-s7", .data = &s7_priv_data, }, { .compatible = "amlogic,pinctrl-s6", .data = &s6_priv_data, }, { /* sentinel */ } -- 2.52.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-05-06 3:01 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-28 8:22 [PATCH 0/2] pinctrl: add support amlogic a9 Xianwei Zhao via B4 Relay 2026-04-28 8:22 ` [PATCH 1/2] dt-bindings: pinctl: amlogic,pinctrl-a4: Add compatible string for A9 Xianwei Zhao via B4 Relay 2026-04-30 9:36 ` Krzysztof Kozlowski 2026-05-06 2:59 ` Xianwei Zhao 2026-05-05 9:21 ` Linus Walleij 2026-05-06 3:01 ` Xianwei Zhao 2026-04-28 8:22 ` [PATCH 2/2] pinctrl: meson: support amlogic A9 SoC Xianwei Zhao via B4 Relay
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox