# 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_JZ4755
	bool "Ingenic JZ4755 CGU driver"
	default MACH_JZ4755
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic JZ4755
	  and compatible SoCs.

	  If building for a JZ4755 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_JZ4760
	bool "Ingenic JZ4760 CGU driver"
	default MACH_JZ4760
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic JZ4760
	  and compatible SoCs.

	  If building for a JZ4760 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_CGU_X1830
	bool "Ingenic X1830 CGU driver"
	default MACH_X1830
	select INGENIC_CGU_COMMON
	help
	  Support the clocks provided by the CGU hardware on Ingenic X1830
	  and compatible SoCs.

	  If building for a X1830 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
