From e679ef486aed4ffe42862ddbd48edf0ccb6078be Mon Sep 17 00:00:00 2001 From: Vit Stanicek Date: Thu, 17 Jul 2025 12:30:52 +0200 Subject: [PATCH] hal_nxp: Factorise inclusion of fsl_inputmux Create Kconfig variable NXP_INPUTMUX, which selects the fsl_inputmux driver. Imply the MCUX component symbol from it. Imply that variable from the NXP PINT, SmartDMA and LPC DMA drivers and from the mimxrt685s SoC. This needed to be done for the mimxrt700_evk/mimxrt798s/hifi4 domain, as the INPUTMUX peripheral handles IRQ assginments and its driver (fsl_inputmux) is used directly by the domain's soc.c. Instantiating the currently dependent drivers (for PINT and SmartDMA) isn's possible nor reasonable on the said target. Signed-off-by: Vit Stanicek --- drivers/dma/Kconfig.mcux_lpc | 1 + drivers/dma/Kconfig.mcux_smartdma | 1 + drivers/interrupt_controller/Kconfig.nxp_pint | 1 + drivers/misc/Kconfig | 1 + drivers/misc/nxp_inputmux/Kconfig | 10 ++++++++++ modules/hal_nxp/mcux/mcux-sdk-ng/drivers/drivers.cmake | 3 +-- soc/nxp/imxrt/imxrt6xx/Kconfig | 1 + 7 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 drivers/misc/nxp_inputmux/Kconfig diff --git a/drivers/dma/Kconfig.mcux_lpc b/drivers/dma/Kconfig.mcux_lpc index 1f18bfb185c..c4a94cc3969 100644 --- a/drivers/dma/Kconfig.mcux_lpc +++ b/drivers/dma/Kconfig.mcux_lpc @@ -5,6 +5,7 @@ config DMA_MCUX_LPC bool "MCUX LPC DMAC driver" default y depends on DT_HAS_NXP_LPC_DMA_ENABLED + select NXP_INPUTMUX help DMA driver for MCUX LPC MCUs. diff --git a/drivers/dma/Kconfig.mcux_smartdma b/drivers/dma/Kconfig.mcux_smartdma index e4258038ee5..f243a5f6a7b 100644 --- a/drivers/dma/Kconfig.mcux_smartdma +++ b/drivers/dma/Kconfig.mcux_smartdma @@ -5,5 +5,6 @@ config DMA_MCUX_SMARTDMA bool "MCUX SmartDMA Driver" default y depends on DT_HAS_NXP_SMARTDMA_ENABLED + select NXP_INPUTMUX help MCUX SmartDMA driver. diff --git a/drivers/interrupt_controller/Kconfig.nxp_pint b/drivers/interrupt_controller/Kconfig.nxp_pint index a263e049e42..6ff2f027afb 100644 --- a/drivers/interrupt_controller/Kconfig.nxp_pint +++ b/drivers/interrupt_controller/Kconfig.nxp_pint @@ -5,5 +5,6 @@ config NXP_PINT bool "Pin interrupt and pattern match engine (PINT) for NXP MCUs" default y depends on DT_HAS_NXP_PINT_ENABLED + select NXP_INPUTMUX help Enable PINT driver for NXP MCUs diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 2fd046e2430..6d4d5cfc16f 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -21,5 +21,6 @@ source "drivers/misc/renesas_ra_external_interrupt/Kconfig" source "drivers/misc/renesas_rx_external_interrupt/Kconfig" source "drivers/misc/nxp_rtxxx_dsp_ctrl/Kconfig" source "drivers/misc/stm32n6_axisram/Kconfig" +source "drivers/misc/nxp_inputmux/Kconfig" endmenu diff --git a/drivers/misc/nxp_inputmux/Kconfig b/drivers/misc/nxp_inputmux/Kconfig new file mode 100644 index 00000000000..b6876f8a583 --- /dev/null +++ b/drivers/misc/nxp_inputmux/Kconfig @@ -0,0 +1,10 @@ +# Copyright 2025 NXP +# SPDX-License-Identifier: Apache-2.0 + +config NXP_INPUTMUX + bool "NXP INPUTMUX driver" + default n + depends on HAS_MCUX + help + Includes a HAL driver for the INPUTMUX peripheral on select NXP + microcontrollers. diff --git a/modules/hal_nxp/mcux/mcux-sdk-ng/drivers/drivers.cmake b/modules/hal_nxp/mcux/mcux-sdk-ng/drivers/drivers.cmake index a947124cc3f..fc8d64d126e 100644 --- a/modules/hal_nxp/mcux/mcux-sdk-ng/drivers/drivers.cmake +++ b/modules/hal_nxp/mcux/mcux-sdk-ng/drivers/drivers.cmake @@ -32,8 +32,7 @@ endif() set_variable_ifdef(CONFIG_DMA_MCUX_LPC CONFIG_MCUX_COMPONENT_driver.lpc_dma) set_variable_ifdef(CONFIG_GPIO_MCUX_LPC CONFIG_MCUX_COMPONENT_driver.lpc_gpio) set_variable_ifdef(CONFIG_NXP_PINT CONFIG_MCUX_COMPONENT_driver.pint) -set_variable_ifdef(CONFIG_NXP_PINT CONFIG_MCUX_COMPONENT_driver.inputmux) -set_variable_ifdef(CONFIG_DMA_MCUX_SMARTDMA CONFIG_MCUX_COMPONENT_driver.inputmux) +set_variable_ifdef(CONFIG_NXP_INPUTMUX CONFIG_MCUX_COMPONENT_driver.inputmux) set_variable_ifdef(CONFIG_I2C_MCUX_FLEXCOMM CONFIG_MCUX_COMPONENT_driver.flexcomm) set_variable_ifdef(CONFIG_I2C_MCUX_FLEXCOMM CONFIG_MCUX_COMPONENT_driver.flexcomm_i2c) set_variable_ifdef(CONFIG_I2S_MCUX_FLEXCOMM CONFIG_MCUX_COMPONENT_driver.flexcomm) diff --git a/soc/nxp/imxrt/imxrt6xx/Kconfig b/soc/nxp/imxrt/imxrt6xx/Kconfig index 16355136edb..3e887e23bb6 100644 --- a/soc/nxp/imxrt/imxrt6xx/Kconfig +++ b/soc/nxp/imxrt/imxrt6xx/Kconfig @@ -41,6 +41,7 @@ config SOC_MIMXRT685S_HIFI4 select HAS_MCUX select HAS_MCUX_SYSCON select SOC_EARLY_INIT_HOOK + select NXP_INPUTMUX if SOC_SERIES_IMXRT6XX