mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-04 12:21:03 +02:00
This driver adds the base support of pinctrl over SCMI. The driver
does two main things. First, it allows you to configure the initial
pin states. Secondly, it's used a base to build a GPIO driver on
top of it.
To configure the states then add a pinmux config to the scmi_pinctrl
section:
scmi_pinctrl: protocol@19 {
reg = <0x19>;
pinmux1: pinmux_test {
pinmux = <0 1 0xFFFFFFFF 18 1
0 2 0xFFFFFFFF 18 1
0 3 0xFFFFFFFF 18 1>;
function = "f_gpio1";
groups = "grp_1", "grp_3";
};
};
Under linux the pinctrl subsystem will parse the function and group
properties and use that to handle muxing. However, under u-boot the
pin muxing is done using the "pinmux" property, which feeds raw SCMI
pinctrl PINCTRL_SETTINGS_CONFIGURE commands to the server. The
numbers are: selector, identifier, function_id, config_type, and
config_value. In the example above, it sets pins 1, 2, and 3 to 1.
The linux-kernel ignores this pinmux property.
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
42 lines
1.6 KiB
Makefile
42 lines
1.6 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0+
|
|
|
|
obj-y += pinctrl-uclass.o
|
|
obj-$(CONFIG_$(PHASE_)PINCTRL_GENERIC) += pinctrl-generic.o
|
|
|
|
obj-$(CONFIG_PINCTRL_ADI) += pinctrl-adi-adsp.o
|
|
obj-$(CONFIG_PINCTRL_APPLE) += pinctrl-apple.o
|
|
obj-$(CONFIG_PINCTRL_AT91) += pinctrl-at91.o
|
|
obj-$(CONFIG_PINCTRL_AT91PIO4) += pinctrl-at91-pio4.o
|
|
obj-y += nxp/
|
|
obj-$(CONFIG_$(PHASE_)PINCTRL_ROCKCHIP) += rockchip/
|
|
obj-$(CONFIG_ARCH_ASPEED) += aspeed/
|
|
obj-$(CONFIG_ARCH_ATH79) += ath79/
|
|
obj-$(CONFIG_PINCTRL_INTEL) += intel/
|
|
obj-$(CONFIG_ARCH_MTMIPS) += mtmips/
|
|
obj-$(CONFIG_ARCH_NPCM) += nuvoton/
|
|
obj-$(CONFIG_PINCTRL_QCOM) += qcom/
|
|
obj-$(CONFIG_ARCH_RENESAS) += renesas/
|
|
obj-$(CONFIG_PINCTRL_SANDBOX) += pinctrl-sandbox.o
|
|
obj-$(CONFIG_PINCTRL_SUNXI) += sunxi/
|
|
obj-$(CONFIG_$(PHASE_)PINCTRL_TEGRA) += tegra/
|
|
obj-$(CONFIG_PINCTRL_UNIPHIER) += uniphier/
|
|
obj-$(CONFIG_PINCTRL_PIC32) += pinctrl_pic32.o
|
|
obj-$(CONFIG_PINCTRL_EXYNOS) += exynos/
|
|
obj-$(CONFIG_PINCTRL_K210) += pinctrl-k210.o
|
|
obj-$(CONFIG_PINCTRL_MESON) += meson/
|
|
obj-$(CONFIG_PINCTRL_MTK) += mediatek/
|
|
obj-$(CONFIG_PINCTRL_MSCC) += mscc/
|
|
obj-$(CONFIG_ARCH_MVEBU) += mvebu/
|
|
obj-$(CONFIG_ARCH_NEXELL) += nexell/
|
|
obj-$(CONFIG_PINCTRL_QE) += pinctrl-qe-io.o
|
|
obj-$(CONFIG_PINCTRL_SCMI) += pinctrl-scmi.o
|
|
obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o
|
|
obj-$(CONFIG_PINCTRL_STI) += pinctrl-sti.o
|
|
obj-$(CONFIG_PINCTRL_STM32) += pinctrl_stm32.o
|
|
obj-$(CONFIG_$(PHASE_)PINCTRL_SX150X) += pinctrl-sx150x.o
|
|
obj-$(CONFIG_$(PHASE_)PINCTRL_STMFX) += pinctrl-stmfx.o
|
|
obj-$(CONFIG_PINCTRL_TH1520) += pinctrl-th1520.o
|
|
obj-y += broadcom/
|
|
obj-$(CONFIG_$(PHASE_)PINCTRL_ZYNQMP) += pinctrl-zynqmp.o
|
|
obj-$(CONFIG_PINCTRL_STARFIVE) += starfive/
|