Merge tag 'pinctrl-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 4 Sep 2013 23:24:33 +0000 (16:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 4 Sep 2013 23:24:33 +0000 (16:24 -0700)
Pull pin control changes from Linus Walleij:
 "Here is the bulk of pin control changes for the v3.12 series.  Most of
  the relevant information is in the tag.

  I merged in v3.11-rc7 last week to get rid of a largeish conflict
  within the sunxi (AllWinner) driver in linux-next and fix up the
  non-trivial merge the right way.  That driver had a rather large fix
  adding locking late in the release cycle.

  Overall the bulk changes this time is cleanups and refactorings and
  not much new features, which is nice.

   - Refactorings for generic pin config handling in the core.

   - Factor out a set of device tree utilities for use in all drivers,
     to parse and allocate maps from the device tree.

   - Some fixes to the core such as more nitpicky locking.

   - Pushed down config array iteration into the drivers.

     This patch is necessary for drivers that want to iterate over
     configs and pile up a stack of alterations to the same register(s),
     or if the driver wants to take a local spinlock when committing the
     configuration.

   - A new driver for the Texas Instruments Palmas PMIC by Laxman
     Dewangan.  This is used on the Tegra systems.

   - A major cleanup and modernization of the PFC (Super Hitachi and ARM
     SHmobile) pin controller and subdrivers.

   - Support for the A20 and A31 sunxi (AllWinner) SoCs.

   - A huge pile of fixes and cleanups: Axel Lin, Jingoo Han Dan
     Carpenter, Julia Lawall and Sachin Kamat did an excellent job here"

* tag 'pinctrl-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (124 commits)
  pinctrl: sunxi: Fix off-by-one for valid offset range checking
  pinctrl: sunxi: drop lock on error path
  pinctrl: pinconf-generic: Remove ti prefix in dev_err messages
  pinctrl: rockchip: Implement .request() and .free() callbacks
  pinctrl: at91: fix get_pullup/down function return
  pinctrl: sh-pfc: remove unnecessary platform_set_drvdata()
  pinctrl: Add s5pv210 support to pinctrl-exynos
  pinctrl: utils: include export.h to avoid warnings
  pinctrl: s3c24xx: off by one in s3c24xx_eint_init()
  pinctrl: mvebu: testing the wrong variable
  pinctrl: abx500: fix bitwise AND test
  pinctrl: mvebu: Convert to use devm_ioremap_resource
  pinctrl: Pass all configs to driver on pin_config_set()
  pinctrl: tz1090-pdc: Convert to devm_ioremap_resource
  pinctrl: tz1090: Convert to devm_ioremap_resource
  pinctrl: tegra: Convert to devm_ioremap_resource
  pinctrl: rockchip: Simplify pin_to_bank equation
  pinctrl: spear: Convert to devm_ioremap_resource
  pinctrl: rockchip: Remove of_match_ptr macro for DT only driver
  pinctrl: palmas: PINCTRL_PALMAS needs to select PINMUX
  ...

1  2 
MAINTAINERS
include/linux/mfd/palmas.h

diff --combined MAINTAINERS
index 79dccf75252c7744caf75f0049f05dfeab856825,ea4869ccdc87b11bd802e20e4c929a6f995162b6..178a4b8b9ffcd83a654ed3978c80b271e83be12e
@@@ -813,7 -813,7 +813,7 @@@ F: arch/arm/mach-prima2
  F:    drivers/dma/sirf-dma.c
  F:    drivers/i2c/busses/i2c-sirf.c
  F:    drivers/mmc/host/sdhci-sirf.c
- F:    drivers/pinctrl/pinctrl-sirf.c
+ F:    drivers/pinctrl/sirf/
  F:    drivers/spi/spi-sirf.c
  
  ARM/EBSA110 MACHINE SUPPORT
@@@ -1547,13 -1547,6 +1547,13 @@@ W:    http://atmelwlandriver.sourceforge.n
  S:    Maintained
  F:    drivers/net/wireless/atmel*
  
 +ATTO EXPRESSSAS SAS/SATA RAID SCSI DRIVER
 +M:      Bradley Grove <linuxdrivers@attotech.com>
 +L:      linux-scsi@vger.kernel.org
 +W:      http://www.attotech.com
 +S:      Supported
 +F:      drivers/scsi/esas2r
 +
  AUDIT SUBSYSTEM
  M:    Al Viro <viro@zeniv.linux.org.uk>
  M:    Eric Paris <eparis@redhat.com>
@@@ -1830,12 -1823,6 +1830,12 @@@ L:    linux-scsi@vger.kernel.or
  S:    Supported
  F:    drivers/scsi/bnx2fc/
  
 +BROADCOM BNX2I 1/10 GIGABIT iSCSI DRIVER
 +M:    Eddie Wai <eddie.wai@broadcom.com>
 +L:    linux-scsi@vger.kernel.org
 +S:    Supported
 +F:    drivers/scsi/bnx2i/
 +
  BROADCOM SPECIFIC AMBA DRIVER (BCMA)
  M:    Rafał Miłecki <zajec5@gmail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -2125,13 -2112,6 +2125,13 @@@ M:    Russell King <linux@arm.linux.org.uk
  S:    Maintained
  F:    include/linux/clk.h
  
 +CLOCKSOURCE, CLOCKEVENT DRIVERS
 +M:    Daniel Lezcano <daniel.lezcano@linaro.org>
 +M:    Thomas Gleixner <tglx@linutronix.de>
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
 +S:    Supported
 +F:    drivers/clocksource
 +
  CISCO FCOE HBA DRIVER
  M:    Hiral Patel <hiralpat@cisco.com>
  M:    Suma Ramars <sramars@cisco.com>
@@@ -6086,7 -6066,7 +6086,7 @@@ M:      Rob Herring <rob.herring@calxeda.com
  M:    Pawel Moll <pawel.moll@arm.com>
  M:    Mark Rutland <mark.rutland@arm.com>
  M:    Stephen Warren <swarren@wwwdotorg.org>
 -M:    Ian Campbell <ian.campbell@citrix.com>
 +M:    Ian Campbell <ijc+devicetree@hellion.org.uk>
  L:    devicetree@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/
@@@ -6696,11 -6676,11 +6696,11 @@@ F:   Documentation/scsi/LICENSE.qla2xx
  F:    drivers/scsi/qla2xxx/
  
  QLOGIC QLA4XXX iSCSI DRIVER
 -M:    Ravi Anand <ravi.anand@qlogic.com>
  M:    Vikas Chaudhary <vikas.chaudhary@qlogic.com>
  M:    iscsi-driver@qlogic.com
  L:    linux-scsi@vger.kernel.org
  S:    Supported
 +F:    Documentation/scsi/LICENSE.qla4xxx
  F:    drivers/scsi/qla4xxx/
  
  QLOGIC QLA3XXX NETWORK DRIVER
@@@ -7163,7 -7143,7 +7163,7 @@@ S:      Maintaine
  F:    include/linux/mmc/dw_mmc.h
  F:    drivers/mmc/host/dw_mmc*
  
 -TIMEKEEPING, NTP
 +TIMEKEEPING, CLOCKSOURCE CORE, NTP
  M:    John Stultz <john.stultz@linaro.org>
  M:    Thomas Gleixner <tglx@linutronix.de>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
@@@ -7176,6 -7156,7 +7176,6 @@@ F:      include/uapi/linux/timex.
  F:    kernel/time/clocksource.c
  F:    kernel/time/time*.c
  F:    kernel/time/ntp.c
 -F:    drivers/clocksource
  
  TLG2300 VIDEO4LINUX-2 DRIVER
  M:    Huang Shijie <shijie8@gmail.com>
@@@ -7909,11 -7890,11 +7909,11 @@@ S:   Maintaine
  F:    drivers/staging/nvec/
  
  STAGING - OLPC SECONDARY DISPLAY CONTROLLER (DCON)
 -M:    Andres Salomon <dilinger@queued.net>
 -M:    Chris Ball <cjb@laptop.org>
 +M:    Jens Frederich <jfrederich@gmail.com>
 +M:    Daniel Drake <dsd@laptop.org>
  M:    Jon Nettleton <jon.nettleton@gmail.com>
  W:    http://wiki.laptop.org/go/DCON
 -S:    Odd Fixes
 +S:    Maintained
  F:    drivers/staging/olpc_dcon/
  
  STAGING - OZMO DEVICES USB OVER WIFI DRIVER
@@@ -8822,6 -8803,7 +8822,6 @@@ W:      http://www.linux-usb.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
  S:    Supported
  F:    Documentation/usb/
 -F:    drivers/net/usb/
  F:    drivers/usb/
  F:    include/linux/usb.h
  F:    include/linux/usb/
index e6090d88e91dbbdfdc7551c78a1fe384d4a5143c,2891f7cd902e106ee1d56f6809200cb6f781b47a..37e48c9577914b6de786ce20b9009c5f2a998f46
@@@ -160,8 -160,7 +160,8 @@@ enum palmas_regulators 
        PALMAS_REG_SMPS7,
        PALMAS_REG_SMPS8,
        PALMAS_REG_SMPS9,
 -      PALMAS_REG_SMPS10,
 +      PALMAS_REG_SMPS10_OUT2,
 +      PALMAS_REG_SMPS10_OUT1,
        /* LDO regulators */
        PALMAS_REG_LDO1,
        PALMAS_REG_LDO2,
@@@ -356,9 -355,9 +356,9 @@@ struct palmas_pmic 
        int smps123;
        int smps457;
  
 -      int range[PALMAS_REG_SMPS10];
 -      unsigned int ramp_delay[PALMAS_REG_SMPS10];
 -      unsigned int current_reg_mode[PALMAS_REG_SMPS10];
 +      int range[PALMAS_REG_SMPS10_OUT1];
 +      unsigned int ramp_delay[PALMAS_REG_SMPS10_OUT1];
 +      unsigned int current_reg_mode[PALMAS_REG_SMPS10_OUT1];
  };
  
  struct palmas_resource {
@@@ -372,15 -371,17 +372,15 @@@ struct palmas_usb 
  
        struct extcon_dev edev;
  
 -      /* used to set vbus, in atomic path */
 -      struct work_struct set_vbus_work;
 -
        int id_otg_irq;
        int id_irq;
        int vbus_otg_irq;
        int vbus_irq;
  
 -      int vbus_enable;
 -
        enum palmas_usb_state linkstat;
 +      int wakeup;
 +      bool enable_vbus_detection;
 +      bool enable_id_detection;
  };
  
  #define comparator_to_palmas(x) container_of((x), struct palmas_usb, comparator)
@@@ -448,7 -449,7 +448,7 @@@ enum usb_irq_events 
  #define PALMAS_DVFS_BASE                                      0x180
  #define PALMAS_PMU_CONTROL_BASE                                       0x1A0
  #define PALMAS_RESOURCE_BASE                                  0x1D4
- #define PALMAS_PU_PD_OD_BASE                                  0x1F4
+ #define PALMAS_PU_PD_OD_BASE                                  0x1F0
  #define PALMAS_LED_BASE                                               0x200
  #define PALMAS_INTERRUPT_BASE                                 0x210
  #define PALMAS_USB_OTG_BASE                                   0x250
  #define PALMAS_REGEN3_CTRL_MODE_ACTIVE_SHIFT                  0
  
  /* Registers for function PAD_CONTROL */
- #define PALMAS_PU_PD_INPUT_CTRL1                              0x0
- #define PALMAS_PU_PD_INPUT_CTRL2                              0x1
- #define PALMAS_PU_PD_INPUT_CTRL3                              0x2
- #define PALMAS_OD_OUTPUT_CTRL                                 0x4
- #define PALMAS_POLARITY_CTRL                                  0x5
- #define PALMAS_PRIMARY_SECONDARY_PAD1                         0x6
- #define PALMAS_PRIMARY_SECONDARY_PAD2                         0x7
- #define PALMAS_I2C_SPI                                                0x8
- #define PALMAS_PU_PD_INPUT_CTRL4                              0x9
- #define PALMAS_PRIMARY_SECONDARY_PAD3                         0xA
+ #define PALMAS_OD_OUTPUT_CTRL2                                        0x2
+ #define PALMAS_POLARITY_CTRL2                                 0x3
+ #define PALMAS_PU_PD_INPUT_CTRL1                              0x4
+ #define PALMAS_PU_PD_INPUT_CTRL2                              0x5
+ #define PALMAS_PU_PD_INPUT_CTRL3                              0x6
+ #define PALMAS_PU_PD_INPUT_CTRL5                              0x7
+ #define PALMAS_OD_OUTPUT_CTRL                                 0x8
+ #define PALMAS_POLARITY_CTRL                                  0x9
+ #define PALMAS_PRIMARY_SECONDARY_PAD1                         0xA
+ #define PALMAS_PRIMARY_SECONDARY_PAD2                         0xB
+ #define PALMAS_I2C_SPI                                                0xC
+ #define PALMAS_PU_PD_INPUT_CTRL4                              0xD
+ #define PALMAS_PRIMARY_SECONDARY_PAD3                         0xE
+ #define PALMAS_PRIMARY_SECONDARY_PAD4                         0xF
  
  /* Bit definitions for PU_PD_INPUT_CTRL1 */
  #define PALMAS_PU_PD_INPUT_CTRL1_RESET_IN_PD                  0x40
  #define PALMAS_PU_PD_GPIO_CTRL1                                       0x6
  #define PALMAS_PU_PD_GPIO_CTRL2                                       0x7
  #define PALMAS_OD_OUTPUT_GPIO_CTRL                            0x8
+ #define PALMAS_GPIO_DATA_IN2                                  0x9
+ #define PALMAS_GPIO_DATA_DIR2                                 0x0A
+ #define PALMAS_GPIO_DATA_OUT2                                 0x0B
+ #define PALMAS_GPIO_DEBOUNCE_EN2                              0x0C
+ #define PALMAS_GPIO_CLEAR_DATA_OUT2                           0x0D
+ #define PALMAS_GPIO_SET_DATA_OUT2                             0x0E
+ #define PALMAS_PU_PD_GPIO_CTRL3                                       0x0F
+ #define PALMAS_PU_PD_GPIO_CTRL4                                       0x10
+ #define PALMAS_OD_OUTPUT_GPIO_CTRL2                           0x11
  
  /* Bit definitions for GPIO_DATA_IN */
  #define PALMAS_GPIO_DATA_IN_GPIO_7_IN                         0x80