Skip to content

Commit

Permalink
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
Linus Torvalds committed Sep 18, 2006
2 parents 803db24 + e40b107 commit 77e2782
Show file tree
Hide file tree
Showing 9 changed files with 236 additions and 565 deletions.
715 changes: 154 additions & 561 deletions arch/arm/configs/pnx4008_defconfig

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions arch/arm/mach-s3c2410/Kconfig
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions arch/arm/mach-s3c2410/irq.h
Expand Up @@ -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);
29 changes: 29 additions & 0 deletions arch/arm/mach-s3c2410/s3c2412.c
Expand Up @@ -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>
Expand Down Expand Up @@ -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
Expand All @@ -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));
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mm/proc-xscale.S
Expand Up @@ -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 | \
Expand Down
2 changes: 1 addition & 1 deletion drivers/serial/s3c2410.c
Expand Up @@ -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 = {
Expand Down
34 changes: 34 additions & 0 deletions include/asm-arm/arch-s3c2410/regs-power.h
@@ -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 */
2 changes: 2 additions & 0 deletions include/asm-arm/elf.h
Expand Up @@ -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];
Expand Down
4 changes: 2 additions & 2 deletions include/asm-arm/page.h
Expand Up @@ -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

0 comments on commit 77e2782

Please sign in to comment.