mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05:00
pinctrl: Add pin controller driver for AAEON UP boards
This enables the pin control support of the onboard FPGA on AAEON UP
boards.
This FPGA acts as a level shifter between the Intel SoC pins and the pin
header, and also as a mux or switch.
+---------+ +--------------+ +---+
| | | | |
| PWM0 | \ | | H |
|----------|------ \-----|-------------| E |
| I2C0_SDA | | | A |
Intel SoC |----------|------\ | | D |
| GPIO0 | \------|-------------| E |
|----------|------ | | R |
| | FPGA | | |
----------+ +--------------+ +---+
For most of the pins, the FPGA opens/closes a switch to enable/disable
the access to the SoC pin from a pin header.
Each switch, has a direction flag that is set depending the status of the
SoC pin.
For some other pins, the FPGA acts as a mux, and routes one pin (or the
other one) to the header.
The driver also provides a GPIO chip. It requests SoC pins in GPIO mode,
and drives them in tandem with FPGA pins (switch/mux direction).
This commit adds support only for UP Squared board.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://lore.kernel.org/20250811-aaeon-up-board-pinctrl-support-v9-10-29f0cbbdfb30@bootlin.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
committed by
Linus Walleij
parent
236152dd9b
commit
dca2f73cf1
@@ -600,6 +600,25 @@ config PINCTRL_TH1520
|
||||
This driver is needed for RISC-V development boards like
|
||||
the BeagleV Ahead and the LicheePi 4A.
|
||||
|
||||
config PINCTRL_UPBOARD
|
||||
tristate "AAeon UP board FPGA pin controller"
|
||||
depends on MFD_UPBOARD_FPGA
|
||||
select PINMUX
|
||||
select GENERIC_PINCTRL_GROUPS
|
||||
select GENERIC_PINMUX_FUNCTIONS
|
||||
select GPIOLIB
|
||||
select GPIO_AGGREGATOR
|
||||
help
|
||||
Pin controller for the FPGA GPIO lines on UP boards. Due to the
|
||||
hardware layout, the driver controls the FPGA pins in tandem with
|
||||
their corresponding Intel SoC GPIOs.
|
||||
|
||||
Currently supported:
|
||||
- UP Squared
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called pinctrl-upboard.
|
||||
|
||||
config PINCTRL_ZYNQ
|
||||
bool "Pinctrl driver for Xilinx Zynq"
|
||||
depends on ARCH_ZYNQ || COMPILE_TEST
|
||||
|
||||
@@ -59,6 +59,7 @@ obj-$(CONFIG_PINCTRL_SX150X) += pinctrl-sx150x.o
|
||||
obj-$(CONFIG_PINCTRL_TB10X) += pinctrl-tb10x.o
|
||||
obj-$(CONFIG_PINCTRL_TPS6594) += pinctrl-tps6594.o
|
||||
obj-$(CONFIG_PINCTRL_TH1520) += pinctrl-th1520.o
|
||||
obj-$(CONFIG_PINCTRL_UPBOARD) += pinctrl-upboard.o
|
||||
obj-$(CONFIG_PINCTRL_ZYNQMP) += pinctrl-zynqmp.o
|
||||
obj-$(CONFIG_PINCTRL_ZYNQ) += pinctrl-zynq.o
|
||||
|
||||
|
||||
1070
drivers/pinctrl/pinctrl-upboard.c
Normal file
1070
drivers/pinctrl/pinctrl-upboard.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user