# SPDX-License-Identifier: GPL-2.0-only
menu "Amlogic SoC drivers"

config MESON_CANVAS
	tristate "Amlogic Meson Canvas driver"
	depends on ARCH_MESON || COMPILE_TEST
	default n
	help
	  Say yes to support the canvas IP for Amlogic SoCs.

config MESON_CLK_MEASURE
	bool "Amlogic Meson SoC Clock Measure driver"
	depends on ARCH_MESON || COMPILE_TEST
	default ARCH_MESON
	select REGMAP_MMIO
	help
	  Say yes to support of Measuring a set of internal SoC clocks
	  from the debugfs interface.

config MESON_GX_SOCINFO
	bool "Amlogic Meson GX SoC Information driver"
	depends on ARCH_MESON || COMPILE_TEST
	default ARCH_MESON
	select SOC_BUS
	help
	  Say yes to support decoding of Amlogic Meson GX SoC family
	  information about the type, package and version.

config MESON_GX_PM_DOMAINS
	bool "Amlogic Meson GX Power Domains driver"
	depends on ARCH_MESON || COMPILE_TEST
	depends on PM && OF
	default ARCH_MESON
	select PM_GENERIC_DOMAINS
	select PM_GENERIC_DOMAINS_OF
	help
	  Say yes to expose Amlogic Meson GX Power Domains as
	  Generic Power Domains.

config MESON_EE_PM_DOMAINS
	bool "Amlogic Meson Everything-Else Power Domains driver"
	depends on ARCH_MESON || COMPILE_TEST
	depends on PM && OF
	default ARCH_MESON
	select PM_GENERIC_DOMAINS
	select PM_GENERIC_DOMAINS_OF
	help
	  Say yes to expose Amlogic Meson Everything-Else Power Domains as
	  Generic Power Domains.

config MESON_SECURE_PM_DOMAINS
	bool "Amlogic Meson Secure Power Domains driver"
	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
	depends on PM && OF
	depends on HAVE_ARM_SMCCC
	default ARCH_MESON
	select PM_GENERIC_DOMAINS
	select PM_GENERIC_DOMAINS_OF
	help
	  Support for the power controller on Amlogic A1/C1 series.
	  Say yes to expose Amlogic Meson Secure Power Domains as Generic
	  Power Domains.

config MESON_MX_SOCINFO
	bool "Amlogic Meson MX SoC Information driver"
	depends on ARCH_MESON || COMPILE_TEST
	default ARCH_MESON
	select SOC_BUS
	help
	  Say yes to support decoding of Amlogic Meson6, Meson8,
	  Meson8b and Meson8m2 SoC family information about the type
	  and version.

endmenu
