xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-mxs/regs-rtc.h (revision 39632b4a01210e329333d787d828157dcd2c7328)
13a0398d7SOtavio Salvador /*
23a0398d7SOtavio Salvador  * Freescale i.MX28 RTC Register Definitions
33a0398d7SOtavio Salvador  *
43a0398d7SOtavio Salvador  * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
53a0398d7SOtavio Salvador  * on behalf of DENX Software Engineering GmbH
63a0398d7SOtavio Salvador  *
71a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
83a0398d7SOtavio Salvador  */
93a0398d7SOtavio Salvador 
103a0398d7SOtavio Salvador #ifndef __MX28_REGS_RTC_H__
113a0398d7SOtavio Salvador #define __MX28_REGS_RTC_H__
123a0398d7SOtavio Salvador 
13*552a848eSStefano Babic #include <asm/mach-imx/regs-common.h>
143a0398d7SOtavio Salvador 
153a0398d7SOtavio Salvador #ifndef	__ASSEMBLY__
169c471142SOtavio Salvador struct mxs_rtc_regs {
17ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_ctrl)
18ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_stat)
19ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_milliseconds)
20ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_seconds)
21ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_rtc_alarm)
22ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_watchdog)
23ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_persistent0)
24ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_persistent1)
25ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_persistent2)
26ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_persistent3)
27ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_persistent4)
28ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_persistent5)
29ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_debug)
30ddcf13b1SOtavio Salvador 	mxs_reg_32(hw_rtc_version)
313a0398d7SOtavio Salvador };
323a0398d7SOtavio Salvador #endif
333a0398d7SOtavio Salvador 
343a0398d7SOtavio Salvador #define	RTC_CTRL_SFTRST				(1 << 31)
353a0398d7SOtavio Salvador #define	RTC_CTRL_CLKGATE			(1 << 30)
363a0398d7SOtavio Salvador #define	RTC_CTRL_SUPPRESS_COPY2ANALOG		(1 << 6)
373a0398d7SOtavio Salvador #define	RTC_CTRL_FORCE_UPDATE			(1 << 5)
383a0398d7SOtavio Salvador #define	RTC_CTRL_WATCHDOGEN			(1 << 4)
393a0398d7SOtavio Salvador #define	RTC_CTRL_ONEMSEC_IRQ			(1 << 3)
403a0398d7SOtavio Salvador #define	RTC_CTRL_ALARM_IRQ			(1 << 2)
413a0398d7SOtavio Salvador #define	RTC_CTRL_ONEMSEC_IRQ_EN			(1 << 1)
423a0398d7SOtavio Salvador #define	RTC_CTRL_ALARM_IRQ_EN			(1 << 0)
433a0398d7SOtavio Salvador 
443a0398d7SOtavio Salvador #define	RTC_STAT_RTC_PRESENT			(1 << 31)
453a0398d7SOtavio Salvador #define	RTC_STAT_ALARM_PRESENT			(1 << 30)
463a0398d7SOtavio Salvador #define	RTC_STAT_WATCHDOG_PRESENT		(1 << 29)
473a0398d7SOtavio Salvador #define	RTC_STAT_XTAL32000_PRESENT		(1 << 28)
483a0398d7SOtavio Salvador #define	RTC_STAT_XTAL32768_PRESENT		(1 << 27)
493a0398d7SOtavio Salvador #define	RTC_STAT_STALE_REGS_MASK		(0xff << 16)
503a0398d7SOtavio Salvador #define	RTC_STAT_STALE_REGS_OFFSET		16
513a0398d7SOtavio Salvador #define	RTC_STAT_NEW_REGS_MASK			(0xff << 8)
523a0398d7SOtavio Salvador #define	RTC_STAT_NEW_REGS_OFFSET		8
533a0398d7SOtavio Salvador 
543a0398d7SOtavio Salvador #define	RTC_MILLISECONDS_COUNT_MASK		0xffffffff
553a0398d7SOtavio Salvador #define	RTC_MILLISECONDS_COUNT_OFFSET		0
563a0398d7SOtavio Salvador 
573a0398d7SOtavio Salvador #define	RTC_SECONDS_COUNT_MASK			0xffffffff
583a0398d7SOtavio Salvador #define	RTC_SECONDS_COUNT_OFFSET		0
593a0398d7SOtavio Salvador 
603a0398d7SOtavio Salvador #define	RTC_ALARM_VALUE_MASK			0xffffffff
613a0398d7SOtavio Salvador #define	RTC_ALARM_VALUE_OFFSET			0
623a0398d7SOtavio Salvador 
633a0398d7SOtavio Salvador #define	RTC_WATCHDOG_COUNT_MASK			0xffffffff
643a0398d7SOtavio Salvador #define	RTC_WATCHDOG_COUNT_OFFSET		0
653a0398d7SOtavio Salvador 
663a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_MASK	(0xf << 28)
673a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_OFFSET	28
683a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V83	(0x0 << 28)
693a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V78	(0x1 << 28)
703a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V73	(0x2 << 28)
713a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V68	(0x3 << 28)
723a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V62	(0x4 << 28)
733a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V57	(0x5 << 28)
743a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V52	(0x6 << 28)
753a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ADJ_POSLIMITBUCK_2V48	(0x7 << 28)
763a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_EXTERNAL_RESET		(1 << 21)
773a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_THERMAL_RESET		(1 << 20)
783a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ENABLE_LRADC_PWRUP	(1 << 18)
793a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_AUTO_RESTART		(1 << 17)
803a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_DISABLE_PSWITCH		(1 << 16)
813a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_LOWERBIAS_MASK		(0xf << 14)
823a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_LOWERBIAS_OFFSET	14
833a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_LOWERBIAS_NOMINAL	(0x0 << 14)
843a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_LOWERBIAS_M25P		(0x1 << 14)
853a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_LOWERBIAS_M50P		(0x3 << 14)
863a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_DISABLE_XTALOK		(1 << 13)
873a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_MSEC_RES_MASK		(0x1f << 8)
883a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_MSEC_RES_OFFSET		8
893a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_MSEC_RES_1MS		(0x01 << 8)
903a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_MSEC_RES_2MS		(0x02 << 8)
913a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_MSEC_RES_4MS		(0x04 << 8)
923a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_MSEC_RES_8MS		(0x08 << 8)
933a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_MSEC_RES_16MS		(0x10 << 8)
943a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ALARM_WAKE		(1 << 7)
953a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_XTAL32_FREQ		(1 << 6)
963a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_XTAL32KHZ_PWRUP		(1 << 5)
973a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_XTAL24KHZ_PWRUP		(1 << 4)
983a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_LCK_SECS		(1 << 3)
993a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ALARM_EN		(1 << 2)
1003a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_ALARM_WAKE_EN		(1 << 1)
1013a0398d7SOtavio Salvador #define	RTC_PERSISTENT0_CLOCKSOURCE		(1 << 0)
1023a0398d7SOtavio Salvador 
1033a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_MASK		0xffffffff
1043a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_OFFSET		0
1053a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_OTG_ALT_ROLE	0x0080
1063a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_OTG_HNP		0x0100
1073a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_USB_LPM		0x0200
1083a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_SKIP_CHECKDISK	0x0400
1093a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_USB_BOOT_PLAYER	0x0800
1103a0398d7SOtavio Salvador #define	RTC_PERSISTENT1_GENERAL_ENUM_500MA_2X	0x1000
1113a0398d7SOtavio Salvador 
1123a0398d7SOtavio Salvador #define	RTC_PERSISTENT2_GENERAL_MASK		0xffffffff
1133a0398d7SOtavio Salvador #define	RTC_PERSISTENT2_GENERAL_OFFSET		0
1143a0398d7SOtavio Salvador 
1153a0398d7SOtavio Salvador #define	RTC_PERSISTENT3_GENERAL_MASK		0xffffffff
1163a0398d7SOtavio Salvador #define	RTC_PERSISTENT3_GENERAL_OFFSET		0
1173a0398d7SOtavio Salvador 
1183a0398d7SOtavio Salvador #define	RTC_PERSISTENT4_GENERAL_MASK		0xffffffff
1193a0398d7SOtavio Salvador #define	RTC_PERSISTENT4_GENERAL_OFFSET		0
1203a0398d7SOtavio Salvador 
1213a0398d7SOtavio Salvador #define	RTC_PERSISTENT5_GENERAL_MASK		0xffffffff
1223a0398d7SOtavio Salvador #define	RTC_PERSISTENT5_GENERAL_OFFSET		0
1233a0398d7SOtavio Salvador 
1243a0398d7SOtavio Salvador #define	RTC_DEBUG_WATCHDOG_RESET_MASK		(1 << 1)
1253a0398d7SOtavio Salvador #define	RTC_DEBUG_WATCHDOG_RESET		(1 << 0)
1263a0398d7SOtavio Salvador 
1273a0398d7SOtavio Salvador #define	RTC_VERSION_MAJOR_MASK			(0xff << 24)
1283a0398d7SOtavio Salvador #define	RTC_VERSION_MAJOR_OFFSET		24
1293a0398d7SOtavio Salvador #define	RTC_VERSION_MINOR_MASK			(0xff << 16)
1303a0398d7SOtavio Salvador #define	RTC_VERSION_MINOR_OFFSET		16
1313a0398d7SOtavio Salvador #define	RTC_VERSION_STEP_MASK			0xffff
1323a0398d7SOtavio Salvador #define	RTC_VERSION_STEP_OFFSET			0
1333a0398d7SOtavio Salvador 
1343a0398d7SOtavio Salvador #endif	/* __MX28_REGS_RTC_H__ */
135