# SPDX-License-Identifier: GPL-2.0-only
menu "Ingenic SoCs drivers"
	depends on MIPS || COMPILE_TEST

config INGENIC_CGU_COMMON
	bool

config INGENIC_CGU_JZ4740
	bool "Ingenic JZ4740 CGU driver"
	default MACH_JZ4740
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic JZ4740
	  and compatible SoCs.

	  If building for a JZ4740 SoC, you want to say Y here.

config INGENIC_CGU_JZ4725B
	bool "Ingenic JZ4725B CGU driver"
	default MACH_JZ4725B
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic JZ4725B
	  and compatible SoCs.

	  If building for a JZ4725B SoC, you want to say Y here.

config INGENIC_CGU_JZ4770
	bool "Ingenic JZ4770 CGU driver"
	default MACH_JZ4770
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic JZ4770
	  and compatible SoCs.

	  If building for a JZ4770 SoC, you want to say Y here.

config INGENIC_CGU_JZ4780
	bool "Ingenic JZ4780 CGU driver"
	default MACH_JZ4780
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic JZ4780
	  and compatible SoCs.

	  If building for a JZ4780 SoC, you want to say Y here.

config INGENIC_CGU_X1000
	bool "Ingenic X1000 CGU driver"
	default MACH_X1000
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic X1000
	  and compatible SoCs.

	  If building for a X1000 SoC, you want to say Y here.

config INGENIC_TCU_CLK
	bool "Ingenic JZ47xx TCU clocks driver"
	default MACH_INGENIC
	select MFD_SYSCON
	help
	  Support the clocks of the Timer/Counter Unit (TCU) of the Ingenic
	  JZ47xx SoCs.

endmenu
