# SPDX-License-Identifier: GPL-2.0-only

menu "Clock support for Amlogic platforms"

config AMLOGIC_COMMON_CLK
	tristate "Meson clock common API"
	default n
	help
	  provide meson clock common
	  API and debuger tool

config AMLOGIC_COMMON_CLK_MESON_REGMAP
	tristate "meson regmap"
	depends on REGMAP

config AMLOGIC_COMMON_CLK_MESON_DUALDIV
	tristate "meson dualdiv"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_COMMON_CLK_MESON_MPLL
	tristate "meson mpll"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_COMMON_CLK_MESON_PHASE
	tristate "meson phase"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_COMMON_CLK_MESON_PLL
	tristate "meson pll"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_COMMON_CLK_MESON_SCLK_DIV
	tristate "meson sclk div"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	tristate "meson vid pll div"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_COMMON_CLK_MESON_AO_CLKC
	tristate "meson ao clkc"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on RESET_CONTROLLER

config AMLOGIC_COMMON_CLK_MESON_EE_CLKC
	tristate "meson ee clkc"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	tristate "meson cpu dyndiv"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP

config AMLOGIC_MESON_CLK_MEASURE
	tristate "Amlogic Meson SoC Clock Measure driver"
	depends on REGMAP_MMIO
	default n
	help
	  Say yes to support of Measuring a set of internal SoC clocks
	  from the debugfs interface.

config AMLOGIC_CLK_DEBUG
	tristate "Amlogic Meson SoC Clock Debug Driver"
	help
	  Say yes to support of debugging online a set of SoC clocks
	  from the debugfs interface.

config AMLOGIC_COMMON_CLK_S4
	tristate "Meson S4 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_MPLL
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic AH219 and AH212
	  devices, aka s4. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_SC2
	tristate "Meson SC2 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_MPLL
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic AH219 and AH212
	  devices, aka sc2. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_C2
	tristate "Meson C2 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_MPLL
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on MFD_SYSCON
	default n
	help
	 Support for the clock controller on Amlogic AF400
	 devices. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_C3
	tristate "Meson C3 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_MPLL
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on MFD_SYSCON
	default n
	help
	 Support for the clock controller on Amlogic C3
	 chipset. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_A1
	tristate "Meson A1 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_MPLL
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on MFD_SYSCON
	default n
	help
	 Support for the clock controller on Amlogic A1
	 chipset. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_T3
	tristate "Meson T3 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_MPLL
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T3
	  devices, aka t3. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_T7
	tristate "Meson T7 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_MPLL
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T7
	  devices, aka t7. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_T5M
	tristate "Meson T5M clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T5M
	  devices, aka t5m. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_G12A
	tristate "G12 and SM1 SoC clock controllers support"
	depends on ARM64
	default n
	select AMLOGIC_COMMON_CLK_MESON_REGMAP
	select AMLOGIC_COMMON_CLK_MESON_DUALDIV
	select AMLOGIC_COMMON_CLK_MESON_MPLL
	select AMLOGIC_COMMON_CLK_MESON_PLL
	select AMLOGIC_COMMON_CLK_MESON_AO_CLKC
	select AMLOGIC_COMMON_CLK_MESON_EE_CLKC
	select AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	select AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	select MFD_SYSCON
	help
	  Support for the clock controller on Amlogic S905D2, S905X2 and S905Y2
	  devices, aka g12a. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_S5
   tristate "Meson S5 clock controller"
   depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
   depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
   depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
   depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
   depends on MFD_SYSCON
   help
     Support for the clock controller on Amlogic S5
     devices, aka s5. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_T5W
	tristate "Meson T5W clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T5W
	  devices, aka t5w. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_AO_CLK_T5W
	tristate "Meson T5W ao clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on MFD_SYSCON
	help
	  Support for the ao clock controller on Amlogic T5W
	  devices, aka ao t5w. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_T3X
	tristate "Meson T3X clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T3X
	  devices, aka t3x. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_TXHD2
	tristate "Meson TXHD2 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic TXHD2
	  devices, aka TXHD2. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_AO_CLK_TXHD2
	tristate "Meson TXHD2 ao clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on MFD_SYSCON
	help
	  Support for the ao clock controller on Amlogic TXHD2
	  devices, aka ao TXHD2. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_C1
   tristate "Meson C1 clock controller"
   depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
   depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
   depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
   depends on AMLOGIC_COMMON_CLK_MESON_PLL
   depends on MFD_SYSCON
   help
     Support for the clock controller on Amlogic C1
     devices, aka c1. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_S1A
	tristate "Meson S1A clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic S1A
	  devices, aka s1a. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_T5D
	tristate "Meson T5D clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T5D
	  devices, aka t5d. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_AO_CLK_T5D
	tristate "Meson T5D ao clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on MFD_SYSCON
	help
	  Support for the ao clock controller on Amlogic T5D
	  devices, aka ao t5d. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_TM2
	tristate "Meson TM2 clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic TM2
	  devices, aka TM2. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_AO_CLK_TM2
	tristate "Meson TM2 ao clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on MFD_SYSCON
	help
	  Support for the ao clock controller on Amlogic TM2
	  devices, aka ao TM2. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_S7
        tristate "Meson S7 clock controller"
        depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
        depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
        depends on AMLOGIC_COMMON_CLK_MESON_PLL
        depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
        depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
        depends on MFD_SYSCON
        help
          Support for the clock controller on Amlogic S7
          devices, aka s7. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_S7D
	tristate "Meson S7D clock controller"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
	depends on AMLOGIC_COMMON_CLK_MESON_PLL
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic S7D
	  devices, aka ao s7d. Say Y if you want peripherals to work.
endmenu
