Merge tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Linus Torvalds [Mon, 25 Feb 2013 04:00:58 +0000 (20:00 -0800)]
Pull MFS updates from Samuel Ortiz:
 "This is the MFD pull request for the 3.9 merge window.

  No new drivers this time, but a bunch of fairly big cleanups:

   - Roger Quadros worked on a OMAP USBHS and TLL platform data
     consolidation, OMAP5 support and clock management code cleanup.

   - The first step of a major sync for the ab8500 driver from Lee
     Jones.  In particular, the debugfs and the sysct interfaces got
     extended and improved.

   - Peter Ujfalusi sent a nice patchset for cleaning and fixing the
     twl-core driver, with a much needed module id lookup code
     improvement.

   - The regular wm5102 and arizona cleanups and fixes from Mark Brown.

   - Laxman Dewangan extended the palmas APIs in order to implement the
     palmas GPIO and rt drivers.

   - Laxman also added DT support for the tps65090 driver.

   - The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra
     and Darren Hart.

   - Linus Walleij patchset for the ab8500 driver allowed ab8500 and
     ab9540 based devices to switch to the new abx500 pin-ctrl driver.

   - The max8925 now has device tree and irqdomain support thanks to
     Qing Xu.

   - The recently added rtsx driver got a few cleanups and fixes for a
     better card detection code path and now also supports the RTS5227
     chipset, thanks to Wei Wang and Roger Tseng."

* tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits)
  mfd: lpc_ich: Use devres API to allocate private data
  mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH
  mfd: lpc_sch: Accomodate partial population of the MFD devices
  mfd: da9052-i2c: Staticize da9052_i2c_fix()
  mfd: syscon: Fix sparse warning
  mfd: twl-core: Fix kernel panic on boot
  mfd: rtsx: Fix issue that booting OS with SD card inserted
  mfd: ab8500: Fix compile error
  mfd: Add missing GENERIC_HARDIRQS dependecies
  Documentation: Add docs for max8925 dt
  mfd: max8925: Add dts
  mfd: max8925: Support dt for backlight
  mfd: max8925: Fix onkey driver irq base
  mfd: max8925: Fix mfd device register failure
  mfd: max8925: Add irqdomain for dt
  mfd: vexpress: Allow vexpress-sysreg to self-initialise
  mfd: rtsx: Support RTS5227
  mfd: rtsx: Implement driving adjustment to device-dependent callbacks
  mfd: vexpress: Add pseudo-GPIO based LEDs
  mfd: ab8500: Rename ab8500 to abx500 for hwmon driver
  ...

14 files changed:
1  2 
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/mfd/ab8500-core.c
drivers/mfd/db8500-prcmu.c
drivers/mfd/vexpress-sysreg.c
drivers/mfd/wm5102-tables.c
drivers/rtc/Kconfig
drivers/rtc/Makefile
drivers/usb/host/ehci-omap.c
include/linux/mfd/abx500.h
include/linux/mfd/abx500/ab8500.h
include/linux/mfd/arizona/pdata.h
include/linux/mfd/arizona/registers.h
include/linux/mfd/dbx500-prcmu.h

@@@ -657,6 -657,19 +657,13 @@@ config GPIO_JANZ_TT
          This driver provides support for driving the pins in output
          mode only. Input mode is not supported.
  
 -config GPIO_AB8500
 -      bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
 -      depends on AB8500_CORE && BROKEN
 -      help
 -        Select this to enable the AB8500 IC GPIO driver
 -
+ config GPIO_PALMAS
+       bool "TI PALMAS series PMICs GPIO"
+       depends on MFD_PALMAS
+       help
+         Select this option to enable GPIO driver for the TI PALMAS
+         series chip family.
  config GPIO_TPS6586X
        bool "TPS6586X GPIO"
        depends on MFD_TPS6586X
Simple merge
Simple merge
@@@ -33,6 -32,8 +33,7 @@@
  #include <linux/regulator/db8500-prcmu.h>
  #include <linux/regulator/machine.h>
  #include <linux/cpufreq.h>
+ #include <linux/platform_data/ux500_wdt.h>
 -#include <asm/hardware/gic.h>
  #include <mach/hardware.h>
  #include <mach/irqs.h>
  #include <mach/db8500-regs.h>
Simple merge
@@@ -317,9 -314,13 +321,13 @@@ static const struct reg_default wm5102_
        { 0x00000218, 0x01A6 },   /* R536   - Mic Bias Ctrl 1 */ 
        { 0x00000219, 0x01A6 },   /* R537   - Mic Bias Ctrl 2 */ 
        { 0x0000021A, 0x01A6 },   /* R538   - Mic Bias Ctrl 3 */ 
+       { 0x00000225, 0x0400 },   /* R549   - HP Ctrl 1L */
+       { 0x00000226, 0x0400 },   /* R550   - HP Ctrl 1R */
        { 0x00000293, 0x0000 },   /* R659   - Accessory Detect Mode 1 */ 
        { 0x0000029B, 0x0020 },   /* R667   - Headphone Detect 1 */ 
+       { 0x0000029C, 0x0000 },   /* R668   - Headphone Detect 2 */
+       { 0x0000029F, 0x0000 },   /* R671   - Headphone Detect Test */
 -      { 0x000002A2, 0x0000 },   /* R674   - Micd Clamp control */
 +      { 0x000002A2, 0x0000 },   /* R674   - Micd clamp control */
        { 0x000002A3, 0x1102 },   /* R675   - Mic Detect 1 */ 
        { 0x000002A4, 0x009F },   /* R676   - Mic Detect 2 */ 
        { 0x000002A5, 0x0000 },   /* R677   - Mic Detect 3 */ 
@@@ -1884,8 -1853,11 +1862,12 @@@ static bool wm5102_volatile_register(st
        case ARIZONA_DSP1_STATUS_1:
        case ARIZONA_DSP1_STATUS_2:
        case ARIZONA_DSP1_STATUS_3:
+       case ARIZONA_DSP1_SCRATCH_0:
+       case ARIZONA_DSP1_SCRATCH_1:
+       case ARIZONA_DSP1_SCRATCH_2:
+       case ARIZONA_DSP1_SCRATCH_3:
        case ARIZONA_HEADPHONE_DETECT_2:
 +      case ARIZONA_HP_DACVAL:
        case ARIZONA_MIC_DETECT_3:
                return true;
        default:
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -385,8 -290,9 +388,9 @@@ struct ab8500_platform_data 
        struct ab8500_regulator_reg_init *regulator_reg_init;
        int num_regulator;
        struct regulator_init_data *regulator;
 -      struct ab8500_gpio_platform_data *gpio;
 +      struct abx500_gpio_platform_data *gpio;
        struct ab8500_codec_platform_data *codec;
+       struct ab8500_sysctrl_platform_data *sysctrl;
  };
  
  extern int ab8500_init(struct ab8500 *ab8500,
@@@ -444,68 -345,12 +448,76 @@@ static inline int is_ab8500_2p0(struct 
        return (is_ab8500(ab) && (ab->chip_id == AB8500_CUT2P0));
  }
  
 +static inline int is_ab8505_1p0_or_earlier(struct ab8500 *ab)
 +{
 +      return (is_ab8505(ab) && (ab->chip_id <= AB8500_CUT1P0));
 +}
 +
 +static inline int is_ab8505_2p0(struct ab8500 *ab)
 +{
 +      return (is_ab8505(ab) && (ab->chip_id == AB8500_CUT2P0));
 +}
 +
 +static inline int is_ab9540_1p0_or_earlier(struct ab8500 *ab)
 +{
 +      return (is_ab9540(ab) && (ab->chip_id <= AB8500_CUT1P0));
 +}
 +
 +static inline int is_ab9540_2p0(struct ab8500 *ab)
 +{
 +      return (is_ab9540(ab) && (ab->chip_id == AB8500_CUT2P0));
 +}
 +
 +/*
 + * Be careful, the marketing name for this chip is 2.1
 + * but the value read from the chip is 3.0 (0x30)
 + */
 +static inline int is_ab9540_3p0(struct ab8500 *ab)
 +{
 +      return (is_ab9540(ab) && (ab->chip_id == AB8500_CUT3P0));
 +}
 +
 +static inline int is_ab8540_1p0_or_earlier(struct ab8500 *ab)
 +{
 +      return is_ab8540(ab) && (ab->chip_id <= AB8500_CUT1P0);
 +}
 +
 +static inline int is_ab8540_1p1_or_earlier(struct ab8500 *ab)
 +{
 +      return is_ab8540(ab) && (ab->chip_id <= AB8500_CUT1P1);
 +}
 +
 +static inline int is_ab8540_1p2_or_earlier(struct ab8500 *ab)
 +{
 +      return is_ab8540(ab) && (ab->chip_id <= AB8500_CUT1P2);
 +}
 +
 +static inline int is_ab8540_2p0_or_earlier(struct ab8500 *ab)
 +{
 +      return is_ab8540(ab) && (ab->chip_id <= AB8500_CUT2P0);
 +}
 +
 +static inline int is_ab8540_2p0(struct ab8500 *ab)
 +{
 +      return is_ab8540(ab) && (ab->chip_id == AB8500_CUT2P0);
 +}
 +
 +static inline int is_ab8505_2p0_earlier(struct ab8500 *ab)
 +{
 +      return (is_ab8505(ab) && (ab->chip_id < AB8500_CUT2P0));
 +}
 +
 +static inline int is_ab9540_2p0_or_earlier(struct ab8500 *ab)
 +{
 +      return (is_ab9540(ab) && (ab->chip_id < AB8500_CUT2P0));
 +}
 +
+ #ifdef CONFIG_AB8500_DEBUG
+ void ab8500_dump_all_banks(struct device *dev);
+ void ab8500_debug_register_interrupt(int line);
+ #else
+ static inline void ab8500_dump_all_banks(struct device *dev) {}
+ static inline void ab8500_debug_register_interrupt(int line) {}
+ #endif
  #endif /* MFD_AB8500_H */
Simple merge
Simple merge
Simple merge