OSDN Git Service

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

@@@ -25,7 -25,8 +25,8 @@@
  #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"
  
index f8fb1e7,0000000..e89df4d
mode 100644,000000..100644
--- /dev/null
@@@ -1,240 -1,0 +1,235 @@@
- /*
-  * register GPIO as reset generator
-  */
- extern int init_gpio_reset(int gpio);
 +/*
 + *  arch/arm/mach-pxa/include/mach/hardware.h
 + *
 + *  Author:   Nicolas Pitre
 + *  Created:  Jun 15, 2001
 + *  Copyright:        MontaVista Software Inc.
 + *
 + * 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.
 + */
 +
 +#ifndef __ASM_ARCH_HARDWARE_H
 +#define __ASM_ARCH_HARDWARE_H
 +
 +/*
 + * We requires absolute addresses.
 + */
 +#define PCIO_BASE             0
 +
 +/*
 + * Workarounds for at least 2 errata so far require this.
 + * The mapping is set in mach-pxa/generic.c.
 + */
 +#define UNCACHED_PHYS_0               0xff000000
 +#define UNCACHED_ADDR         UNCACHED_PHYS_0
 +
 +/*
 + * Intel PXA2xx internal register mapping:
 + *
 + * 0x40000000 - 0x41ffffff <--> 0xf2000000 - 0xf3ffffff
 + * 0x44000000 - 0x45ffffff <--> 0xf4000000 - 0xf5ffffff
 + * 0x48000000 - 0x49ffffff <--> 0xf6000000 - 0xf7ffffff
 + * 0x4c000000 - 0x4dffffff <--> 0xf8000000 - 0xf9ffffff
 + * 0x50000000 - 0x51ffffff <--> 0xfa000000 - 0xfbffffff
 + * 0x54000000 - 0x55ffffff <--> 0xfc000000 - 0xfdffffff
 + * 0x58000000 - 0x59ffffff <--> 0xfe000000 - 0xffffffff
 + *
 + * Note that not all PXA2xx chips implement all those addresses, and the
 + * kernel only maps the minimum needed range of this mapping.
 + */
 +#define io_p2v(x) (0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))
 +#define io_v2p(x) (0x3c000000 + ((x) & 0x01ffffff) + (((x) & 0x0e000000) << 1))
 +
 +#ifndef __ASSEMBLY__
 +
 +# define __REG(x)     (*((volatile u32 *)io_p2v(x)))
 +
 +/* With indexed regs we don't want to feed the index through io_p2v()
 +   especially if it is a variable, otherwise horrible code will result. */
 +# define __REG2(x,y)  \
 +      (*(volatile u32 *)((u32)&__REG(x) + (y)))
 +
 +# define __PREG(x)    (io_v2p((u32)&(x)))
 +
 +#else
 +
 +# define __REG(x)     io_p2v(x)
 +# define __PREG(x)    io_v2p(x)
 +
 +#endif
 +
 +#ifndef __ASSEMBLY__
 +
 +#ifdef CONFIG_PXA25x
 +#define __cpu_is_pxa21x(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xf3f;   \
 +              _id == 0x212;                           \
 +      })
 +
 +#define __cpu_is_pxa255(id)                             \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xfff;   \
 +              _id == 0x2d0;                           \
 +       })
 +
 +#define __cpu_is_pxa25x(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xfff;   \
 +              _id == 0x2d0 || _id == 0x290;           \
 +      })
 +#else
 +#define __cpu_is_pxa21x(id)   (0)
 +#define __cpu_is_pxa255(id)   (0)
 +#define __cpu_is_pxa25x(id)   (0)
 +#endif
 +
 +#ifdef CONFIG_PXA27x
 +#define __cpu_is_pxa27x(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xfff;   \
 +              _id == 0x411;                           \
 +      })
 +#else
 +#define __cpu_is_pxa27x(id)   (0)
 +#endif
 +
 +#ifdef CONFIG_CPU_PXA300
 +#define __cpu_is_pxa300(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xfff;   \
 +              _id == 0x688;                           \
 +       })
 +#else
 +#define __cpu_is_pxa300(id)   (0)
 +#endif
 +
 +#ifdef CONFIG_CPU_PXA310
 +#define __cpu_is_pxa310(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xfff;   \
 +              _id == 0x689;                           \
 +       })
 +#else
 +#define __cpu_is_pxa310(id)   (0)
 +#endif
 +
 +#ifdef CONFIG_CPU_PXA320
 +#define __cpu_is_pxa320(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xfff;   \
 +              _id == 0x603 || _id == 0x682;           \
 +       })
 +#else
 +#define __cpu_is_pxa320(id)   (0)
 +#endif
 +
 +#ifdef CONFIG_CPU_PXA930
 +#define __cpu_is_pxa930(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 4 & 0xfff;   \
 +              _id == 0x683;           \
 +       })
 +#else
 +#define __cpu_is_pxa930(id)   (0)
 +#endif
 +
 +#define cpu_is_pxa21x()                                       \
 +      ({                                              \
 +              __cpu_is_pxa21x(read_cpuid_id());       \
 +      })
 +
 +#define cpu_is_pxa255()                                 \
 +      ({                                              \
 +              __cpu_is_pxa255(read_cpuid_id());       \
 +      })
 +
 +#define cpu_is_pxa25x()                                       \
 +      ({                                              \
 +              __cpu_is_pxa25x(read_cpuid_id());       \
 +      })
 +
 +#define cpu_is_pxa27x()                                       \
 +      ({                                              \
 +              __cpu_is_pxa27x(read_cpuid_id());       \
 +      })
 +
 +#define cpu_is_pxa300()                                       \
 +      ({                                              \
 +              __cpu_is_pxa300(read_cpuid_id());       \
 +       })
 +
 +#define cpu_is_pxa310()                                       \
 +      ({                                              \
 +              __cpu_is_pxa310(read_cpuid_id());       \
 +       })
 +
 +#define cpu_is_pxa320()                                       \
 +      ({                                              \
 +              __cpu_is_pxa320(read_cpuid_id());       \
 +       })
 +
 +#define cpu_is_pxa930()                                       \
 +      ({                                              \
 +              unsigned int id = read_cpuid(CPUID_ID); \
 +              __cpu_is_pxa930(id);                    \
 +       })
 +
 +/*
 + * CPUID Core Generation Bit
 + * <= 0x2 for pxa21x/pxa25x/pxa26x/pxa27x
 + * == 0x3 for pxa300/pxa310/pxa320
 + */
 +#define __cpu_is_pxa2xx(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 13 & 0x7;    \
 +              _id <= 0x2;                             \
 +       })
 +
 +#define __cpu_is_pxa3xx(id)                           \
 +      ({                                              \
 +              unsigned int _id = (id) >> 13 & 0x7;    \
 +              _id == 0x3;                             \
 +       })
 +
 +#define cpu_is_pxa2xx()                                       \
 +      ({                                              \
 +              __cpu_is_pxa2xx(read_cpuid_id());       \
 +       })
 +
 +#define cpu_is_pxa3xx()                                       \
 +      ({                                              \
 +              __cpu_is_pxa3xx(read_cpuid_id());       \
 +       })
 +
 +/*
 + * Handy routine to set GPIO alternate functions
 + */
 +extern int pxa_gpio_mode( int gpio_mode );
 +
 +/*
 + * Return GPIO level, nonzero means high, zero is low
 + */
 +extern int pxa_gpio_get_value(unsigned gpio);
 +
 +/*
 + * Set output GPIO level
 + */
 +extern void pxa_gpio_set_value(unsigned gpio, int value);
 +
 +/*
 + * return current memory and LCD clock frequency in units of 10kHz
 + */
 +extern unsigned int get_memclk_frequency_10khz(void);
 +
 +#endif
 +
 +#if defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
 +#define PCIBIOS_MIN_IO                0
 +#define PCIBIOS_MIN_MEM               0
 +#define pcibios_assign_all_busses()   1
 +#endif
 +
 +#endif  /* _ASM_ARCH_HARDWARE_H */
index 0000000,9489a48..9489a48
mode 000000,100644..100644
--- /dev/null
  #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"
  #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"
  #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,
  #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"
  #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);
  
  #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>
  
  #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>
Simple merge
  #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