# SPDX-License-Identifier: GPL-2.0-only
#
# NXP/Freescale QorIQ series SOC drivers
#

menu "NXP/Freescale QorIQ SoC drivers"

source "drivers/soc/fsl/qbman/Kconfig"
source "drivers/soc/fsl/qe/Kconfig"

config FSL_GUTS
	bool
	select SOC_BUS
	help
	  The global utilities block controls power management, I/O device
	  enabling, power-onreset(POR) configuration monitoring, alternate
	  function selection for multiplexed signals,and clock control.
	  This driver is to manage and access global utilities block.
	  Initially only reading SVR and registering soc device are supported.
	  Other guts accesses, such as reading RCW, should eventually be moved
	  into this driver as well.

config FSL_MC_DPIO
        tristate "QorIQ DPAA2 DPIO driver"
        depends on FSL_MC_BUS && NET
        select SOC_BUS
        select FSL_GUTS
        select DIMLIB
        help
	  Driver for the DPAA2 DPIO object.  A DPIO provides queue and
	  buffer management facilities for software to interact with
	  other DPAA2 objects. This driver does not expose the DPIO
	  objects individually, but groups them under a service layer
	  API.

config DPAA2_CONSOLE
	tristate "QorIQ DPAA2 console driver"
	depends on OF && (ARCH_LAYERSCAPE || COMPILE_TEST)
	default ARCH_LAYERSCAPE
	help
	  Console driver for DPAA2 platforms. Exports 2 char devices,
	  /dev/dpaa2_mc_console and /dev/dpaa2_aiop_console,
	  which can be used to dump the Management Complex and AIOP
	  firmware logs.

config FSL_RCPM
	bool "Freescale RCPM support"
	depends on PM_SLEEP && (ARM || ARM64)
	help
	  The NXP QorIQ Processors based on ARM Core have RCPM module
	  (Run Control and Power Management), which performs all device-level
	  tasks associated with power management, such as wakeup source control.
	  Note that currently this driver will not support PowerPC based
	  QorIQ processor.
endmenu
