diff options
-rw-r--r-- | drivers/pinctrl/Kconfig | 25 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-uclass.c | 4 |
2 files changed, 28 insertions, 1 deletions
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index deee92411c..6b41f66a86 100644 --- a/drivers/pinctrl/Kconfig +++ b/drivers/pinctrl/Kconfig @@ -75,6 +75,22 @@ config PINCONF_RECURSIVE configuration; you can save memory footprint when this feature is no needed. +config PINCONF_RECURSIVE + bool "Support recursive binding for pin configuration nodes" + depends on PINCTRL_FULL + default n if ARCH_STM32MP + default y + help + In the Linux pinctrl binding, the pin configuration nodes need not be + direct children of the pin controller device (may be grandchildren for + example). It is define is each individual pin controller device. + Say Y here if you want to keep this behavior with the pinconfig + u-class: all sub are recursivelly bounded. + If the option is disabled, this behavior is deactivated and only + the direct children of pin controller will be assumed as pin + configuration; you can save memory footprint when this feature is + no needed. + config SPL_PINCTRL bool "Support pin controllers in SPL" depends on SPL && SPL_DM @@ -129,6 +145,15 @@ config SPL_PINCONF_RECURSIVE This option is an SPL-variant of the PINCONF_RECURSIVE option. See the help of PINCONF_RECURSIVE for details. +config SPL_PINCONF_RECURSIVE + bool "Support recursive binding for pin configuration nodes in SPL" + depends on SPL_PINCTRL_FULL + default n if ARCH_STM32MP + default y + help + This option is an SPL-variant of the PINCONF_RECURSIVE option. + See the help of PINCONF_RECURSIVE for details. + if PINCTRL || SPL_PINCTRL config PINCTRL_AR933X diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index a2da63f598..0b1eb7fab4 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -403,7 +403,7 @@ int pinctrl_get_pin_muxing(struct udevice *dev, int selector, char *buf, * @dev: pinctrl device * @return: 0 on success, or negative error code on failure */ -static int pinctrl_post_bind(struct udevice *dev) +static int __maybe_unused pinctrl_post_bind(struct udevice *dev) { const struct pinctrl_ops *ops = pinctrl_get_ops(dev); @@ -426,7 +426,9 @@ static int pinctrl_post_bind(struct udevice *dev) UCLASS_DRIVER(pinctrl) = { .id = UCLASS_PINCTRL, +#if CONFIG_IS_ENABLED(PINCONF_RECURSIVE) .post_bind = pinctrl_post_bind, +#endif .flags = DM_UC_FLAG_SEQ_ALIAS, .name = "pinctrl", }; |