Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 3815/1: headers_install support for ARM [ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM [ARM] 3793/1: S3C2412: fix wrong serial info struct [ARM] 3780/1: Fix iop321 cpuid [ARM] 3786/1: pnx4008: update defconfig [ARM] 3785/1: S3C2412: Fix idle code as default uses wrong clocks [ARM] 3784/1: S3C2413: fix config for MACH_S3C2413/MACH_SMDK2413
This commit is contained in:
commit
77e2782f9b
9 changed files with 241 additions and 570 deletions
File diff suppressed because it is too large
Load diff
|
@ -81,9 +81,17 @@ config SMDK2440_CPU2442
|
|||
depends on ARCH_S3C2440
|
||||
select CPU_S3C2442
|
||||
|
||||
config MACH_S3C2413
|
||||
bool
|
||||
help
|
||||
Internal node for S3C2413 verison of SMDK2413, so that
|
||||
machine_is_s3c2413() will work when MACH_SMDK2413 is
|
||||
selected
|
||||
|
||||
config MACH_SMDK2413
|
||||
bool "SMDK2413"
|
||||
select CPU_S3C2412
|
||||
select MACH_S3C2413
|
||||
select MACH_SMDK
|
||||
help
|
||||
Say Y here if you are using an SMDK2413
|
||||
|
|
|
@ -100,5 +100,10 @@ s3c_irqsub_ack(unsigned int irqno, unsigned int parentmask, unsigned int group)
|
|||
|
||||
/* exported for use in arch/arm/mach-s3c2410 */
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
extern int s3c_irq_wake(unsigned int irqno, unsigned int state);
|
||||
#else
|
||||
#define s3c_irq_wake NULL
|
||||
#endif
|
||||
|
||||
extern int s3c_irqext_type(unsigned int irq, unsigned int type);
|
||||
|
|
|
@ -35,11 +35,15 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/proc-fns.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
#include <asm/arch/idle.h>
|
||||
|
||||
#include <asm/arch/regs-clock.h>
|
||||
#include <asm/arch/regs-serial.h>
|
||||
#include <asm/arch/regs-power.h>
|
||||
#include <asm/arch/regs-gpio.h>
|
||||
#include <asm/arch/regs-gpioj.h>
|
||||
#include <asm/arch/regs-dsc.h>
|
||||
|
@ -75,6 +79,27 @@ void __init s3c2412_init_uarts(struct s3c2410_uartcfg *cfg, int no)
|
|||
s3c_device_nand.name = "s3c2412-nand";
|
||||
}
|
||||
|
||||
/* s3c2412_idle
|
||||
*
|
||||
* use the standard idle call by ensuring the idle mode
|
||||
* in power config, then issuing the idle co-processor
|
||||
* instruction
|
||||
*/
|
||||
|
||||
static void s3c2412_idle(void)
|
||||
{
|
||||
unsigned long tmp;
|
||||
|
||||
/* ensure our idle mode is to go to idle */
|
||||
|
||||
tmp = __raw_readl(S3C2412_PWRCFG);
|
||||
tmp &= ~S3C2412_PWRCFG_STANDBYWFI_MASK;
|
||||
tmp |= S3C2412_PWRCFG_STANDBYWFI_IDLE;
|
||||
__raw_writel(tmp, S3C2412_PWRCFG);
|
||||
|
||||
cpu_do_idle();
|
||||
}
|
||||
|
||||
/* s3c2412_map_io
|
||||
*
|
||||
* register the standard cpu IO areas, and any passed in from the
|
||||
|
@ -87,6 +112,10 @@ void __init s3c2412_map_io(struct map_desc *mach_desc, int mach_size)
|
|||
|
||||
s3c24xx_va_gpio2 = S3C24XX_VA_GPIO + 0x10;
|
||||
|
||||
/* set our idle function */
|
||||
|
||||
s3c24xx_idle = s3c2412_idle;
|
||||
|
||||
/* register our io-tables */
|
||||
|
||||
iotable_init(s3c2412_iodesc, ARRAY_SIZE(s3c2412_iodesc));
|
||||
|
|
|
@ -644,7 +644,7 @@ __80219_proc_info:
|
|||
.type __8032x_proc_info,#object
|
||||
__8032x_proc_info:
|
||||
.long 0x69052420
|
||||
.long 0xffffffe0
|
||||
.long 0xfffff7e0
|
||||
.long PMD_TYPE_SECT | \
|
||||
PMD_SECT_BUFFERABLE | \
|
||||
PMD_SECT_CACHEABLE | \
|
||||
|
|
|
@ -1621,7 +1621,7 @@ static struct s3c24xx_uart_info s3c2412_uart_inf = {
|
|||
static int s3c2412_serial_probe(struct platform_device *dev)
|
||||
{
|
||||
dbg("s3c2440_serial_probe: dev=%p\n", dev);
|
||||
return s3c24xx_serial_probe(dev, &s3c2440_uart_inf);
|
||||
return s3c24xx_serial_probe(dev, &s3c2412_uart_inf);
|
||||
}
|
||||
|
||||
static struct platform_driver s3c2412_serial_drv = {
|
||||
|
|
34
include/asm-arm/arch-s3c2410/regs-power.h
Normal file
34
include/asm-arm/arch-s3c2410/regs-power.h
Normal file
|
@ -0,0 +1,34 @@
|
|||
/* linux/include/asm/arch-s3c2410/regs-power.h
|
||||
*
|
||||
* Copyright (c) 2003,2004,2005,2006 Simtec Electronics <linux@simtec.co.uk>
|
||||
* http://armlinux.simtec.co.uk/
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* S3C24XX power control register definitions
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARM_REGS_PWR
|
||||
#define __ASM_ARM_REGS_PWR __FILE__
|
||||
|
||||
#define S3C24XX_PWRREG(x) ((x) + S3C24XX_VA_CLKPWR)
|
||||
|
||||
#define S3C2412_PWRMODECON S3C24XX_PWRREG(0x20)
|
||||
#define S3C2412_PWRCFG S3C24XX_PWRREG(0x24)
|
||||
|
||||
#define S3C2412_PWRCFG_BATF_IGNORE (0<<0)
|
||||
#define S3C2412_PWRCFG_BATF_SLEEP (3<<0)
|
||||
#define S3C2412_PWRCFG_BATF_MASK (3<<0)
|
||||
|
||||
#define S3C2412_PWRCFG_STANDBYWFI_IGNORE (0<<6)
|
||||
#define S3C2412_PWRCFG_STANDBYWFI_IDLE (1<<6)
|
||||
#define S3C2412_PWRCFG_STANDBYWFI_STOP (2<<6)
|
||||
#define S3C2412_PWRCFG_STANDBYWFI_SLEEP (3<<6)
|
||||
#define S3C2412_PWRCFG_STANDBYWFI_MASK (3<<6)
|
||||
|
||||
#define S3C2412_PWRCFG_RTC_MASKIRQ (1<<8)
|
||||
#define S3C2412_PWRCFG_NAND_NORST (1<<9)
|
||||
|
||||
#endif /* __ASM_ARM_REGS_PWR */
|
|
@ -8,7 +8,9 @@
|
|||
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/user.h>
|
||||
#ifdef __KERNEL
|
||||
#include <asm/procinfo.h>
|
||||
#endif
|
||||
|
||||
typedef unsigned long elf_greg_t;
|
||||
typedef unsigned long elf_freg_t[3];
|
||||
|
|
|
@ -193,8 +193,8 @@ extern pmd_t *top_pmd;
|
|||
#define ARCH_SLAB_MINALIGN 8
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#include <asm-generic/page.h>
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue