pinctrl: airoha: add support of en7528 SoC

The EcoNet EN7528 MIPS SoC uses the same pin controller and GPIO IP as
the Airoha SoCs, so it can reuse the shared driver code. Its register
layout differs from every existing variant though: all IOMUX mode bits
live in a single CHIP SCU register (RG_PON_I2C_MODE at 0x15c) plus the
spill-over bits in IOMUX Control 3 (0x224), EJTAG has its own enable
register at 0x1ac, the LED mapping registers sit at 0x1b0/0x1b4 and all
pin configuration registers are at different offsets than on EN7523.

Pin numbering follows the GPIO line numbering, so pins 0-41 map to
GPIO0-GPIO41. Pins 42-49 are the standalone I2C/UART/SPI pads, which
have no GPIO function and are only referenced by the pinconf tables.

Only GPIO0-GPIO15 are wired to the interrupt controller, so num_irq_pins
is 16. EN7528 has no PCIe reset open drain register, so
AIROHA_PINCTRL_CONFS_PCIE_RST_OD is left empty and
PIN_CONFIG_DRIVE_OPEN_DRAIN is rejected for all pins.

Signed-off-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
Benjamin Larsson 2026-08-28 19:35:15 +04:00 committed by Linus Walleij
parent ce80938eca
commit 0619b18afa
3 changed files with 1218 additions and 2 deletions

View File

@ -1,11 +1,11 @@
# SPDX-License-Identifier: GPL-2.0-only
menu "Airoha pinctrl drivers"
depends on ARCH_AIROHA || COMPILE_TEST
depends on ARCH_AIROHA || ECONET || COMPILE_TEST
config PINCTRL_AIROHA
tristate "Airoha pin control"
depends on OF
depends on ARCH_AIROHA || COMPILE_TEST
depends on ARCH_AIROHA || ECONET || COMPILE_TEST
select PINMUX
select GENERIC_PINCONF
select GENERIC_PINCTRL_GROUPS
@ -17,6 +17,7 @@ config PINCTRL_AIROHA
imply PINCTRL_AIROHA_AN7581
imply PINCTRL_AIROHA_AN7583
imply PINCTRL_AIROHA_EN7523
imply PINCTRL_AIROHA_EN7528
help
Shared pin controller and gpio driver code for different
Airoha SoCs.
@ -53,4 +54,14 @@ config PINCTRL_AIROHA_EN7523
Say yes here to support pin controller and gpio driver
on Airoha EN7523, EN7529, EN7562 and other compatible SoCs.
config PINCTRL_AIROHA_EN7528
tristate "EN7528 pinctrl"
depends on ECONET || COMPILE_TEST
depends on PINCTRL_AIROHA
help
Say yes here to support pin controller and gpio driver
on EcoNet EN7528 and other compatible SoCs. Unlike the
other variants, only the first sixteen GPIOs of this SoC
are wired to the interrupt controller.
endmenu

View File

@ -8,3 +8,4 @@ obj-$(CONFIG_PINCTRL_AIROHA_AN7563) += pinctrl-an7563.o
obj-$(CONFIG_PINCTRL_AIROHA_AN7581) += pinctrl-an7581.o
obj-$(CONFIG_PINCTRL_AIROHA_AN7583) += pinctrl-an7583.o
obj-$(CONFIG_PINCTRL_AIROHA_EN7523) += pinctrl-en7523.o
obj-$(CONFIG_PINCTRL_AIROHA_EN7528) += pinctrl-en7528.o

File diff suppressed because it is too large Load Diff