Merge branch 'pxa-devel' into pxa
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sat, 12 Jul 2008 20:43:51 +0000 (21:43 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 12 Jul 2008 20:43:51 +0000 (21:43 +0100)
1  2 
arch/arm/mach-pxa/Kconfig
arch/arm/mach-pxa/clock.h
arch/arm/mach-pxa/mainstone.c
arch/arm/mach-pxa/ssp.c
include/asm-arm/arch-pxa/irqs.h

@@@ -124,19 -124,10 +124,19 @@@ config MACH_E33
          Say Y here if you intend to run this kernel on a Toshiba
          e330 family PDA.
  
 +config MACH_E350
 +      bool "Toshiba e350"
 +      default y
 +      depends on ARCH_PXA_ESERIES
 +      help
 +        Say Y here if you intend to run this kernel on a Toshiba
 +        e350 family PDA.
 +
  config MACH_E740
        bool "Toshiba e740"
        default y
        depends on ARCH_PXA_ESERIES
 +      select FB_W100
        help
          Say Y here if you intend to run this kernel on a Toshiba
          e740 family PDA.
@@@ -145,7 -136,6 +145,7 @@@ config MACH_E75
        bool "Toshiba e750"
        default y
        depends on ARCH_PXA_ESERIES
 +      select FB_W100
        help
          Say Y here if you intend to run this kernel on a Toshiba
          e750 family PDA.
@@@ -162,7 -152,6 +162,7 @@@ config MACH_E80
        bool "Toshiba e800"
        default y
        depends on ARCH_PXA_ESERIES
 +      select FB_W100
        help
          Say Y here if you intend to run this kernel on a Toshiba
          e800 family PDA.
@@@ -184,7 -173,7 +184,7 @@@ config MACH_COLIBR
        select PXA27x
  
  config MACH_ZYLONITE
-       bool "PXA3xx Development Platform"
+       bool "PXA3xx Development Platform (aka Zylonite)"
        select PXA3xx
        select HAVE_PWM
  
@@@ -200,6 -189,7 +200,6 @@@ config MACH_ARMCOR
  
  config MACH_MAGICIAN
        bool "Enable HTC Magician Support"
 -      depends on ARCH_PXA
        select PXA27x
        select IWMMXT
  
@@@ -209,20 -199,6 +209,20 @@@ config MACH_PCM02
        select IWMMXT
        select PXA_SSP
  
 +config ARCH_PXA_PALM
 +      bool "PXA based Palm PDAs"
 +      select HAVE_PWM
 +
 +config MACH_PALMTX
 +      bool "Palm T|X"
 +      default y
 +      depends on ARCH_PXA_PALM
 +      select PXA27x
 +      select IWMMXT
 +      help
 +        Say Y here if you intend to run this kernel on a Palm T|X
 +        handheld computer.
 +
  config MACH_PCM990_BASEBOARD
        bool "PHYTEC PCM-990 development board"
        select HAVE_PWM
@@@ -244,42 -220,6 +244,42 @@@ config PCM990_DISPLAY_NON
  endchoice
  
  
 +config PXA_EZX
 +      bool "Motorola EZX Platform"
 +      select PXA27x
 +      select IWMMXT
 +      select HAVE_PWM
 +
 +config MACH_EZX_A780
 +      bool "Motorola EZX A780"
 +      default y
 +      depends on PXA_EZX
 +
 +config MACH_EZX_E680
 +      bool "Motorola EZX E680"
 +      default y
 +      depends on PXA_EZX
 +
 +config MACH_EZX_A1200
 +      bool "Motorola EZX A1200"
 +      default y
 +      depends on PXA_EZX
 +
 +config MACH_EZX_A910
 +      bool "Motorola EZX A910"
 +      default y
 +      depends on PXA_EZX
 +
 +config MACH_EZX_E6
 +      bool "Motorola EZX E6"
 +      default y
 +      depends on PXA_EZX
 +
 +config MACH_EZX_E2
 +      bool "Motorola EZX E2"
 +      default y
 +      depends on PXA_EZX
 +
  endmenu
  
  config PXA25x
@@@ -321,13 -261,4 +321,13 @@@ config PXA_PW
        default BACKLIGHT_PWM
        help
          Enable support for PXA2xx/PXA3xx PWM controllers
 +
 +config TOSA_BT
 +      tristate "Control the state of built-in bluetooth chip on Sharp SL-6000"
 +      depends on MACH_TOSA
 +      select RFKILL
 +      help
 +        This is a simple driver that is able to control
 +        the state of built in bluetooth chip on tosa.
 +
  endif
@@@ -47,18 -47,33 +47,42 @@@ struct clk 
                .other  = _other,                       \
        }
  
 +#define INIT_CLK(_name, _ops, _rate, _delay, _dev)      \
 +      {                                               \
 +              .name   = _name,                        \
 +              .dev    = _dev,                         \
 +              .ops    = _ops,                         \
 +              .rate   = _rate,                        \
 +              .delay  = _delay,                       \
 +      }
 +
  extern const struct clkops clk_cken_ops;
  
  void clk_cken_enable(struct clk *clk);
  void clk_cken_disable(struct clk *clk);
  
+ #ifdef CONFIG_PXA3xx
+ #define PXA3xx_CKEN(_name, _cken, _rate, _delay, _dev)        \
+       {                                               \
+               .name   = _name,                        \
+               .dev    = _dev,                         \
+               .ops    = &clk_pxa3xx_cken_ops,         \
+               .rate   = _rate,                        \
+               .cken   = CKEN_##_cken,                 \
+               .delay  = _delay,                       \
+       }
+ #define PXA3xx_CK(_name, _cken, _ops, _dev)           \
+       {                                               \
+               .name   = _name,                        \
+               .dev    = _dev,                         \
+               .ops    = _ops,                         \
+               .cken   = CKEN_##_cken,                 \
+       }
+ extern const struct clkops clk_pxa3xx_cken_ops;
+ extern void clk_pxa3xx_cken_enable(struct clk *);
+ extern void clk_pxa3xx_cken_disable(struct clk *);
+ #endif
  void clks_register(struct clk *clks, size_t num);
@@@ -110,9 -110,9 +110,9 @@@ static unsigned long mainstone_pin_conf
        GPIO45_AC97_SYSCLK,
  
        /* Keypad */
-       GPIO93_KP_DKIN_0        | WAKEUP_ON_LEVEL_HIGH,
-       GPIO94_KP_DKIN_1        | WAKEUP_ON_LEVEL_HIGH,
-       GPIO95_KP_DKIN_2        | WAKEUP_ON_LEVEL_HIGH,
+       GPIO93_KP_DKIN_0,
+       GPIO94_KP_DKIN_1,
+       GPIO95_KP_DKIN_2,
        GPIO100_KP_MKIN_0       | WAKEUP_ON_LEVEL_HIGH,
        GPIO101_KP_MKIN_1       | WAKEUP_ON_LEVEL_HIGH,
        GPIO102_KP_MKIN_2       | WAKEUP_ON_LEVEL_HIGH,
@@@ -455,7 -455,6 +455,7 @@@ static void mainstone_irda_transceiver_
        } else if (mode & IR_FIRMODE) {
                MST_MSCWR1 |= MST_MSCWR1_IRDA_FIR;
        }
 +      pxa2xx_transceiver_mode(dev, mode);
        if (mode & IR_OFF) {
                MST_MSCWR1 = (MST_MSCWR1 & ~MST_MSCWR1_IRDA_MASK) | MST_MSCWR1_IRDA_OFF;
        } else {
@@@ -514,7 -513,7 +514,7 @@@ static struct pxaohci_platform_data mai
        .init           = mainstone_ohci_init,
  };
  
- #if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULES)
+ #if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE)
  static unsigned int mainstone_matrix_keys[] = {
        KEY(0, 0, KEY_A), KEY(1, 0, KEY_B), KEY(2, 0, KEY_C),
        KEY(3, 0, KEY_D), KEY(4, 0, KEY_E), KEY(5, 0, KEY_F),
diff --combined arch/arm/mach-pxa/ssp.c
   *  IO-based SSP applications and allows easy port setup for DMA access.
   *
   *  Author: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
-  *
-  *  Revision history:
-  *   22nd Aug 2003 Initial version.
-  *   20th Dec 2004 Added ssp_config for changing port config without
-  *                 closing the port.
-  *    4th Aug 2005 Added option to disable irq handler registration and
-  *                 cleaned up irq and clock detection.
   */
  
  #include <linux/module.h>
@@@ -285,7 -278,7 +278,7 @@@ int ssp_init(struct ssp_dev *dev, u32 p
                        goto out_region;
                dev->irq = ssp->irq;
        } else
-               dev->irq = 0;
+               dev->irq = NO_IRQ;
  
        /* turn on SSP port clock */
        clk_enable(ssp->clk);
@@@ -306,7 -299,8 +299,8 @@@ void ssp_exit(struct ssp_dev *dev
        struct ssp_device *ssp = dev->ssp;
  
        ssp_disable(dev);
-       free_irq(dev->irq, dev);
+       if (dev->irq != NO_IRQ)
+               free_irq(dev->irq, dev);
        clk_disable(ssp->clk);
        ssp_free(ssp);
  }
@@@ -330,7 -324,7 +324,7 @@@ struct ssp_device *ssp_request(int port
  
        mutex_unlock(&ssp_lock);
  
 -      if (ssp->port_id != port)
 +      if (&ssp->node == &ssp_list)
                return NULL;
  
        return ssp;
@@@ -360,6 -354,7 +354,7 @@@ static int __devinit ssp_probe(struct p
                dev_err(&pdev->dev, "failed to allocate memory");
                return -ENOMEM;
        }
+       ssp->pdev = pdev;
  
        ssp->clk = clk_get(&pdev->dev, "SSPCLK");
        if (IS_ERR(ssp->clk)) {
  #define NR_IRQS                       (IRQ_LOCOMO_SPI_TEND + 1)
  #elif defined(CONFIG_ARCH_LUBBOCK) || \
        defined(CONFIG_MACH_LOGICPD_PXA270) || \
 +      defined(CONFIG_MACH_TOSA) || \
        defined(CONFIG_MACH_MAINSTONE) || \
        defined(CONFIG_MACH_PCM027) || \
        defined(CONFIG_MACH_MAGICIAN)
  #define NR_IRQS                       (IRQ_BOARD_END)
+ #elif defined(CONFIG_MACH_ZYLONITE)
+ #define NR_IRQS                       (IRQ_BOARD_START + 32)
  #else
  #define NR_IRQS                       (IRQ_BOARD_START)
  #endif