# Clock controller driver configuration options

# Copyright (c) 2015 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

#
# Clock controller drivers
#
menuconfig CLOCK_CONTROL
	bool "Clock controller drivers"
	help
	  Enable support for hardware clock controller. Such hardware can
	  provide clock for other subsystem, and thus can be also used for
	  power efficiency by controlling their clock. Note that this has
	  nothing to do with RTC.

if CLOCK_CONTROL

config CLOCK_CONTROL_INIT_PRIORITY
	int "Clock control init priority"
	default KERNEL_INIT_PRIORITY_OBJECTS
	help
	  Clock control driver device initialization priority.

module = CLOCK_CONTROL
module-str = clock control
source "subsys/logging/Kconfig.template.log_config"

source "drivers/clock_control/Kconfig.nrf"

source "drivers/clock_control/Kconfig.stm32"

source "drivers/clock_control/Kconfig.beetle"

source "drivers/clock_control/Kconfig.fixed"

source "drivers/clock_control/Kconfig.lpc11u6x"

source "drivers/clock_control/Kconfig.mcux_ccm"

source "drivers/clock_control/Kconfig.mcux_ccm_rev2"

source "drivers/clock_control/Kconfig.mcux_mcg"

source "drivers/clock_control/Kconfig.mcux_pcc"

source "drivers/clock_control/Kconfig.mcux_scg"

source "drivers/clock_control/Kconfig.mcux_sim"

source "drivers/clock_control/Kconfig.mcux_syscon"

source "drivers/clock_control/Kconfig.npcm"

source "drivers/clock_control/Kconfig.npcx"

source "drivers/clock_control/Kconfig.rv32m1"

source "drivers/clock_control/Kconfig.esp32"

source "drivers/clock_control/Kconfig.litex"

source "drivers/clock_control/Kconfig.rcar"

source "drivers/clock_control/Kconfig.xec"

source "drivers/clock_control/Kconfig.ifx_cat1"

source "drivers/clock_control/Kconfig.cavs"

source "drivers/clock_control/Kconfig.aspeed"

source "drivers/clock_control/Kconfig.gd32"

source "drivers/clock_control/Kconfig.sam"

source "drivers/clock_control/Kconfig.si32"

source "drivers/clock_control/Kconfig.smartbond"

source "drivers/clock_control/Kconfig.numaker"

source "drivers/clock_control/Kconfig.nxp_s32"

source "drivers/clock_control/Kconfig.agilex5"

source "drivers/clock_control/Kconfig.renesas_ra_cgc"

source "drivers/clock_control/Kconfig.max32"

source "drivers/clock_control/Kconfig.ambiq"

source "drivers/clock_control/Kconfig.pwm"

source "drivers/clock_control/Kconfig.rpi_pico"

source "drivers/clock_control/Kconfig.nrf_auxpll"

source "drivers/clock_control/Kconfig.arm_scmi"

source "drivers/clock_control/Kconfig.silabs"

endif # CLOCK_CONTROL
