diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/cpu/armv7/am33xx/board.c | 7 | ||||
| -rw-r--r-- | arch/arm/cpu/armv7/omap-common/boot-common.c | 4 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-am33xx/cpu.h | 9 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-at91/at91_pmc.h | 2 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-at91/at91_rstc.h | 7 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-davinci/hardware.h | 38 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-omap5/omap.h | 4 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-omap5/spl.h | 1 | ||||
| -rw-r--r-- | arch/arm/include/asm/davinci_rtc.h | 52 | 
9 files changed, 72 insertions, 52 deletions
diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c index a31bf40e5..453effa54 100644 --- a/arch/arm/cpu/armv7/am33xx/board.c +++ b/arch/arm/cpu/armv7/am33xx/board.c @@ -32,6 +32,7 @@  #include <linux/usb/gadget.h>  #include <linux/usb/musb.h>  #include <asm/omap_musb.h> +#include <asm/davinci_rtc.h>  DECLARE_GLOBAL_DATA_PTR; @@ -150,15 +151,15 @@ __weak void am33xx_spl_board_init(void)  static void rtc32k_enable(void)  { -	struct rtc_regs *rtc = (struct rtc_regs *)RTC_BASE; +	struct davinci_rtc *rtc = (struct davinci_rtc *)RTC_BASE;  	/*  	 * Unlock the RTC's registers.  For more details please see the  	 * RTC_SS section of the TRM.  In order to unlock we need to  	 * write these specific values (keys) in this order.  	 */ -	writel(0x83e70b13, &rtc->kick0r); -	writel(0x95a4f1e0, &rtc->kick1r); +	writel(RTC_KICK0R_WE, &rtc->kick0r); +	writel(RTC_KICK1R_WE, &rtc->kick1r);  	/* Enable the RTC 32K OSC by setting bits 3 and 6. */  	writel((1 << 3) | (1 << 6), &rtc->osc); diff --git a/arch/arm/cpu/armv7/omap-common/boot-common.c b/arch/arm/cpu/armv7/omap-common/boot-common.c index 0ffa03ac0..69fff323d 100644 --- a/arch/arm/cpu/armv7/omap-common/boot-common.c +++ b/arch/arm/cpu/armv7/omap-common/boot-common.c @@ -14,6 +14,7 @@  #include <asm/arch/omap.h>  #include <asm/arch/mmc_host_def.h>  #include <asm/arch/sys_proto.h> +#include <watchdog.h>  DECLARE_GLOBAL_DATA_PTR; @@ -76,6 +77,9 @@ void spl_board_init(void)  #if defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)  	arch_misc_init();  #endif +#if defined(CONFIG_HW_WATCHDOG) +	hw_watchdog_init(); +#endif  #ifdef CONFIG_AM33XX  	am33xx_spl_board_init();  #endif diff --git a/arch/arm/include/asm/arch-am33xx/cpu.h b/arch/arm/include/asm/arch-am33xx/cpu.h index 52fa128af..05752ce68 100644 --- a/arch/arm/include/asm/arch-am33xx/cpu.h +++ b/arch/arm/include/asm/arch-am33xx/cpu.h @@ -457,15 +457,6 @@ struct gptimer {  	unsigned int tcar2;		/* offset 0x58 */  }; -/* RTC Registers */ -struct rtc_regs { -	unsigned int res[21]; -	unsigned int osc;		/* offset 0x54 */ -	unsigned int res2[5]; -	unsigned int kick0r;		/* offset 0x6c */ -	unsigned int kick1r;		/* offset 0x70 */ -}; -  /* UART Registers */  struct uart_sys {  	unsigned int resv1[21]; diff --git a/arch/arm/include/asm/arch-at91/at91_pmc.h b/arch/arm/include/asm/arch-at91/at91_pmc.h index 003920cd8..7b36f74f8 100644 --- a/arch/arm/include/asm/arch-at91/at91_pmc.h +++ b/arch/arm/include/asm/arch-at91/at91_pmc.h @@ -233,6 +233,8 @@ typedef struct at91_pmc {  #endif  #define		AT91_PMC_USBS_USB_PLLA		(0x0)		/* USB Clock Input is PLLA */  #define		AT91_PMC_USBS_USB_UPLL		(0x1)		/* USB Clock Input is UPLL */ +#define		AT91_PMC_USBS_USB_PLLB		(0x1)		/* USB Clock Input is PLLB, AT91SAM9N12 only */ +#define		AT91_PMC_USB_DIV_2		(0x1 <<  8)	/* USB Clock divided by 2 */  #define		AT91_PMC_USBDIV_8		(0x7 <<  8)	/* USB Clock divided by 8 */  #define		AT91_PMC_USBDIV_10		(0x9 <<  8)	/* USB Clock divided by 10 */ diff --git a/arch/arm/include/asm/arch-at91/at91_rstc.h b/arch/arm/include/asm/arch-at91/at91_rstc.h index 423cf515d..a9423428e 100644 --- a/arch/arm/include/asm/arch-at91/at91_rstc.h +++ b/arch/arm/include/asm/arch-at91/at91_rstc.h @@ -38,4 +38,11 @@ typedef struct at91_rstc {  #define AT91_RSTC_SR_NRSTL	0x00010000 +#define AT91_RSTC_RSTTYP		(7 << 8)	/* Reset Type */ +#define AT91_RSTC_RSTTYP_GENERAL	(0 << 8) +#define AT91_RSTC_RSTTYP_WAKEUP	(1 << 8) +#define AT91_RSTC_RSTTYP_WATCHDOG	(2 << 8) +#define AT91_RSTC_RSTTYP_SOFTWARE	(3 << 8) +#define AT91_RSTC_RSTTYP_USER		(4 << 8) +  #endif diff --git a/arch/arm/include/asm/arch-davinci/hardware.h b/arch/arm/include/asm/arch-davinci/hardware.h index 05ecc7876..7aaf4bff8 100644 --- a/arch/arm/include/asm/arch-davinci/hardware.h +++ b/arch/arm/include/asm/arch-davinci/hardware.h @@ -613,42 +613,4 @@ static inline enum davinci_clk_ids get_async3_src(void)  #endif -struct davinci_rtc { -	dv_reg	second; -	dv_reg	minutes; -	dv_reg	hours; -	dv_reg	day; -	dv_reg	month; /* 0x10 */ -	dv_reg	year; -	dv_reg	dotw; -	dv_reg	resv1; -	dv_reg	alarmsecond; /* 0x20 */ -	dv_reg	alarmminute; -	dv_reg	alarmhour; -	dv_reg	alarmday; -	dv_reg	alarmmonth; /* 0x30 */ -	dv_reg	alarmyear; -	dv_reg	resv2[2]; -	dv_reg	ctrl; /* 0x40 */ -	dv_reg	status; -	dv_reg	irq; -	dv_reg	complsb; -	dv_reg	compmsb; /* 0x50 */ -	dv_reg	osc; -	dv_reg	resv3[2]; -	dv_reg	scratch0; /* 0x60 */ -	dv_reg	scratch1; -	dv_reg	scratch2; -	dv_reg	kick0r; -	dv_reg	kick1r; /* 0x70 */ -}; - -#define RTC_STATE_BUSY	0x01 -#define RTC_STATE_RUN	0x02 - -#define RTC_KICK0R_WE	0x83e70b13 -#define RTC_KICK1R_WE	0x95a4f1e0 - -#define davinci_rtc_base ((struct davinci_rtc *)DAVINCI_RTC_BASE) -  #endif /* __ASM_ARCH_HARDWARE_H */ diff --git a/arch/arm/include/asm/arch-omap5/omap.h b/arch/arm/include/asm/arch-omap5/omap.h index 414d37a5a..3c2306fe3 100644 --- a/arch/arm/include/asm/arch-omap5/omap.h +++ b/arch/arm/include/asm/arch-omap5/omap.h @@ -145,9 +145,9 @@ struct s32ktimer {  #define DDR_IO_2_VREF_CELLS_DDR3_VALUE				0x0  #define DDR_IO_I_40OHM_SR_SLOWEST_WD_DQ_NO_PULL_DQS_NO_PULL_ES2 0x7C7C7C7C -#define DDR_IO_I_40OHM_SR_FAST_WD_DQ_NO_PULL_DQS_NO_PULL_ES2 0x64656465 +#define DDR_IO_I_40OHM_SR_FAST_WD_DQ_NO_PULL_DQS_NO_PULL_ES2 0x64646464  #define DDR_IO_0_VREF_CELLS_DDR3_VALUE_ES2 0xBAE8C631 -#define DDR_IO_1_VREF_CELLS_DDR3_VALUE_ES2 0xB46318D8 +#define DDR_IO_1_VREF_CELLS_DDR3_VALUE_ES2 0xBC6318DC  #define DDR_IO_2_VREF_CELLS_DDR3_VALUE_ES2 0x84210000  #define EFUSE_1 0x45145100 diff --git a/arch/arm/include/asm/arch-omap5/spl.h b/arch/arm/include/asm/arch-omap5/spl.h index 57f0de5ff..2d5a62e66 100644 --- a/arch/arm/include/asm/arch-omap5/spl.h +++ b/arch/arm/include/asm/arch-omap5/spl.h @@ -16,6 +16,7 @@  #define BOOT_DEVICE_MMC2        6  #define BOOT_DEVICE_MMC2_2	7  #define BOOT_DEVICE_SPI		10 +#define BOOT_DEVICE_UART	0x43  #define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1  #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2_2 diff --git a/arch/arm/include/asm/davinci_rtc.h b/arch/arm/include/asm/davinci_rtc.h new file mode 100644 index 000000000..575b59088 --- /dev/null +++ b/arch/arm/include/asm/davinci_rtc.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> + * + * Based on: + * + * ------------------------------------------------------------------------- + * + *  linux/include/asm-arm/arch-davinci/hardware.h + * + *  Copyright (C) 2006 Texas Instruments. + * + * SPDX-License-Identifier:	GPL-2.0 + */ +#ifndef __ASM_DAVINCI_RTC_H +#define __ASM_DAVINCI_RTC_H + +struct davinci_rtc { +	unsigned int	second; +	unsigned int	minutes; +	unsigned int	hours; +	unsigned int	day; +	unsigned int	month; /* 0x10 */ +	unsigned int	year; +	unsigned int	dotw; +	unsigned int	resv1; +	unsigned int	alarmsecond; /* 0x20 */ +	unsigned int	alarmminute; +	unsigned int	alarmhour; +	unsigned int	alarmday; +	unsigned int	alarmmonth; /* 0x30 */ +	unsigned int	alarmyear; +	unsigned int	resv2[2]; +	unsigned int	ctrl; /* 0x40 */ +	unsigned int	status; +	unsigned int	irq; +	unsigned int	complsb; +	unsigned int	compmsb; /* 0x50 */ +	unsigned int	osc; +	unsigned int	resv3[2]; +	unsigned int	scratch0; /* 0x60 */ +	unsigned int	scratch1; +	unsigned int	scratch2; +	unsigned int	kick0r; +	unsigned int	kick1r; /* 0x70 */ +}; + +#define RTC_STATE_BUSY	0x01 +#define RTC_STATE_RUN	0x02 + +#define RTC_KICK0R_WE	0x83e70b13 +#define RTC_KICK1R_WE	0x95a4f1e0 +#endif  |