# Kconfig - Clock controller driver configuration options

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

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

if CLOCK_CONTROL_QUARK_SE

config CLOCK_CONTROL_QUARK_SE_PERIPHERAL
	bool
	prompt "Quark SE peripheral clock support"
	default n
	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
	prompt "Quark SE peripheral clock device name"
	depends on CLOCK_CONTROL_QUARK_SE_PERIPHERAL
	default "clk_peripheral"

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

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

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

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

endif # CLOCK_CONTROL_QUARK_SE
