# SPDX-License-Identifier: GPL-2.0-only
config COMMON_CLK_MESON_REGMAP
	tristate
	select REGMAP

config COMMON_CLK_MESON_DUALDIV
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON_MPLL
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON_PHASE
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON_PLL
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON_SCLK_DIV
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON_VID_PLL_DIV
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON_AO_CLKC
	tristate
	select COMMON_CLK_MESON_REGMAP
	select RESET_CONTROLLER

config COMMON_CLK_MESON_EE_CLKC
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON_CPU_DYNDIV
	tristate
	select COMMON_CLK_MESON_REGMAP

config COMMON_CLK_MESON8B
	bool
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select MFD_SYSCON
	select RESET_CONTROLLER
	help
	  Support for the clock controller on AmLogic S802 (Meson8),
	  S805 (Meson8b) and S812 (Meson8m2) devices. Say Y if you
	  want peripherals and CPU frequency scaling to work.

config COMMON_CLK_GXBB
	bool
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_AO_CLKC
	select COMMON_CLK_MESON_EE_CLKC
	select MFD_SYSCON
	help
	  Support for the clock controller on AmLogic S905 devices, aka gxbb.
	  Say Y if you want peripherals and CPU frequency scaling to work.

config COMMON_CLK_AXG
	tristate "Meson AXG EE/AO Clock Controller Driver"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_AO_CLKC
	select COMMON_CLK_MESON_EE_CLKC
	select MFD_SYSCON
	help
	  Support for the clock controller on AmLogic A113D devices, aka axg.
	  Say Y if you want peripherals and CPU frequency scaling to work.

config COMMON_CLK_AXG_AUDIO
	tristate "Meson AXG Audio Clock Controller Driver"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_PHASE
	select COMMON_CLK_MESON_SCLK_DIV
	select REGMAP_MMIO
	help
	  Support for the audio clock controller on AmLogic A113D devices,
	  aka axg, Say Y if you want audio subsystem to work.

config COMMON_CLK_G12A
	bool "Meson G12A clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_AO_CLKC
	select COMMON_CLK_MESON_EE_CLKC
	select COMMON_CLK_MESON_CPU_DYNDIV
	select 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 COMMON_CLK_TM2
	bool "Meson TM2 clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_AO_CLKC
	select COMMON_CLK_MESON_EE_CLKC
	select COMMON_CLK_MESON_CPU_DYNDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T962E2 and T962X3
	  devices, aka tm2. Say Y if you want peripherals to work.

config COMMON_CLK_SC2
	bool "Meson SC2 clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_CPU_DYNDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select 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 COMMON_CLK_T5D
	bool "Meson T5D clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_AO_CLKC
	select COMMON_CLK_MESON_EE_CLKC
	select COMMON_CLK_MESON_CPU_DYNDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select MFD_SYSCON
	help
	 Support for the clock controller on Amlogic AM301 or AM311
	 devices, aka t5d. Say Y if you want peripherals to work.


config COMMON_CLK_T7
	bool "Meson T7 clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_CPU_DYNDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T7
	  devices, aka t7. Say Y if you want peripherals to work.

config COMMON_CLK_S4
	bool "Meson S4 clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_CPU_DYNDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select 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 COMMON_CLK_T3
	bool "Meson T3 clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_CPU_DYNDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select MFD_SYSCON
	help
	  Support for the clock controller on Amlogic T3
	  devices, aka t3. Say Y if you want peripherals to work.

config COMMON_CLK_P1
	bool "Meson P1 clock controller"
	depends on ARCH_MESON
	select COMMON_CLK_MESON_REGMAP
	select COMMON_CLK_MESON_DUALDIV
	select COMMON_CLK_MESON_MPLL
	select COMMON_CLK_MESON_PLL
	select COMMON_CLK_MESON_CPU_DYNDIV
	select COMMON_CLK_MESON_VID_PLL_DIV
	select MFD_SYSCON
	help
	  Support for the clock controller on Amlogic
	  devices, aka P1. Say Y if you want peripherals to work.

#ifdef CONFIG_AMLOGIC_MODIFY
 config COMMON_CLK_T5W
   bool "Meson T5W clock controller"
   depends on ARCH_MESON
   select COMMON_CLK_MESON_REGMAP
   select COMMON_CLK_MESON_DUALDIV
   select COMMON_CLK_MESON_MPLL
   select COMMON_CLK_MESON_PLL
   select COMMON_CLK_MESON_CPU_DYNDIV
   select COMMON_CLK_MESON_VID_PLL_DIV
   select MFD_SYSCON
   help
     Support for the clock controller on Amlogic T5W
     devices, aka t5w. Say Y if you want peripherals to work.
#endif

config COMMON_CLK_A5
  bool "Meson A5 clock controller"
  depends on ARCH_MESON
  select COMMON_CLK_MESON_REGMAP
  select COMMON_CLK_MESON_DUALDIV
  select COMMON_CLK_MESON_MPLL
  select COMMON_CLK_MESON_PLL
  select COMMON_CLK_MESON_CPU_DYNDIV
  select COMMON_CLK_MESON_VID_PLL_DIV
  select MFD_SYSCON
  help
    Support for the clock controller on Amlogic
    devices, aka A5. Say Y if you want peripherals to work.

config COMMON_CLK_S5
   bool "Meson S5 clock controller"
   depends on ARCH_MESON
   select COMMON_CLK_MESON_REGMAP
   select COMMON_CLK_MESON_DUALDIV
   select COMMON_CLK_MESON_CPU_DYNDIV
   select COMMON_CLK_MESON_VID_PLL_DIV
   select MFD_SYSCON
   help
     Support for the clock controller on Amlogic S5
     devices, aka s5. Say Y if you want peripherals to work.

config MESON_CLKC_MODULE
	tristate "Meson SoC clock controllers"
	default y
	help
		support for all clock controllers to one ko
