# 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.bflb"

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.mspm0"

source "drivers/clock_control/Kconfig.npcm"

source "drivers/clock_control/Kconfig.npcx"

source "drivers/clock_control/Kconfig.rv32m1"

source "drivers/clock_control/Kconfig.rts5912"

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.renesas_rx_cgc"

source "drivers/clock_control/Kconfig.renesas_rz_cpg"

source "drivers/clock_control/Kconfig.renesas_rz_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.arm_scmi"

source "drivers/clock_control/Kconfig.silabs"

source "drivers/clock_control/Kconfig.siwx91x"

source "drivers/clock_control/Kconfig.wch_rcc"

source "drivers/clock_control/Kconfig.it51xxx"

source "drivers/clock_control/Kconfig.mchp"

source "drivers/clock_control/Kconfig.sf32lb_hxt48"

source "drivers/clock_control/Kconfig.sf32lb_rcc"

endif # CLOCK_CONTROL
