# Kconfig - RTC configuration options
#
#
# Copyright (c) 2015 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#
# Real-Time Clock (RTC) options
#
menuconfig RTC
	bool "Real-Time Clock"
	default n
	help
	Enable options for Real-Time Clock drivers.

if RTC

config RTC_DRV_NAME
	string "Driver instance name"
	default "RTC_0"
	depends on RTC
	help
	RTC driver instance name

config RTC_QMSI
	depends on QMSI_DRIVERS
	bool "QMSI RTC Driver"
	default n
	help
	Build QMSI RTC driver.

config RTC_QMSI_IRQ
	int "QMSI RTC Driver Interrupt number"
	depends on RTC_QMSI
	help
	RTC interrupt number

config RTC_QMSI_IRQ_PRI
	int "QMSI RTC Driver Interrupt priority"
	depends on RTC_QMSI
	help
	RTC interrupt priority.

config RTC_DW
	bool "Build Designware RTC Driver"
	default n
	help
	Designware RTC driver.

config RTC_DW_CLOCK_GATE
	bool "Enable clock gating"
	depends on RTC_DW
	select CLOCK_CONTROL
	default n
	help
	Enable clock gating on RTC DesignWare controller

config RTC_DW_CLOCK_GATE_DRV_NAME
	string "Clock gating driver name"
	depends on RTC_DW_CLOCK_GATE
	default ""

config RTC_DW_CLOCK_GATE_SUBSYS
	int "Clock controller's subsystem"
	depends on RTC_DW_CLOCK_GATE
	default 0

config RTC_DW_IRQ_PRI
	int "DesignWare RTC Driver Interrupt priority"
	depends on RTC_DW
	help
	RTC interrupt priority.

endif # RTC
