1. 07 3月, 2013 7 次提交
  2. 14 2月, 2013 1 次提交
  3. 08 2月, 2013 5 次提交
    • L
      mfd: ab8500: allow AB9540 based devices to use ABX500 pinctrl · e64d905e
      Lee Jones 提交于
      The old AB8500 GPIO driver has been un-BROKEN and converted into a
      multi-platform pinctrl driver. If any AB9540 based devices wish to
      request any GPIO pins that it offers, they can after this patch.
      
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      e64d905e
    • L
      mfd: ab8500: ensure new AB8500 pinctrl driver is probed correctly · 7d56a46e
      Lee Jones 提交于
      The old, BROKEN AB8500 GPIO driver has been revamped as a shiny
      new pinctrl driver and has been renamed as such. So, if we would
      like to make use of it, we need to register it via its new name.
      
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      7d56a46e
    • L
      mfd: ab8500: provide a irq_set_type() function · 40f6e5a2
      Lee Jones 提交于
      In the AB8500 IRQ mask and unmask functions, we rely on testing for
      IRQ_TYPE_EDGE_RISING and IRQ_TYPE_EDGE_FALLING interrupts to
      physically mask and unmask the correct interrupt lines. In order
      for us to do that, the trigger needs to be set in the associated
      flags. However, unless a irq_set_type() function pointer is passed
      when registering the IRQ chip, the IRQ subsystem will refuse to do
      it. For that reason, we're providing one.
      
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      40f6e5a2
    • L
      mfd: ab8500: actually handle the AB8500 GPIO IRQs correctly · e2ddf46a
      Linus Walleij 提交于
      The patch:
      "mfd: ab8500: prepare to handle AB8500 GPIO's IRQs correctly"
      altered the AB8500 IRQ mask/unmask functions such that they
      would handle masking on/off the falling edge IRQ if this was
      requested by the consumer. However the bit mask for hwirqs
      43 and 44 was shifting the bit mask incorrectly, resulting in
      the wrong IRQ being mased/unmasked.
      
      Further while the patch would mask/unmask the correct line,
      when the interrupt actually came in, it would still be treated
      as a valid hwirq. The offsetting applied when masking/unmasking
      was not applied when handling the IRQ, i.e. the falling edge
      lines were not routed back to the rising edge lines.
      
      This fixes both cases. The end result has been tested with
      the SIM detect IRQ, GPIO12, hwirq 46 and 62.
      
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Cc: Lee Jones <lee.jones@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
      e2ddf46a
    • L
      mfd: ab8500: prepare to handle AB8500 GPIO's IRQs correctly · 9c677b9b
      Lee Jones 提交于
      In an upcoming patch, the gpio-ab8500 driver will relinquish all
      IRQ handling capability and pass it back into the AB8500 core
      driver. This will aid in reducing massive code duplication within
      the kernel. Also, most of the functionality is already in the
      AB8500 core driver, as the GPIO IRQs are actually sandwiched
      between lots of other IRQs which the core driver already handles.
      
      All we're doing here is providing the core driver with knowledge
      that each GPIO has two IRQs assigned to it; one for rising and
      a separate one for falling.
      
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      9c677b9b
  4. 04 2月, 2013 2 次提交
  5. 23 1月, 2013 2 次提交
    • P
      u8500-charger: Delay for USB enumeration · 34c11a70
      Paer-Olof Haakansson 提交于
      If charging is started before USB enumeration of an Accessory
      Charger Adapter has finished, the AB8500 will generate a
      VBUS_ERROR. This in turn results in timeouts and delays the
      enumeration with around 15 seconds. This patch delays the
      charging and then ramps currents slowly to avoid VBUS errors.
      The delay allows the enumeration to have finished before
      charging is turned on.
      Signed-off-by: NMartin Sjoblom <martin.w.sjoblom@stericsson.com>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Reviewed-by: NJonas ABERG <jonas.aberg@stericsson.com>
      Tested-by: NJonas ABERG <jonas.aberg@stericsson.com>
      34c11a70
    • L
      mfd: Fix compile errors and warnings when !CONFIG_AB8500_BM · 00441b5e
      Lee Jones 提交于
      drivers/mfd/ab8500-core.c:1015:21: error: ‘ab8500_bm_data’ undeclared here
      
      include/linux/mfd/abx500/ab8500-bm.h:445:13: warning: ‘ab8500_fg_reinit’ defined but not used
      include/linux/mfd/abx500/ab8500-bm.h:448:13: warning: ‘ab8500_charger_usb_state_changed’ defined but not used
      include/linux/mfd/abx500/ab8500-bm.h:451:29: warning: ‘ab8500_btemp_get’ defined but not used
      include/linux/mfd/abx500/ab8500-bm.h:455:12: warning: ‘ab8500_btemp_get_batctrl_temp’ defined but not used
      include/linux/mfd/abx500/ab8500-bm.h:463:12: warning: ‘ab8500_fg_inst_curr_blocking’ defined but not used
      include/linux/mfd/abx500/ab8500-bm.h:442:12: warning: ‘ab8500_fg_inst_curr_done’ defined but not used
      include/linux/mfd/abx500/ab8500-bm.h:447:26: warning: ‘ab8500_fg_get’ defined but not used
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      00441b5e
  6. 11 12月, 2012 1 次提交
    • L
      ab8500_bm: Always send platform specific battery information via pdata · 23a04f9f
      Lee Jones 提交于
      Currently the AB8500 battery management subsystem receives platform
      specific information via two different means depending on how the
      platform is booted. If DT is not enabled, a reference to a *_bm_data
      data structure containing each platform specific attribute is passed
      though platform_data. However, if DT is enabled, then platform_data
      is empty and the reference is gained though a DT specific probe
      function. There are two issues here 1) the same reference is
      being collected each time and 2) the DT way doesn't allow any
      provisions to select different platform specific attributes, which
      kind of defeats the object.
      
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      23a04f9f
  7. 30 11月, 2012 1 次提交
  8. 29 11月, 2012 4 次提交
  9. 23 11月, 2012 1 次提交
  10. 19 11月, 2012 4 次提交
  11. 12 11月, 2012 2 次提交
  12. 05 11月, 2012 1 次提交
  13. 22 9月, 2012 1 次提交
  14. 18 9月, 2012 1 次提交
  15. 16 9月, 2012 1 次提交
    • M
      mfd: core: Push irqdomain mapping out into devices · 0848c94f
      Mark Brown 提交于
      Currently the MFD core supports remapping MFD cell interrupts using an
      irqdomain but only if the MFD is being instantiated using device tree
      and only if the device tree bindings use the pattern of registering IPs
      in the device tree with compatible properties.  This will be actively
      harmful for drivers which support non-DT platforms and use this pattern
      for their DT bindings as it will mean that the core will silently change
      remapping behaviour and it is also limiting for drivers which don't do
      DT with this particular pattern.  There is also a potential fragility if
      there are interrupts not associated with MFD cells and all the cells are
      omitted from the device tree for some reason.
      
      Instead change the code to take an IRQ domain as an optional argument,
      allowing drivers to take the decision about the parent domain for their
      interrupts.  The one current user of this feature is ab8500-core, it has
      the domain lookup pushed out into the driver.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      0848c94f
  16. 14 9月, 2012 2 次提交
    • L
      mfd: ab8500: Make ab8500_irq_get_virq() static · 80633f05
      Lee Jones 提交于
      MFD core now takes care of  HWIRQ <-> VIRQ mapping, so the helper
      ab8500_irq_get_virq() is no longer used by ab8500 subordinate devices
      to obtain a Linux wide Virtual IRQ. The AB8500 IRQ controller still
      uses it internally though, so we'll just hide it from the rest of the
      world by making it static instead.
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      80633f05
    • M
      mfd: core: Push irqdomain mapping out into devices · 55692af5
      Mark Brown 提交于
      Currently the MFD core supports remapping MFD cell interrupts using an
      irqdomain but only if the MFD is being instantiated using device tree
      and only if the device tree bindings use the pattern of registering IPs
      in the device tree with compatible properties.  This will be actively
      harmful for drivers which support non-DT platforms and use this pattern
      for their DT bindings as it will mean that the core will silently change
      remapping behaviour and it is also limiting for drivers which don't do
      DT with this particular pattern.  There is also a potential fragility if
      there are interrupts not associated with MFD cells and all the cells are
      omitted from the device tree for some reason.
      
      Instead change the code to take an IRQ domain as an optional argument,
      allowing drivers to take the decision about the parent domain for their
      interrupts.  The one current user of this feature is ab8500-core, it has
      the domain lookup pushed out into the driver.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      55692af5
  17. 09 7月, 2012 4 次提交