linux-yocto/drivers/soc/fsl/qe/Kconfig
Christophe Leroy d205c06a32 soc: fsl: cpm1: qmc: Fix dependency on fsl_soc.h
QMC driver requires fsl_soc.h to use function get_immrbase().
This header is provided by powerpc architecture and the functions
it declares are defined only when FSL_SOC is selected.

Today the dependency is the following:

	depends on CPM1 || QUICC_ENGINE || \
		   (FSL_SOC && (CPM || QUICC_ENGINE) && COMPILE_TEST)

This dependency tentatively ensure that FSL_SOC is there when doing a
COMPILE_TEST.

CPM1 is only selected by PPC_8xx and cannot be selected manually.
CPM1 selects FSL_SOC

QUICC_ENGINE on the other hand can be selected by ARM or ARM64 which
doesn't select FSL_SOC. QUICC_ENGINE can also be selected with just
COMPILE_TEST.

It is therefore possible to end up with CPM_QMC selected
without FSL_SOC.

So fix it by making it depend on FSL_SOC at all time.

The rest of the above dependency is the same as the one for CPM_TSA on
which CPM_QMC also depends, so it can go away, leaving only a simple
dependency on FSL_SOC.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/lkml/20240904104859.020fe3a9@canb.auug.org.au/
Fixes: 8655b76b70 ("soc: fsl: cpm1: qmc: Handle QUICC Engine (QE) soft-qmc firmware")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Acked-by: Herve Codina <herve.codina@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-09-04 09:30:53 +00:00

1.5 KiB

SPDX-License-Identifier: GPL-2.0-only

QE Communication options

config QUICC_ENGINE bool "QUICC Engine (QE) framework support" depends on OF && HAS_IOMEM depends on PPC || ARM || ARM64 || COMPILE_TEST select GENERIC_ALLOCATOR select CRC32 help The QUICC Engine (QE) is a new generation of communications coprocessors on Freescale embedded CPUs (akin to CPM in older chips). Selecting this option means that you wish to build a kernel for a machine with a QE coprocessor.

config UCC_SLOW bool default y if SERIAL_QE || (CPM_QMC && QUICC_ENGINE) help This option provides qe_lib support to UCC slow protocols: UART, BISYNC, QMC

config UCC_FAST bool default y if UCC_GETH || QE_TDM help This option provides qe_lib support to UCC fast protocols: HDLC, Ethernet, ATM, transparent

config UCC bool default y if UCC_FAST || UCC_SLOW || (CPM_TSA && QUICC_ENGINE)

config CPM_TSA tristate "CPM/QE TSA support" depends on OF && HAS_IOMEM depends on CPM1 || QUICC_ENGINE ||
((CPM || QUICC_ENGINE) && COMPILE_TEST) help Freescale CPM/QE Time Slot Assigner (TSA) controller.

  This option enables support for this
  controller

config CPM_QMC tristate "CPM/QE QMC support" depends on OF && HAS_IOMEM depends on FSL_SOC depends on CPM_TSA help Freescale CPM/QE QUICC Multichannel Controller (QMC)

  This option enables support for this
  controller

config QE_TDM bool default y if FSL_UCC_HDLC

config QE_USB bool depends on QUICC_ENGINE default y if USB_FSL_QE help QE USB Controller support