# 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_CLKC_UTILS
	tristate "meson clkc utils"

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

config AMLOGIC_COMMON_CLK_MESON_EE_CLKC
	tristate "meson ee clkc"
	depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
	depends on AMLOGIC_COMMON_CLK_MESON_CLKC_UTILS

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_BYPASS_CCF_CLK
	tristate "Amlogic Bypass all CCF clocks"
	depends on AMLOGIC_BREAK_GKI_20
	help
	  Say yes to bypass all CCF clocks.

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_VID_PLL_DIV
	depends on AMLOGIC_COMMON_CLK_MESON_CLKC_UTILS
	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_CLKC_UTILS
	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_C4
	tristate "Meson C4 clock controller"
	depends on COMMON_CLK_SCMI
	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_CLKC_UTILS
	depends on MFD_SYSCON
	default n
	help
	 Support for the clock controller on Amlogic C4
	 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 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 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
	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_AO_CLKC
	depends on AMLOGIC_COMMON_CLK_MESON_EE_CLKC
	depends on AMLOGIC_COMMON_CLK_MESON_CPU_DYNDIV
	depends on AMLOGIC_COMMON_CLK_MESON_VID_PLL_DIV
	depends on AMLOGIC_COMMON_CLK_MESON_CLKC_UTILS
	depends on 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_PLL
	depends on AMLOGIC_COMMON_CLK_MESON_CLKC_UTILS
	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 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_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 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_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 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_CLK_T6D
        tristate "Meson T6D 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 T6D
          devices, aka T6D. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_A5
	tristate "Meson A5 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_CLKC_UTILS
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic
	  devices, aka A5. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_A4
	tristate "Meson A4 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_CLKC_UTILS
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic
	  devices, aka A4. 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 AMLOGIC_COMMON_CLK_MESON_CLKC_UTILS
	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.

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_CLKC_UTILS
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic S7
	  devices, aka ao s7. Say Y if you want peripherals to work.

config AMLOGIC_COMMON_CLK_S6
	tristate "Meson S6 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_CLKC_UTILS
	depends on MFD_SYSCON
	help
	  Support for the clock controller on Amlogic S6
	  devices. Say Y if you want peripherals to work.

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

config AMLOGIC_COMMON_CLK_T6X
        tristate "Meson T6W clock controller"
        depends on AMLOGIC_COMMON_CLK_MESON_REGMAP
        depends on AMLOGIC_COMMON_CLK_MESON_DUALDIV
        depends on AMLOGIC_COMMON_CLK_MESON_PLL
        help
          Support for the clock controller on Amlogic T6X
          devices, aka T6X. Say Y if you want peripherals to work.

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

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

endmenu
