# SPDX-License-Identifier: GPL-2.0-only
#
# QE Communication options
#

config QUICC_ENGINE
	bool "QUICC Engine (QE) framework support"
	depends on FSL_SOC && PPC32
	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
	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

config QE_TDM
	bool
	default y if FSL_UCC_HDLC

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