Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6
Linus Torvalds [Thu, 3 Nov 2011 16:40:51 +0000 (09:40 -0700)]
* 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6: (80 commits)
  mfd: Fix missing abx500 header file updates
  mfd: Add missing <linux/io.h> include to intel_msic
  x86, mrst: add platform support for MSIC MFD driver
  mfd: Expose TurnOnStatus in ab8500 sysfs
  mfd: Remove support for early drop ab8500 chip
  mfd: Add support for ab8500 v3.3
  mfd: Add ab8500 interrupt disable hook
  mfd: Convert db8500-prcmu panic() into pr_crit()
  mfd: Refactor db8500-prcmu request_clock() function
  mfd: Rename db8500-prcmu init function
  mfd: Fix db5500-prcmu defines
  mfd: db8500-prcmu voltage domain consumers additions
  mfd: db8500-prcmu reset code retrieval
  mfd: db8500-prcmu tweak for modem wakeup
  mfd: Add db8500-pcmu watchdog accessor functions for watchdog
  mfd: hwacc power state db8500-prcmu accessor
  mfd: Add db8500-prcmu accessors for PLL and SGA clock
  mfd: Move to the new db500 PRCMU API
  mfd: Create a common interface for dbx500 PRCMU drivers
  mfd: Initialize DB8500 PRCMU regs
  ...

Fix up trivial conflicts in
arch/arm/mach-imx/mach-mx31moboard.c
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-u300/include/mach/irqs.h
drivers/mfd/wm831x-spi.c

21 files changed:
1  2 
arch/arm/mach-imx/mach-mx27_3ds.c
arch/arm/mach-imx/mach-mx31_3ds.c
arch/arm/mach-imx/mach-mx31lite.c
arch/arm/mach-imx/mach-mx31moboard.c
arch/arm/mach-imx/mach-pcm038.c
arch/arm/mach-mx5/mx51_efika.c
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-u300/include/mach/irqs.h
arch/arm/mach-ux500/board-u5500.c
arch/arm/mach-ux500/cpu.c
arch/x86/platform/mrst/mrst.c
drivers/gpio/Kconfig
drivers/i2c/busses/Kconfig
drivers/input/misc/Kconfig
drivers/input/misc/Makefile
drivers/mfd/Kconfig
drivers/mfd/menelaus.c
drivers/mfd/wm8994-core.c
include/linux/mfd/wm831x/core.h
include/linux/mfd/wm8994/core.h

Simple merge
Simple merge
Simple merge
  #include <linux/spi/spi.h>
  #include <linux/types.h>
  #include <linux/memblock.h>
 +#include <linux/clk.h>
 +#include <linux/io.h>
 +#include <linux/err.h>
+ #include <linux/input.h>
  
  #include <linux/usb/otg.h>
  #include <linux/usb/ulpi.h>
Simple merge
Simple merge
Simple merge
@@@ -444,6 -445,23 +445,11 @@@ static struct platform_device keys_gpi
        },
  };
  
 -static void __init omap3_beagle_init_early(void)
 -{
 -      omap2_init_common_infrastructure();
 -      omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
 -                                mt46h32m32lf6_sdrc_params);
 -}
 -
 -static void __init omap3_beagle_init_irq(void)
 -{
 -      omap3_init_irq();
 -}
 -
+ static struct platform_device madc_hwmon = {
+       .name   = "twl4030_madc_hwmon",
+       .id     = -1,
+ };
  static struct platform_device *omap3_beagle_devices[] __initdata = {
        &leds_gpio,
        &keys_gpio,
  #define IRQ_U300_NFIF                 45
  #define IRQ_U300_NFIF2                        46
  #define IRQ_U300_SYSCON_PLL_LOCK      47
 -#define U300_NR_IRQS                  48
 +#define U300_VIC_IRQS_END             48
  #endif
  
 -#define NR_IRQS U300_NR_IRQS
 +/* Maximum 8*7 GPIO lines */
 +#ifdef CONFIG_GPIO_U300
 +#define IRQ_U300_GPIO_BASE            (U300_VIC_IRQS_END)
 +#define IRQ_U300_GPIO_END             (IRQ_U300_GPIO_BASE + 56)
 +#else
 +#define IRQ_U300_GPIO_END             (U300_VIC_IRQS_END)
 +#endif
 +
- /* Optional AB3550 mixsig chip */
- #ifdef CONFIG_AB3550_CORE
- #define IRQ_AB3550_BASE                       (IRQ_U300_GPIO_END)
- #define IRQ_AB3550_END                        (IRQ_AB3550_BASE + 38)
- #else
- #define IRQ_AB3550_END                        (IRQ_U300_GPIO_END)
- #endif
- #define NR_IRQS                               (IRQ_AB3550_END)
++#define NR_IRQS                               (IRQ_U300_GPIO_END)
  
  #endif
@@@ -8,8 -8,10 +8,9 @@@
  #include <linux/init.h>
  #include <linux/platform_device.h>
  #include <linux/amba/bus.h>
 -#include <linux/gpio.h>
  #include <linux/irq.h>
  #include <linux/i2c.h>
+ #include <linux/mfd/ab5500/ab5500.h>
  
  #include <asm/mach/arch.h>
  #include <asm/mach-types.h>
@@@ -47,6 -53,96 +47,6 @@@ void __init ux500_init_irq(void
        if (cpu_is_u5500())
                db5500_prcmu_early_init();
        if (cpu_is_u8500())
-               prcmu_early_init();
+               db8500_prcmu_early_init();
        clk_init();
  }
 -
 -#ifdef CONFIG_CACHE_L2X0
 -static inline void ux500_cache_wait(void __iomem *reg, unsigned long mask)
 -{
 -      /* wait for the operation to complete */
 -      while (readl_relaxed(reg) & mask)
 -              ;
 -}
 -
 -static inline void ux500_cache_sync(void)
 -{
 -      void __iomem *base = l2x0_base;
 -
 -      writel_relaxed(0, base + L2X0_CACHE_SYNC);
 -      ux500_cache_wait(base + L2X0_CACHE_SYNC, 1);
 -}
 -
 -/*
 - * The L2 cache cannot be turned off in the non-secure world.
 - * Dummy until a secure service is in place.
 - */
 -static void ux500_l2x0_disable(void)
 -{
 -}
 -
 -/*
 - * This is only called when doing a kexec, just after turning off the L2
 - * and L1 cache, and it is surrounded by a spinlock in the generic version.
 - * However, we're not really turning off the L2 cache right now and the
 - * PL310 does not support exclusive accesses (used to implement the spinlock).
 - * So, the invalidation needs to be done without the spinlock.
 - */
 -static void ux500_l2x0_inv_all(void)
 -{
 -      void __iomem *base = l2x0_base;
 -      uint32_t l2x0_way_mask = (1<<16) - 1;   /* Bitmask of active ways */
 -
 -      /* invalidate all ways */
 -      writel_relaxed(l2x0_way_mask, base + L2X0_INV_WAY);
 -      ux500_cache_wait(base + L2X0_INV_WAY, l2x0_way_mask);
 -      ux500_cache_sync();
 -}
 -
 -static int ux500_l2x0_init(void)
 -{
 -      if (cpu_is_u5500())
 -              l2x0_base = __io_address(U5500_L2CC_BASE);
 -      else if (cpu_is_u8500())
 -              l2x0_base = __io_address(U8500_L2CC_BASE);
 -      else
 -              ux500_unknown_soc();
 -
 -      /* 64KB way size, 8 way associativity, force WA */
 -      l2x0_init(l2x0_base, 0x3e060000, 0xc0000fff);
 -
 -      /* Override invalidate function */
 -      outer_cache.disable = ux500_l2x0_disable;
 -      outer_cache.inv_all = ux500_l2x0_inv_all;
 -
 -      return 0;
 -}
 -early_initcall(ux500_l2x0_init);
 -#endif
 -
 -static void __init ux500_timer_init(void)
 -{
 -#ifdef CONFIG_LOCAL_TIMERS
 -      /* Setup the local timer base */
 -      if (cpu_is_u5500())
 -              twd_base = __io_address(U5500_TWD_BASE);
 -      else if (cpu_is_u8500())
 -              twd_base = __io_address(U8500_TWD_BASE);
 -      else
 -              ux500_unknown_soc();
 -#endif
 -      if (cpu_is_u5500())
 -              mtu_base = __io_address(U5500_MTU0_BASE);
 -      else if (cpu_is_u8500ed())
 -              mtu_base = __io_address(U8500_MTU0_BASE_ED);
 -      else if (cpu_is_u8500())
 -              mtu_base = __io_address(U8500_MTU0_BASE);
 -      else
 -              ux500_unknown_soc();
 -
 -      nmdk_timer_init();
 -}
 -
 -struct sys_timer ux500_timer = {
 -      .init   = ux500_timer_init,
 -};
Simple merge
@@@ -178,18 -178,9 +178,18 @@@ config GPIO_SC
          The Intel Tunnel Creek processor has 5 GPIOs powered by the
          core power rail and 9 from suspend power supply.
  
 +config GPIO_U300
 +      bool "ST-Ericsson U300 COH 901 335/571 GPIO"
 +      depends on GPIOLIB && ARCH_U300
 +      help
 +        Say yes here to support GPIO interface on ST-Ericsson U300.
 +        The names of the two IP block variants supported are
 +        COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
 +        ports of 8 GPIO pins each.
 +
  config GPIO_VX855
        tristate "VIA VX855/VX875 GPIO"
-       depends on MFD_SUPPORT && PCI
+       depends on PCI
        select MFD_CORE
        select MFD_VX855
        help
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -57,8 -56,15 +57,10 @@@ struct wm8994 
        enum wm8994_type type;
  
        struct device *dev;
 -      int (*read_dev)(struct wm8994 *wm8994, unsigned short reg,
 -                      int bytes, void *dest);
 -      int (*write_dev)(struct wm8994 *wm8994, unsigned short reg,
 -                       int bytes, const void *src);
 -
 -      void *control_data;
 +      struct regmap *regmap;
  
+       bool ldo_ena_always_driven;
        int gpio_base;
        int irq_base;