mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-29 13:00:35 +00:00
am33xx specific updates for restart and revision detection.
Also get rid of OMAP_32K_TIMER_HZ as that no longer is needed. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJRGTTVAAoJEBvUPslcq6Vzq6IQAKH4+f7l9ksPpFpBCH0Xcwn8 UIjpgMASz71gnMSYBcTW+FudtNbD7/2DJw5nLorEZpo14hkYAFNBpf+WCdpT0IRr mdTwDmuzB6SEh1MO9Yeku7zJAy6zji7CxqxfDDImxfvBbLmuCyuDnj+wcPleNOPc XcNWp7F4t6z51HIaMEd2rjsr7yaFkV2/oTaSVX4JD0RHRdNINTKsqt1IkdGKKL4K /xv2Mz1pmzQpIiNYOlYp7VUV8DrCLph/Px6Rc4HKZj1m3bgYG4dXDgyojo941aI7 WipEYJ3Jb6x9EQqkGFJ57jBQNEIm8/Cqf435RcymQW7Qkc4TmQNY0x56KfknfGb2 Tj/NPQX+s40yu8TzFIibYtLi3q0pV6LUOj9n2wpw+MP+Ma2SnBhkXZgxYfeIvyn3 lv3p/rkFTeS4ktu9n99nzxKbnRm1M2Tw7hvXX4VxfBLgsDUDJQ1iRJy4khtwzOko TXAHibtlHV6WkHtstSzreC+oPaYVJe0Y2NqFSkTkt14V7GyFTCvvCpPufrJHKJm7 /i6dwNF37z85Q/P0WcjVk9Gekt2gby6OMJL1wDDgZnYnbQDz4+LQl5dvGLLjPkki XvdeSvX6pDhOAyEyi6CK/mhjBZO7EEuzeORk/HZFo2DzXpKtpQfhcGkDl9CKsaU4 B3Q4Tj5m1nNib6vHh+Tg =sdQB -----END PGP SIGNATURE----- Merge tag 'omap-for-v3.9/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into late/omap From Tony Lindgren: am33xx specific updates for restart and revision detection. Also get rid of OMAP_32K_TIMER_HZ as that no longer is needed. * tag 'omap-for-v3.9/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2: AM33XX: id: Add support for AM335x PG2.0 ARM: OMAP2+: Get rid of custom OMAP_32K_TIMER_HZ ARM: OMAP2+: AM33xx: Add SoC specific restart hook
This commit is contained in:
commit
02ea21331e
@ -1650,7 +1650,6 @@ config HZ
|
||||
int
|
||||
default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \
|
||||
ARCH_S5PV210 || ARCH_EXYNOS4
|
||||
default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
|
||||
default AT91_TIMER_HZ if ARCH_AT91
|
||||
default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
|
||||
default 100
|
||||
|
@ -53,6 +53,7 @@ AFLAGS_sram34xx.o :=-Wa,-march=armv7-a
|
||||
# Restart code (OMAP4/5 currently in omap4-common.c)
|
||||
obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o
|
||||
obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o
|
||||
obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o
|
||||
obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o
|
||||
|
||||
# Pin multiplexing
|
||||
|
34
arch/arm/mach-omap2/am33xx-restart.c
Normal file
34
arch/arm/mach-omap2/am33xx-restart.c
Normal file
@ -0,0 +1,34 @@
|
||||
/*
|
||||
* am33xx-restart.c - Code common to all AM33xx machines.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "prm-regbits-33xx.h"
|
||||
#include "prm33xx.h"
|
||||
|
||||
/**
|
||||
* am3xx_restart - trigger a software restart of the SoC
|
||||
* @mode: the "reboot mode", see arch/arm/kernel/{setup,process}.c
|
||||
* @cmd: passed from the userspace program rebooting the system (if provided)
|
||||
*
|
||||
* Resets the SoC. For @cmd, see the 'reboot' syscall in
|
||||
* kernel/sys.c. No return value.
|
||||
*/
|
||||
void am33xx_restart(char mode, const char *cmd)
|
||||
{
|
||||
/* TODO: Handle mode and cmd if necessary */
|
||||
|
||||
am33xx_prm_rmw_reg_bits(AM33XX_GLOBAL_WARM_SW_RST_MASK,
|
||||
AM33XX_GLOBAL_WARM_SW_RST_MASK,
|
||||
AM33XX_PRM_DEVICE_MOD,
|
||||
AM33XX_PRM_RSTCTRL_OFFSET);
|
||||
|
||||
/* OCP barrier */
|
||||
(void)am33xx_prm_read_reg(AM33XX_PRM_DEVICE_MOD,
|
||||
AM33XX_PRM_RSTCTRL_OFFSET);
|
||||
}
|
@ -141,6 +141,7 @@ DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
|
||||
.init_machine = omap_generic_init,
|
||||
.timer = &omap3_am33xx_timer,
|
||||
.dt_compat = am33xx_boards_compat,
|
||||
.restart = am33xx_restart,
|
||||
MACHINE_END
|
||||
#endif
|
||||
|
||||
|
@ -119,6 +119,14 @@ static inline void omap2xxx_restart(char mode, const char *cmd)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SOC_AM33XX
|
||||
void am33xx_restart(char mode, const char *cmd);
|
||||
#else
|
||||
static inline void am33xx_restart(char mode, const char *cmd)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
void omap3xxx_restart(char mode, const char *cmd);
|
||||
#else
|
||||
|
@ -399,8 +399,18 @@ void __init omap3xxx_check_revision(void)
|
||||
}
|
||||
break;
|
||||
case 0xb944:
|
||||
omap_revision = AM335X_REV_ES1_0;
|
||||
cpu_rev = "1.0";
|
||||
switch (rev) {
|
||||
case 0:
|
||||
omap_revision = AM335X_REV_ES1_0;
|
||||
cpu_rev = "1.0";
|
||||
break;
|
||||
case 1:
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
omap_revision = AM335X_REV_ES2_0;
|
||||
cpu_rev = "2.0";
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0xb8f2:
|
||||
switch (rev) {
|
||||
|
@ -387,6 +387,7 @@ IS_OMAP_TYPE(3430, 0x3430)
|
||||
|
||||
#define AM335X_CLASS 0x33500033
|
||||
#define AM335X_REV_ES1_0 AM335X_CLASS
|
||||
#define AM335X_REV_ES2_0 (AM335X_CLASS | (0x1 << 8))
|
||||
|
||||
#define OMAP443X_CLASS 0x44300044
|
||||
#define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8))
|
||||
|
@ -177,15 +177,6 @@ config OMAP3_L2_AUX_SECURE_SERVICE_SET_ID
|
||||
help
|
||||
PPA routine service ID for setting L2 auxiliary control register.
|
||||
|
||||
config OMAP_32K_TIMER_HZ
|
||||
int "Kernel internal timer frequency for 32KHz timer"
|
||||
range 32 1024
|
||||
depends on OMAP_32K_TIMER
|
||||
default "128"
|
||||
help
|
||||
Kernel internal timer frequency should be a divisor of 32768,
|
||||
such as 64 or 128.
|
||||
|
||||
config OMAP_DM_TIMER
|
||||
bool "Use dual-mode timer"
|
||||
depends on ARCH_OMAP16XX || ARCH_OMAP2PLUS
|
||||
|
@ -28,14 +28,6 @@
|
||||
#if !defined(__ASM_ARCH_OMAP_TIMEX_H)
|
||||
#define __ASM_ARCH_OMAP_TIMEX_H
|
||||
|
||||
/*
|
||||
* OMAP 32KHz timer updates time one jiffie at a time from a secondary timer,
|
||||
* and that's why the CLOCK_TICK_RATE is not 32768.
|
||||
*/
|
||||
#ifdef CONFIG_OMAP_32K_TIMER
|
||||
#define CLOCK_TICK_RATE (CONFIG_OMAP_32K_TIMER_HZ)
|
||||
#else
|
||||
#define CLOCK_TICK_RATE (HZ * 100000UL)
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_ARCH_OMAP_TIMEX_H */
|
||||
|
Loading…
Reference in New Issue
Block a user