Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Linus Torvalds [Sat, 14 Jan 2012 04:43:32 +0000 (20:43 -0800)]
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (59 commits)
  rtc: max8925: Add function to work as wakeup source
  mfd: Add pm ops to max8925
  mfd: Convert aat2870 to dev_pm_ops
  mfd: Still check other interrupts if we get a wm831x touchscreen IRQ
  mfd: Introduce missing kfree in 88pm860x probe routine
  mfd: Add S5M series configuration
  mfd: Add s5m series irq driver
  mfd: Add S5M core driver
  mfd: Improve mc13xxx dt binding document
  mfd: Fix stmpe section mismatch
  mfd: Fix stmpe build warning
  mfd: Fix STMPE I2c build failure
  mfd: Constify aat2870-core i2c_device_id table
  gpio: Add support for stmpe variant 801
  mfd: Add support for stmpe variant 801
  mfd: Add support for stmpe variant 610
  mfd: Add support for STMPE SPI interface
  mfd: Separate out STMPE controller and interface specific code
  misc: Remove max8997-muic sysfs attributes
  mfd: Remove unused wm831x_irq_data_to_mask_reg()
  ...

Fix up trivial conflict in drivers/leds/Kconfig due to addition of
LEDS_MAX8997 and LEDS_TCA6507 next to each other.

22 files changed:
1  2 
arch/arm/mach-sa1100/assabet.c
arch/arm/mach-sa1100/cerf.c
arch/arm/mach-sa1100/collie.c
arch/arm/mach-sa1100/generic.c
arch/arm/mach-sa1100/lart.c
arch/arm/mach-sa1100/shannon.c
arch/arm/mach-sa1100/simpad.c
arch/arm/mach-ux500/board-mop500.c
arch/arm/mach-ux500/board-u5500.c
drivers/input/misc/ab8500-ponkey.c
drivers/leds/Kconfig
drivers/leds/Makefile
drivers/mfd/Kconfig
drivers/mfd/Makefile
drivers/mfd/omap-usb-host.c
drivers/regulator/ab8500.c
drivers/rtc/rtc-ab8500.c
drivers/rtc/rtc-max8925.c
include/linux/mfd/max8925.h
include/linux/mfd/mc13xxx.h
include/linux/mod_devicetable.h
scripts/mod/file2alias.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -10,9 -10,8 +10,9 @@@
  #include <linux/amba/bus.h>
  #include <linux/irq.h>
  #include <linux/i2c.h>
- #include <linux/mfd/ab5500/ab5500.h>
+ #include <linux/mfd/abx500/ab5500.h>
  
 +#include <asm/hardware/gic.h>
  #include <asm/mach/arch.h>
  #include <asm/mach-types.h>
  
Simple merge
@@@ -388,14 -387,13 +388,21 @@@ config LEDS_RENESAS_TP
          pin function. The latter to support brightness control.
          Brightness control is supported but hardware blinking is not.
  
 +config LEDS_TCA6507
 +      tristate "LED Support for TCA6507 I2C chip"
 +      depends on LEDS_CLASS && I2C
 +      help
 +        This option enables support for LEDs connected to TC6507
 +        LED driver chips accessed via the I2C bus.
 +        Driver support brightness control and hardware-assisted blinking.
 +
+ config LEDS_MAX8997
+       tristate "LED support for MAX8997 PMIC"
+       depends on LEDS_CLASS && MFD_MAX8997
+       help
+         This option enables support for on-chip LED drivers on
+         MAXIM MAX8997 PMIC.
  config LEDS_TRIGGERS
        bool "LED Trigger support"
        depends on LEDS_CLASS
Simple merge
Simple merge
Simple merge
@@@ -436,86 -705,23 +436,80 @@@ static int usbhs_runtime_resume(struct 
        }
  
        spin_lock_irqsave(&omap->lock, flags);
 -      if (omap->count > 0)
 -              goto end_count;
  
 -      clk_enable(omap->usbhost_ick);
 -      clk_enable(omap->usbhost_hs_fck);
 -      clk_enable(omap->usbhost_fs_fck);
 -      clk_enable(omap->usbtll_fck);
 -      clk_enable(omap->usbtll_ick);
 +      if (omap->ehci_logic_fck && !IS_ERR(omap->ehci_logic_fck))
 +              clk_enable(omap->ehci_logic_fck);
 +
 +      if (is_ehci_tll_mode(pdata->port_mode[0])) {
 +              clk_enable(omap->usbhost_p1_fck);
 +              clk_enable(omap->usbtll_p1_fck);
 +      }
 +      if (is_ehci_tll_mode(pdata->port_mode[1])) {
 +              clk_enable(omap->usbhost_p2_fck);
 +              clk_enable(omap->usbtll_p2_fck);
 +      }
 +      clk_enable(omap->utmi_p1_fck);
 +      clk_enable(omap->utmi_p2_fck);
 +
 +      spin_unlock_irqrestore(&omap->lock, flags);
 +
 +      return 0;
 +}
 +
 +static int usbhs_runtime_suspend(struct device *dev)
 +{
 +      struct usbhs_hcd_omap           *omap = dev_get_drvdata(dev);
 +      struct usbhs_omap_platform_data *pdata = &omap->platdata;
 +      unsigned long                   flags;
 +
 +      dev_dbg(dev, "usbhs_runtime_suspend\n");
 +
 +      if (!pdata) {
 +              dev_dbg(dev, "missing platform_data\n");
 +              return  -ENODEV;
 +      }
 +
 +      spin_lock_irqsave(&omap->lock, flags);
 +
 +      if (is_ehci_tll_mode(pdata->port_mode[0])) {
 +              clk_disable(omap->usbhost_p1_fck);
 +              clk_disable(omap->usbtll_p1_fck);
 +      }
 +      if (is_ehci_tll_mode(pdata->port_mode[1])) {
 +              clk_disable(omap->usbhost_p2_fck);
 +              clk_disable(omap->usbtll_p2_fck);
 +      }
 +      clk_disable(omap->utmi_p2_fck);
 +      clk_disable(omap->utmi_p1_fck);
 +
 +      if (omap->ehci_logic_fck && !IS_ERR(omap->ehci_logic_fck))
 +              clk_disable(omap->ehci_logic_fck);
 +
 +      spin_unlock_irqrestore(&omap->lock, flags);
 +
 +      return 0;
 +}
 +
 +static void omap_usbhs_init(struct device *dev)
 +{
 +      struct usbhs_hcd_omap           *omap = dev_get_drvdata(dev);
 +      struct usbhs_omap_platform_data *pdata = &omap->platdata;
 +      unsigned long                   flags;
 +      unsigned                        reg;
 +
 +      dev_dbg(dev, "starting TI HSUSB Controller\n");
 +
 +      pm_runtime_get_sync(dev);
 +      spin_lock_irqsave(&omap->lock, flags);
  
        if (pdata->ehci_data->phy_reset) {
-               if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) {
-                       gpio_request(pdata->ehci_data->reset_gpio_port[0],
-                                               "USB1 PHY reset");
-                       gpio_direction_output
-                               (pdata->ehci_data->reset_gpio_port[0], 0);
-               }
-               if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) {
-                       gpio_request(pdata->ehci_data->reset_gpio_port[1],
-                                               "USB2 PHY reset");
-                       gpio_direction_output
-                               (pdata->ehci_data->reset_gpio_port[1], 0);
-               }
+               if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))
+                       gpio_request_one(pdata->ehci_data->reset_gpio_port[0],
+                                        GPIOF_OUT_INIT_LOW, "USB1 PHY reset");
+               if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))
+                       gpio_request_one(pdata->ehci_data->reset_gpio_port[1],
+                                        GPIOF_OUT_INIT_LOW, "USB2 PHY reset");
  
                /* Hold the PHY in RESET for enough time till DIR is high */
                udelay(10);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge