#
# RTC drivers configuration
#

menu "Real Time Clock"

config DM_RTC
	bool "Enable Driver Model for RTC drivers"
	depends on DM
	select LIB_DATE
	help
	  Enable drver model for real-time-clock drivers. The RTC uclass
	  then provides the rtc_get()/rtc_set() interface, delegating to
	  drivers to perform the actual functions. See rtc.h for a
	  description of the API.

config SPL_DM_RTC
	bool "Enable Driver Model for RTC drivers in SPL"
	depends on SPL_DM
	help
	  Enable drver model for real-time-clock drivers. The RTC uclass
	  then provides the rtc_get()/rtc_set() interface, delegating to
	  drivers to perform the actual functions. See rtc.h for a
	  description of the API.

config TPL_DM_RTC
	bool "Enable Driver Model for RTC drivers in TPL"
	depends on TPL_DM
	help
	  Enable drver model for real-time-clock drivers. The RTC uclass
	  then provides the rtc_get()/rtc_set() interface, delegating to
	  drivers to perform the actual functions. See rtc.h for a
	  description of the API.

config VPL_DM_RTC
	bool "Enable Driver Model for RTC drivers in VPL"
	depends on VPL_DM
	help
	  Enable drver model for real-time-clock drivers. The RTC uclass
	  then provides the rtc_get()/rtc_set() interface, delegating to
	  drivers to perform the actual functions. See rtc.h for a
	  description of the API.

config RTC_ENABLE_32KHZ_OUTPUT
	bool "Enable RTC 32Khz output"
	help
	   Some real-time clocks support the output of 32kHz square waves (such as ds3231),
	   the config symbol choose Real Time Clock device 32Khz output feature.

config RTC_ARMADA38X
	bool "Enable Armada 38x Marvell SoC RTC"
	depends on DM_RTC && ARCH_MVEBU
	help
	  This adds support for the in-chip RTC that can be found in the
	  Armada 38x Marvell's SoC devices.

config RTC_PCF2127
	bool "Enable PCF2127 driver"
	depends on DM_RTC
	help
	  The PCF2127 is a CMOS Real Time Clock (RTC) and calendar with an integrated
	  Temperature Compensated Crystal (Xtal) Oscillator (TCXO) and a 32.768 kHz quartz
	  crystal optimized for very high accuracy and very low power consumption. The PCF2127
	  has a selectable I2C-bus or SPI-bus, a backup battery switch-over circuit, a
	  programmable watchdog function, a timestamp function, and many other features.

config RTC_DS1307
	bool "Enable DS1307 driver"
	depends on DM_RTC
	help
	  Support for Dallas Semiconductor (now Maxim) DS1307 and DS1339 and
	  compatible Real Time Clock devices.

config RTC_DS1337
	bool "Enable DS1337 driver"
	help
	  Support for Dallas Semiconductor (now Maxim) DS1337/8/9 compatible
	  Real Time Clock devices.

config RTC_DS1337_NOOSC
	bool "Enable support for no oscillator output in DS1337 driver"
	depends on RTC_DS1337

config RTC_DS1338
	bool "Enable DS1338 driver"
	help
	  Support for Dallas Semiconductor (now Maxim) DS1338 and compatible
	  Real Time Clock devices.

config RTC_DS1374
	bool "Enable DS1374 driver"
	depends on !DM_RTC
	help
	  Support for Dallas Semiconductor (now Maxim) DS1374 and compatible
	  Real Time Clock devices.

config RTC_DS3231
	bool "Enable DS3231 driver"
	help
	  Support for Dallas Semiconductor (now Maxim) DS3231 compatible
	  Real Time Clock devices.

config RTC_DS3232
	bool "Enable DS3232 driver"
	depends on DM_RTC
	depends on DM_I2C
	help
	  Support for Dallas Semiconductor (now Maxim) DS3232 compatible
	  Real Time Clock devices.

config RTC_EMULATION
	bool "Enable emulated RTC"
	depends on DM_RTC
	help
	  On a board without hardware clock this software real time clock can be
	  used. The initial time may be provided via the environment variable
	  'rtc_emul_epoch' as a decimal string indicating seconds since
	  1970-01-01. If the environment variable is missing, the build time is
	  used to initialize the RTC. The time can be adjusted manually via the
	  'date' command or the 'sntp' command can be used to update the RTC
	  with the time from a network time server. See CONFIG_CMD_SNTP and
	  CONFIG_BOOTP_NTPSERVER. The RTC time is advanced according to CPU
	  ticks.

config RTC_ISL1208
	bool "Enable ISL1208 driver"
	depends on DM_RTC
	help
	  The Renesas (formerly Intersil) ISL1208 is a I2C Real Time Clock (RTC) and
	  calendar with automatic leap year correction, 2-byte battery backed SRAM,
	  automatic power switch-over, alarm function and 15 selectable frequency
	  outputs.

	  This driver supports reading and writing the RTC/calendar and detects
	  total power failures.

config RTC_PCF8563
	tristate "Philips PCF8563"
	help
	  If you say yes here you get support for the Philips PCF8563 RTC
	  and compatible chips.

config RTC_PT7C4338
	bool "Enable Pericom Technology PT7C4338 RTC driver"

config RTC_RV3028
	bool "Enable RV3028 driver"
	depends on DM_RTC
	help
	  The MicroCrystal RV3028 is a I2C Real Time Clock (RTC)

config RTC_RV3029
	bool "Enable RV3029 driver"
	depends on DM_RTC
	help
	  The MicroCrystal RV3029 is a I2C Real Time Clock (RTC) with 8-byte
	  battery-backed SRAM.

	  This driver supports reading and writing the RTC/calendar and the
	  battery-baced SRAM section.

config RTC_RV8803
	bool "Enable RV8803 driver"
	depends on DM_RTC
	help
	  The Micro Crystal RV8803 is a high accuracy, ultra-low power I2C
	  Real Time Clock (RTC) with temperature compensation.

	  This driver supports reading and writing the RTC/calendar and
	  detects total power failures.

config RTC_RX8010SJ
	bool "Enable RX8010SJ driver"
	depends on DM_RTC
	help
	  Support for Epson RX8010SJ Real Time Clock devices.

config RTC_RX8025
	bool "Enable RX8025 driver"
	depends on DM_RTC
	help
	  Support for Epson RX8025 Real Time Clock devices.

config RTC_PL031
	bool "Enable ARM AMBA PL031 RTC driver"
	help
	  The ARM PrimeCell Real Time Clock (PL031) is an optional SoC
	  peripheral based on the Advanced Microcontroller Bus Architecture
	  (AMBA). It is emulated in QEMU virtual ARM machines.

config RTC_MV
	bool "Enable Marvell RTC driver"
	depends on DM_RTC
	help
	  Enable Marvell RTC driver. This driver supports the rtc that is present
	  on some Marvell SoCs.

config RTC_S35392A
	bool "Enable S35392A driver"
	select BITREVERSE
	help
	  Enable s35392a driver which provides rtc get and set function.

config RTC_MC13XXX
	bool "Enable MC13XXX RTC driver"
	depends on !DM_RTC

config RTC_MC146818
	bool "Enable MC146818 driver"
	help
	  This is a widely used real-time clock chip originally by Motorola
	  and now available from NXP. It includes a battery-backed real-time
	  clock with a wide array of features and 50 bytes of general-purpose,
	  battery-backed RAM. The driver supports access to the clock and RAM.

config MCFRTC
	bool "Use common CF RTC driver"
	depends on M68K

config SYS_MCFRTC_BASE
	hex "Base address for RTC in immap.h"
	depends on MCFRTC

config RTC_MXS
	bool "Enable i.MXS RTC driver"
	depends on ARCH_MX23 || ARCH_MX28

config RTC_M41T62
	bool "Enable M41T62 driver"
	help
	  Enable driver for ST's M41T62 compatible RTC devices (like RV-4162).
	  It is a serial (I2C) real-time clock (RTC) with alarm.

config RTC_STM32
	bool "Enable STM32 RTC driver"
	depends on DM_RTC
	help
	  Enable STM32 RTC driver. This driver supports the rtc that is present
	  on some STM32 SoCs.

config RTC_ABX80X
	bool "Enable Abracon ABx80x RTC driver"
	depends on DM_RTC
	help
	  If you say yes here you get support for Abracon AB080X and AB180X
	  families of ultra-low-power  battery- and capacitor-backed real-time
	  clock chips.

config RTC_DAVINCI
	bool "Enable TI OMAP RTC driver"
	depends on ARCH_DAVINCI || ARCH_OMAP2PLUS
	help
	  Say "yes" here to support the on chip real time clock
	  present on TI OMAP1, AM33xx, DA8xx/OMAP-L13x, AM43xx and DRA7xx.

config RTC_ZYNQMP
	bool "Enable ZynqMP RTC driver"
	depends on ARCH_ZYNQMP
	help
	  Say "yes" here to support the on chip real time clock
	  present on Xilinx ZynqMP SoC.

config RTC_HT1380
	bool "Enable Holtek HT1380/HT1381 RTC driver"
	depends on DM_RTC && DM_GPIO
	help
	  Say "yes" here to get support for Holtek HT1380/HT1381
	  Serial Timekeeper IC which provides seconds, minutes, hours,
	  day of the week, date, month and year information. It is to be
	  connected via 3 GPIO pins which work as reset, clock, and data.

endmenu
