#
# MediaTek Clock Drivers
#
menu "Clock driver for MediaTek SoC"
	depends on ARCH_MEDIATEK || COMPILE_TEST

config COMMON_CLK_MEDIATEK
	bool
	select RESET_CONTROLLER
	---help---
	  MediaTek SoCs' clock support.

config COMMON_CLK_MT2701
	bool "Clock driver for MediaTek MT2701"
	depends on (ARCH_MEDIATEK && ARM) || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	---help---
	  This driver supports MediaTek MT2701 basic clocks.

config COMMON_CLK_MT2701_MMSYS
	bool "Clock driver for MediaTek MT2701 mmsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports MediaTek MT2701 mmsys clocks.

config COMMON_CLK_MT2701_IMGSYS
	bool "Clock driver for MediaTek MT2701 imgsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports MediaTek MT2701 imgsys clocks.

config COMMON_CLK_MT2701_VDECSYS
	bool "Clock driver for MediaTek MT2701 vdecsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports MediaTek MT2701 vdecsys clocks.

config COMMON_CLK_MT2701_HIFSYS
	bool "Clock driver for MediaTek MT2701 hifsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports MediaTek MT2701 hifsys clocks.

config COMMON_CLK_MT2701_ETHSYS
	bool "Clock driver for MediaTek MT2701 ethsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports MediaTek MT2701 ethsys clocks.

config COMMON_CLK_MT2701_BDPSYS
	bool "Clock driver for MediaTek MT2701 bdpsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports MediaTek MT2701 bdpsys clocks.

config COMMON_CLK_MT2701_AUDSYS
	bool "Clock driver for Mediatek MT2701 audsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports Mediatek MT2701 audsys clocks.

config COMMON_CLK_MT2701_G3DSYS
	bool "Clock driver for MediaTek MT2701 g3dsys"
	depends on COMMON_CLK_MT2701
	---help---
	  This driver supports MediaTek MT2701 g3dsys clocks.

config COMMON_CLK_MT2712
	bool "Clock driver for MediaTek MT2712"
	depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	---help---
	  This driver supports MediaTek MT2712 basic clocks.

config COMMON_CLK_MT2712_BDPSYS
	bool "Clock driver for MediaTek MT2712 bdpsys"
	depends on COMMON_CLK_MT2712
	---help---
	  This driver supports MediaTek MT2712 bdpsys clocks.

config COMMON_CLK_MT2712_IMGSYS
	bool "Clock driver for MediaTek MT2712 imgsys"
	depends on COMMON_CLK_MT2712
	---help---
	  This driver supports MediaTek MT2712 imgsys clocks.

config COMMON_CLK_MT2712_JPGDECSYS
	bool "Clock driver for MediaTek MT2712 jpgdecsys"
	depends on COMMON_CLK_MT2712
	---help---
	  This driver supports MediaTek MT2712 jpgdecsys clocks.

config COMMON_CLK_MT2712_MFGCFG
	bool "Clock driver for MediaTek MT2712 mfgcfg"
	depends on COMMON_CLK_MT2712
	---help---
	  This driver supports MediaTek MT2712 mfgcfg clocks.

config COMMON_CLK_MT2712_MMSYS
	bool "Clock driver for MediaTek MT2712 mmsys"
	depends on COMMON_CLK_MT2712
	---help---
	  This driver supports MediaTek MT2712 mmsys clocks.

config COMMON_CLK_MT2712_VDECSYS
	bool "Clock driver for MediaTek MT2712 vdecsys"
	depends on COMMON_CLK_MT2712
	---help---
	  This driver supports MediaTek MT2712 vdecsys clocks.

config COMMON_CLK_MT2712_VENCSYS
	bool "Clock driver for MediaTek MT2712 vencsys"
	depends on COMMON_CLK_MT2712
	---help---
	  This driver supports MediaTek MT2712 vencsys clocks.

config COMMON_CLK_MT6761
	tristate "Clock driver for MediaTek MT6761"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	default MACH_MT6761
	help
	  This driver supports MediaTek MT6761 basic clocks,
	  which is used to control basic clock output.
	  If you wish to use clock resources from the MT6761 SOC,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6761_AUDIOSYS
	tristate "Clock driver for MediaTek MT6761 audiosys"
	depends on COMMON_CLK_MT6761
	help
	  This driver supports MediaTek MT6761 audsys clocks,
	  which is used to control audsys clock output.
	  If you wish to use clock resources from the audsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6761_CAMSYS
	tristate "Clock driver for MediaTek MT6761 camsys"
	depends on COMMON_CLK_MT6761
	help
	  This driver supports MediaTek MT6761 camsys clocks,
	  which is used to control camsys clock output.
	  If you wish to use clock resources from the camsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6761_MMSYS
	tristate "Clock driver for MediaTek MT6761 mmsys"
	depends on COMMON_CLK_MT6761
	help
	  This driver supports MediaTek MT6761 mmsys clocks,
	  which is used to control mmsys clock output.
	  If you wish to use clock resources from the mmsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6761_VCODECSYS
	tristate "Clock driver for MediaTek MT6761 vcodecsys"
	depends on COMMON_CLK_MT6761
	help
	  This driver supports MediaTek MT6761 vcodecsys clocks,
	  which is used to control vcodecsys clock output.
	  If you wish to use clock resources from the vcodecsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6761_MIPI0ASYS
	tristate "Clock driver for MediaTek MT6761 mipi0asys"
	depends on COMMON_CLK_MT6761
	help
	  This driver supports MediaTek MT6761 mipi0asys clocks,
	  which is used to control mipi0asys clock output.
	  If you wish to use clock resources from the mipi0asys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6765
	tristate "Clock driver for MediaTek MT6765"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	default MACH_MT6765
	help
	  This driver supports MediaTek MT6765 basic clocks,
	  which is used to control basic clock output.
	  If you wish to use clock resources from the MT6765 SOC,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6765_AUDIOSYS
	tristate "Clock driver for MediaTek MT6765 audiosys"
	depends on COMMON_CLK_MT6765
	help
	  This driver supports MediaTek MT6765 audsys clocks,
	  which is used to control audsys clock output.
	  If you wish to use clock resources from the audsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6765_CAMSYS
	tristate "Clock driver for MediaTek MT6765 camsys"
	depends on COMMON_CLK_MT6765
	help
	  This driver supports MediaTek MT6765 camsys clocks,
	  which is used to control camsys clock output.
	  If you wish to use clock resources from the camsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6765_IMGSYS
	tristate "Clock driver for MediaTek MT6765 imgsys"
	depends on COMMON_CLK_MT6765
	help
	  This driver supports MediaTek MT6765 imgsys clocks,
	  which is used to control imgsys clock output.
	  If you wish to use clock resources from the imgsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6765_MMSYS
	tristate "Clock driver for MediaTek MT6765 mmsys"
	depends on COMMON_CLK_MT6765
	help
	  This driver supports MediaTek MT6765 mmsys clocks,
	  which is used to control mmsys clock output.
	  If you wish to use clock resources from the mmsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6765_VCODECSYS
	tristate "Clock driver for MediaTek MT6765 vcodecsys"
	depends on COMMON_CLK_MT6765
	help
	  This driver supports MediaTek MT6765 vcodecsys clocks,
	  which is used to control vcodecsys clock output.
	  If you wish to use clock resources from the vcodecsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6765_MIPI0ASYS
	tristate "Clock driver for MediaTek MT6765 mipi0asys"
	depends on COMMON_CLK_MT6765
	help
	  This driver supports MediaTek MT6765 mipi0asys clocks,
	  which is used to control mipi0asys clock output.
	  If you wish to use clock resources from the mipi0asys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779
	bool "Clock driver for MediaTek MT6779"
	depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	help
	  This driver supports MediaTek MT6779 basic clocks,
	  which is used to control basic clock output.
	  If you wish to use clock resources from the MT6779 SOC,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_MMSYS
	bool "Clock driver for MediaTek MT6779 mmsys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports MediaTek MT6779 mmsys clocks,
	  which is used to control mmsys clock output.
	  If you wish to use clock resources from the mmsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_IMGSYS
	bool "Clock driver for MediaTek MT6779 imgsys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports MediaTek MT6779 imgsys clocks,
	  which is used to control imgsys clock output.
	  If you wish to use clock resources from the imgsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_IPESYS
	bool "Clock driver for MediaTek MT6779 ipesys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports MediaTek MT6779 ipesys clocks,
	  which is used to control ipesys clock output.
	  If you wish to use clock resources from the ipesys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_CAMSYS
	bool "Clock driver for MediaTek MT6779 camsys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports MediaTek MT6779 camsys clocks,
	  which is used to control camsys clock output.
	  If you wish to use clock resources from the camsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_VDECSYS
	bool "Clock driver for MediaTek MT6779 vdecsys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports MediaTek MT6779 vdecsys clocks,
	  which is used to control vdecsys clock output.
	  If you wish to use clock resources from the vdecsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_VENCSYS
	bool "Clock driver for MediaTek MT6779 vencsys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports MediaTek MT6779 vencsys clocks,
	  which is used to control vencsys clock output.
	  If you wish to use clock resources from the vencsys device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_MFGCFG
	bool "Clock driver for MediaTek MT6779 mfgcfg"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports MediaTek MT6779 mfgcfg clocks,
	  which is used to control mfgcfg clock output.
	  If you wish to use clock resources from the mfg device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_AUDSYS
	bool "Clock driver for Mediatek MT6779 audsys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports Mediatek MT6779 audsys clocks,
	  which is used to control audsys clock output.
	  If you wish to use clock resources from the audio device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_APUVCORESYS
	bool "Clock driver for Mediatek MT6779 apuvcoresys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports Mediatek MT6779 apuvcoresys clocks,
	  which is used to control apuvcoresys clock output.
	  If you wish to use clock resources from the apu vcore device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_APUCONNSYS
	bool "Clock driver for Mediatek MT6779 apuconnsys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports Mediatek MT6779 apuconnsys clocks,
	  which is used to control apuconnsys clock output.
	  If you wish to use clock resources from the apu conn device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_APU0SYS
	bool "Clock driver for Mediatek MT6779 apu0sys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports Mediatek MT6779 apu0sys clocks,
	  which is used to control apu0sys clock output.
	  If you wish to use clock resources from the apu0 device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_APU1SYS
	bool "Clock driver for Mediatek MT6779 apu1sys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports Mediatek MT6779 apu1sys clocks,
	  which is used to control apu1sys clock output.
	  If you wish to use clock resources from the apu1 device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6779_MDLASYS
	bool "Clock driver for Mediatek MT6779 mdlasys"
	depends on COMMON_CLK_MT6779
	help
	  This driver supports Mediatek MT6779 mdlasys clocks,
	  which is used to control mdlasys clock output.
	  If you wish to use clock resources from the mdla device,
	  say Y. Otherwise, say N.

config COMMON_CLK_MT6797
	bool "Clock driver for MediaTek MT6797"
	depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	---help---
	  This driver supports MediaTek MT6797 basic clocks.

config COMMON_CLK_MT6797_MMSYS
	bool "Clock driver for MediaTek MT6797 mmsys"
	depends on COMMON_CLK_MT6797
	---help---
	  This driver supports MediaTek MT6797 mmsys clocks.

config COMMON_CLK_MT6797_IMGSYS
	bool "Clock driver for MediaTek MT6797 imgsys"
	depends on COMMON_CLK_MT6797
	---help---
	  This driver supports MediaTek MT6797 imgsys clocks.

config COMMON_CLK_MT6797_VDECSYS
	bool "Clock driver for MediaTek MT6797 vdecsys"
	depends on COMMON_CLK_MT6797
	---help---
	  This driver supports MediaTek MT6797 vdecsys clocks.

config COMMON_CLK_MT6797_VENCSYS
	bool "Clock driver for MediaTek MT6797 vencsys"
	depends on COMMON_CLK_MT6797
	---help---
	  This driver supports MediaTek MT6797 vencsys clocks.

config COMMON_CLK_MT7622
	bool "Clock driver for MediaTek MT7622"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	---help---
	  This driver supports MediaTek MT7622 basic clocks and clocks
	  required for various periperals found on MediaTek.

config COMMON_CLK_MT7622_ETHSYS
	bool "Clock driver for MediaTek MT7622 ETHSYS"
	depends on COMMON_CLK_MT7622
	---help---
	  This driver add support for clocks for Ethernet and SGMII
	  required on MediaTek MT7622 SoC.

config COMMON_CLK_MT7622_HIFSYS
	bool "Clock driver for MediaTek MT7622 HIFSYS"
	depends on COMMON_CLK_MT7622
	---help---
	  This driver supports MediaTek MT7622 HIFSYS clocks providing
	  to PCI-E and USB.

config COMMON_CLK_MT7622_AUDSYS
	bool "Clock driver for MediaTek MT7622 AUDSYS"
	depends on COMMON_CLK_MT7622
	---help---
	  This driver supports MediaTek MT7622 AUDSYS clocks providing
	  to audio consumers such as I2S and TDM.

config COMMON_CLK_MT7629
	bool "Clock driver for MediaTek MT7629"
	depends on (ARCH_MEDIATEK && ARM) || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	---help---
	  This driver supports MediaTek MT7629 basic clocks and clocks
	  required for various periperals found on MediaTek.

config COMMON_CLK_MT7629_ETHSYS
	bool "Clock driver for MediaTek MT7629 ETHSYS"
	depends on COMMON_CLK_MT7629
	---help---
	  This driver add support for clocks for Ethernet and SGMII
	  required on MediaTek MT7629 SoC.

config COMMON_CLK_MT7629_HIFSYS
	bool "Clock driver for MediaTek MT7629 HIFSYS"
	depends on COMMON_CLK_MT7629
	---help---
	  This driver supports MediaTek MT7629 HIFSYS clocks providing
	  to PCI-E and USB.

config COMMON_CLK_MT8135
	bool "Clock driver for MediaTek MT8135"
	depends on (ARCH_MEDIATEK && ARM) || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	---help---
	  This driver supports MediaTek MT8135 clocks.

config COMMON_CLK_MT8173
	bool "Clock driver for MediaTek MT8173"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	select COMMON_CLK_MEDIATEK
	---help---
	  This driver supports MediaTek MT8173 clocks.

config COMMON_CLK_MTK_FREQ_HOPPING
	tristate "MediaTek FREQHOPPING driver"
	help
	  FREQHOPPING driver support for MediaTek SOC
	  If you want to use MediaTek FREQHOPPING driver,
	  say Y or M here.
	  If unsure, say N.

config COMMON_CLK_MTK_FREQ_HOPPING_DEBUG
	bool "Mediate Freq Hopping debug fs"
	depends on DEBUG_FS && COMMON_CLK_MTK_FREQ_HOPPING
	help
	  This option is for debugging purpose
	  say Y to use debugfs interface to control
	  Freqhopping.
	  Otherwise, say N

config COMMON_CLK_MTK_FREQ_HOPPING_SUBSYS
	bool
	depends on COMMON_CLK_MTK_FREQ_HOPPING_SSPM
	help
	  If FREQHOPPING HW is controlled by other processor,
	  such as SSPM, this should be set.

config COMMON_CLK_MTK_FREQ_HOPPING_SSPM
	bool "Mediatek FREQHOPPING controlled by SSPM"
	depends on COMMON_CLK_MTK_FREQ_HOPPING && MTK_TINYSYS_SSPM_SUPPORT
	select COMMON_CLK_MTK_FREQ_HOPPING_SUBSYS
	help
	  If FREQHOPPING HW is controlled by SSPM,
	  say Y here.
	  Otherwise, say N.
	  Enabling this config will auto set COMMON_CLK_MTK_FREQ_HOPPING_SUBSYS

endmenu
