]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa...
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 7 Aug 2008 10:05:25 +0000 (11:05 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 7 Aug 2008 10:06:47 +0000 (11:06 +0100)
Conflicts:

arch/arm/mach-pxa/generic.c
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa2xx.c
arch/arm/mach-pxa/pxa3xx.c
arch/arm/mach-pxa/reset.c
arch/arm/mach-pxa/spitz.c
arch/arm/mach-pxa/tosa.c
drivers/watchdog/sa1100_wdt.c

13 files changed:
1  2 
arch/arm/mach-pxa/generic.c
arch/arm/mach-pxa/include/mach/hardware.h
arch/arm/mach-pxa/include/mach/reset.h
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa2xx.c
arch/arm/mach-pxa/pxa3xx.c
arch/arm/mach-pxa/reset.c
arch/arm/mach-pxa/spitz.c
arch/arm/mach-pxa/tosa.c
arch/arm/mach-sa1100/generic.c
arch/arm/mach-sa1100/include/mach/reset.h
drivers/watchdog/sa1100_wdt.c

index 2834b7fff78c350c3dc3422d7ccf1ed9d6693aa6,36638926c5ce33d3a879755ee341b578b64f756a..ceaed007636631f6aa5d471222dcde9b743010a6
  #include <linux/kernel.h>
  #include <linux/init.h>
  
 -#include <asm/hardware.h>
 +#include <mach/hardware.h>
  #include <asm/system.h>
  #include <asm/pgtable.h>
  #include <asm/mach/map.h>
  
 -#include <asm/arch/pxa-regs.h>
 -#include <asm/arch/reset.h>
 +#include <mach/pxa-regs.h>
++#include <mach/reset.h>
  
  #include "generic.h"
  
+ void clear_reset_status(unsigned int mask)
+ {
+       if (cpu_is_pxa2xx())
+               pxa2xx_clear_reset_status(mask);
+       if (cpu_is_pxa3xx())
+               pxa3xx_clear_reset_status(mask);
+ }
  /*
   * Get the clock frequency as reflected by CCCR and the turbo flag.
   * We assume these values have been applied via a fcs.
index f8fb1e75997f9450c114298a15d82c7f8fc94d98,351d0a721769ed2745a78628004a83d2415d57aa..e89df4d0d23999278dfdab688ed76aa3ecfc07d9
@@@ -1,5 -1,5 +1,5 @@@
  /*
 - *  linux/include/asm-arm/arch-pxa/hardware.h
 + *  arch/arm/mach-pxa/include/mach/hardware.h
   *
   *  Author:   Nicolas Pitre
   *  Created:  Jun 15, 2001
@@@ -224,11 -224,6 +224,6 @@@ extern void pxa_gpio_set_value(unsigne
   */
  extern unsigned int get_memclk_frequency_10khz(void);
  
- /*
-  * register GPIO as reset generator
-  */
- extern int init_gpio_reset(int gpio);
  #endif
  
  #if defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
index 0000000000000000000000000000000000000000,9489a48871a88a8196deb0bb001df9be2cebadb2..9489a48871a88a8196deb0bb001df9be2cebadb2
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,18 +1,18 @@@
+ #ifndef __ASM_ARCH_RESET_H
+ #define __ASM_ARCH_RESET_H
+ #define RESET_STATUS_HARDWARE (1 << 0)        /* Hardware Reset */
+ #define RESET_STATUS_WATCHDOG (1 << 1)        /* Watchdog Reset */
+ #define RESET_STATUS_LOWPOWER (1 << 2)        /* Low Power/Sleep Exit */
+ #define RESET_STATUS_GPIO     (1 << 3)        /* GPIO Reset */
+ #define RESET_STATUS_ALL      (0xf)
+ extern unsigned int reset_status;
+ extern void clear_reset_status(unsigned int mask);
+ /*
+  * register GPIO as reset generator
+  */
+ extern int init_gpio_reset(int gpio);
+ #endif /* __ASM_ARCH_RESET_H */
index 3c2d22de9a13db08bb34ba021cb1b9932e81004f,49a7a296ff3109e76bf93bec0ea5811e82309ad6..9e5d8a8c6424f64a0d3bdead6622373f57a6603e
  #include <linux/suspend.h>
  #include <linux/sysdev.h>
  
 -#include <asm/hardware.h>
 -#include <asm/arch/irqs.h>
 -#include <asm/arch/pxa-regs.h>
 -#include <asm/arch/pxa2xx-regs.h>
 -#include <asm/arch/mfp-pxa25x.h>
 -#include <asm/arch/reset.h>
 -#include <asm/arch/pm.h>
 -#include <asm/arch/dma.h>
 +#include <mach/hardware.h>
 +#include <mach/irqs.h>
 +#include <mach/pxa-regs.h>
 +#include <mach/pxa2xx-regs.h>
 +#include <mach/mfp-pxa25x.h>
++#include <mach/reset.h>
 +#include <mach/pm.h>
 +#include <mach/dma.h>
  
  #include "generic.h"
  #include "devices.h"
@@@ -348,6 -349,9 +349,9 @@@ static int __init pxa25x_init(void
                clks_register(&pxa25x_hwuart_clk, 1);
  
        if (cpu_is_pxa21x() || cpu_is_pxa25x()) {
+               reset_status = RCSR;
                clks_register(pxa25x_clks, ARRAY_SIZE(pxa25x_clks));
  
                if ((ret = pxa_init_dma(16)))
index 6bec43484ba7dc5e05b555672a3afa9b63338908,a8c12347a5a955f13a072fc13204f3d6875f6b04..f9f6a9c31f4b06237ab4751c66b9bfc68d55e254
  #include <linux/platform_device.h>
  #include <linux/sysdev.h>
  
 -#include <asm/hardware.h>
 +#include <mach/hardware.h>
  #include <asm/irq.h>
 -#include <asm/arch/irqs.h>
 -#include <asm/arch/pxa-regs.h>
 -#include <asm/arch/pxa2xx-regs.h>
 -#include <asm/arch/mfp-pxa27x.h>
 -#include <asm/arch/reset.h>
 -#include <asm/arch/ohci.h>
 -#include <asm/arch/pm.h>
 -#include <asm/arch/dma.h>
 -#include <asm/arch/i2c.h>
 +#include <mach/irqs.h>
 +#include <mach/pxa-regs.h>
 +#include <mach/pxa2xx-regs.h>
 +#include <mach/mfp-pxa27x.h>
++#include <mach/reset.h>
 +#include <mach/ohci.h>
 +#include <mach/pm.h>
 +#include <mach/dma.h>
 +#include <mach/i2c.h>
  
  #include "generic.h"
  #include "devices.h"
@@@ -384,6 -385,9 +385,9 @@@ static int __init pxa27x_init(void
        int i, ret = 0;
  
        if (cpu_is_pxa27x()) {
+               reset_status = RCSR;
                clks_register(pxa27x_clks, ARRAY_SIZE(pxa27x_clks));
  
                if ((ret = pxa_init_dma(32)))
index 00b4de6d6bdd421a754330eef2c2cbadc1a553f8,d93d3e6a6e2777a6b83461ae166599330844ce89..73d04d81c75a2307b245ce27b155e01e5838eea1
  #include <linux/kernel.h>
  #include <linux/device.h>
  
 -#include <asm/hardware.h>
 -#include <asm/arch/pxa2xx-regs.h>
 -#include <asm/arch/mfp-pxa2xx.h>
 -#include <asm/arch/mfp-pxa25x.h>
 -#include <asm/arch/reset.h>
 -#include <asm/arch/irda.h>
++#include <mach/hardware.h>
++#include <mach/pxa2xx-regs.h>
 +#include <mach/mfp-pxa2xx.h>
 +#include <mach/mfp-pxa25x.h>
++#include <mach/reset.h>
 +#include <mach/irda.h>
  
+ void pxa2xx_clear_reset_status(unsigned int mask)
+ {
+       /* RESET_STATUS_* has a 1:1 mapping with RCSR */
+       RCSR = mask;
+ }
  static unsigned long pxa2xx_mfp_fir[] = {
        GPIO46_FICP_RXD,
        GPIO47_FICP_TXD,
index 37b07212b5a519760785bb82cfc5057dcab1cf0f,3d36c790f5ce974009bbc8e313c5f58a08639f6d..03cbc38103ed230d3bf4f1309b9d8b6a6d0fba99
  #include <linux/io.h>
  #include <linux/sysdev.h>
  
 -#include <asm/hardware.h>
 -#include <asm/arch/pxa3xx-regs.h>
 -#include <asm/arch/reset.h>
 -#include <asm/arch/ohci.h>
 -#include <asm/arch/pm.h>
 -#include <asm/arch/dma.h>
 -#include <asm/arch/ssp.h>
 +#include <mach/hardware.h>
 +#include <mach/pxa3xx-regs.h>
++#include <mach/reset.h>
 +#include <mach/ohci.h>
 +#include <mach/pm.h>
 +#include <mach/dma.h>
 +#include <mach/ssp.h>
  
  #include "generic.h"
  #include "devices.h"
@@@ -109,6 -110,12 +110,12 @@@ unsigned int pxa3xx_get_memclk_frequenc
        return (clk / 10000);
  }
  
+ void pxa3xx_clear_reset_status(unsigned int mask)
+ {
+       /* RESET_STATUS_* has a 1:1 mapping with ARSR */
+       ARSR = mask;
+ }
  /*
   * Return the current AC97 clock frequency.
   */
@@@ -532,6 -539,9 +539,9 @@@ static int __init pxa3xx_init(void
        int i, ret = 0;
  
        if (cpu_is_pxa3xx()) {
+               reset_status = ARSR;
                /*
                 * clear RDH bit every time after reset
                 *
index fabead71d681a88272343bbd01b296648f0e1379,56f60d923a9dc7a71e2ee2dfe081450fbfe017f6..9996c612c3d685d2ed749578f118b93262bfb6cc
  #include <asm/io.h>
  #include <asm/proc-fns.h>
  
 -#include <asm/arch/pxa-regs.h>
 -#include <asm/arch/reset.h>
 +#include <mach/pxa-regs.h>
- #include <mach/pxa2xx-regs.h>
++#include <mach/reset.h>
+ unsigned int reset_status;
+ EXPORT_SYMBOL(reset_status);
  
  static void do_hw_reset(void);
  
@@@ -77,8 -80,7 +80,7 @@@ static void do_hw_reset(void
  
  void arch_reset(char mode)
  {
-       if (cpu_is_pxa2xx())
-               RCSR = RCSR_HWR | RCSR_WDR | RCSR_SMR | RCSR_GPR;
+       clear_reset_status(RESET_STATUS_ALL);
  
        switch (mode) {
        case 's':
index 26b9fa56cffd9ed6b81a1fc8c453855f5892dca0,207fe3e6a3d200d8e07d3261ff5b40c7a2dae9e7..cd39005c98ff2279124a2b23d00b4fb79eae41a3
@@@ -26,7 -26,7 +26,7 @@@
  #include <asm/setup.h>
  #include <asm/memory.h>
  #include <asm/mach-types.h>
 -#include <asm/hardware.h>
 +#include <mach/hardware.h>
  #include <asm/irq.h>
  #include <asm/io.h>
  #include <asm/system.h>
  #include <asm/mach/map.h>
  #include <asm/mach/irq.h>
  
 -#include <asm/arch/pxa-regs.h>
 -#include <asm/arch/pxa2xx-regs.h>
 -#include <asm/arch/pxa2xx-gpio.h>
 -#include <asm/arch/pxa27x-udc.h>
 -#include <asm/arch/reset.h>
 -#include <asm/arch/irda.h>
 -#include <asm/arch/mmc.h>
 -#include <asm/arch/ohci.h>
 -#include <asm/arch/udc.h>
 -#include <asm/arch/pxafb.h>
 -#include <asm/arch/akita.h>
 -#include <asm/arch/spitz.h>
 -#include <asm/arch/sharpsl.h>
 +#include <mach/pxa-regs.h>
 +#include <mach/pxa2xx-regs.h>
 +#include <mach/pxa2xx-gpio.h>
 +#include <mach/pxa27x-udc.h>
++#include <mach/reset.h>
 +#include <mach/irda.h>
 +#include <mach/mmc.h>
 +#include <mach/ohci.h>
 +#include <mach/udc.h>
 +#include <mach/pxafb.h>
 +#include <mach/akita.h>
 +#include <mach/spitz.h>
 +#include <mach/sharpsl.h>
  
  #include <asm/mach/sharpsl_param.h>
  #include <asm/hardware/scoop.h>
diff --combined arch/arm/mach-pxa/tosa.c
index 38bc59c441101324e94b668ee96ec57cf907366b,4bd7d4f006e27840f8600b279e04d84bc3f55d7a..5dab30eafddc83c750d46a7990b51c1c032c8271
  
  #include <asm/setup.h>
  #include <asm/mach-types.h>
 -#include <asm/arch/pxa2xx-regs.h>
 -#include <asm/arch/mfp-pxa25x.h>
 -#include <asm/arch/reset.h>
 -#include <asm/arch/irda.h>
 -#include <asm/arch/i2c.h>
 -#include <asm/arch/mmc.h>
 -#include <asm/arch/udc.h>
 -#include <asm/arch/tosa_bt.h>
 +#include <mach/pxa2xx-regs.h>
 +#include <mach/mfp-pxa25x.h>
++#include <mach/reset.h>
 +#include <mach/irda.h>
 +#include <mach/i2c.h>
 +#include <mach/mmc.h>
 +#include <mach/udc.h>
 +#include <mach/tosa_bt.h>
  
  #include <asm/mach/arch.h>
 -#include <asm/arch/tosa.h>
 +#include <mach/tosa.h>
  
  #include <asm/hardware/scoop.h>
  #include <asm/mach/sharpsl_param.h>
index 5a08fe20a31934c06aeef301b7182e6de4384128,3b6fc090c8ef6e28586b2b106e5961f2e7adee02..1362994c78aa1ede98cdc4661cb1cb56623378e0
@@@ -21,7 -21,7 +21,7 @@@
  
  #include <asm/div64.h>
  #include <asm/cnt32_to_63.h>
 -#include <asm/hardware.h>
 +#include <mach/hardware.h>
  #include <asm/system.h>
  #include <asm/pgtable.h>
  #include <asm/mach/map.h>
@@@ -31,6 -31,9 +31,9 @@@
  
  #include "generic.h"
  
+ unsigned int reset_status;
+ EXPORT_SYMBOL(reset_status);
  #define NR_FREQS      16
  
  /*
index 0000000000000000000000000000000000000000,f61957e6842a50a88fd9d5cf042e253bf296ec6d..f61957e6842a50a88fd9d5cf042e253bf296ec6d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,18 +1,18 @@@
+ #ifndef __ASM_ARCH_RESET_H
+ #define __ASM_ARCH_RESET_H
+ #include "hardware.h"
+ #define RESET_STATUS_HARDWARE (1 << 0)        /* Hardware Reset */
+ #define RESET_STATUS_WATCHDOG (1 << 1)        /* Watchdog Reset */
+ #define RESET_STATUS_LOWPOWER (1 << 2)        /* Exit from Low Power/Sleep */
+ #define RESET_STATUS_GPIO     (1 << 3)        /* GPIO Reset */
+ #define RESET_STATUS_ALL      (0xf)
+ extern unsigned int reset_status;
+ static inline void clear_reset_status(unsigned int mask)
+ {
+       RCSR = mask;
+ }
+ #endif /* __ASM_ARCH_RESET_H */
index 52a533c274fdda2afc785e00af1af6f76ffa7637,e42002d2f815898069dd13ff365b96f616554d3f..97d9da758dccd7a0977ffea9d93ec0938f4b749b
  #include <linux/bitops.h>
  
  #ifdef CONFIG_ARCH_PXA
 -#include <asm/arch/pxa-regs.h>
 +#include <mach/pxa-regs.h>
  #endif
  
 -#include <asm/arch/reset.h>
 -
 -#include <asm/hardware.h>
++#include <mach/reset.h>
 +#include <mach/hardware.h>
  #include <asm/uaccess.h>
  
  #define OSCR_FREQ             CLOCK_TICK_RATE
@@@ -162,7 -164,8 +163,8 @@@ static int __init sa1100dog_init(void
         * we suspend, RCSR will be cleared, and the watchdog
         * reset reason will be lost.
         */
-       boot_status = (RCSR & RCSR_WDR) ? WDIOF_CARDRESET : 0;
+       boot_status = (reset_status & RESET_STATUS_WATCHDOG) ?
+                               WDIOF_CARDRESET : 0;
        pre_margin = OSCR_FREQ * margin;
  
        ret = misc_register(&sa1100dog_miscdev);