# Kconfig - Clock controller driver configuration options

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

menuconfig CLOCK_CONTROL_QUARK_SE
	bool "Quark SE Clock controller support"
	help
	 Enable support for the Quark SE clock driver.

if CLOCK_CONTROL_QUARK_SE

config CLOCK_CONTROL_QUARK_SE_PERIPHERAL
	bool "Quark SE peripheral clock support"
	help
	 Enable support for Quark SE peripheral clock which controls the
	 clock of I2C, SPI, GPIO controllers and more.

config CLOCK_CONTROL_QUARK_SE_PERIPHERAL_DRV_NAME
	string "Quark SE peripheral clock device name"
	depends on CLOCK_CONTROL_QUARK_SE_PERIPHERAL
	default "clk_peripheral"

config CLOCK_CONTROL_QUARK_SE_EXTERNAL
	bool "Quark SE external clock support"
	help
	 Enable support for Quark SE external sub-system clock.

config CLOCK_CONTROL_QUARK_SE_EXTERNAL_DRV_NAME
	string "Quark SE external clock device name"
	depends on CLOCK_CONTROL_QUARK_SE_EXTERNAL
	default "clk_external"

config CLOCK_CONTROL_QUARK_SE_SENSOR
	bool "Quark SE sensor clock support"
	help
	 Enable support for Quark SE sensor sub-system clock.

config CLOCK_CONTROL_QUARK_SE_SENSOR_DRV_NAME
	string "Quark SE sensor clock device name"
	depends on CLOCK_CONTROL_QUARK_SE_SENSOR
	default "clk_sensor"

endif # CLOCK_CONTROL_QUARK_SE
