1. 21 11月, 2012 1 次提交
  2. 10 9月, 2012 1 次提交
    • M
      regulator: core: Support bypass mode · f59c8f9f
      Mark Brown 提交于
      Many regulators support a bypass mode where they simply switch their
      input supply to the output. This is mainly used in low power retention
      states where power consumption is extremely low so higher voltage or
      less clean supplies can be used.
      
      Support this by providing ops for the drivers and a consumer API which
      allows the device to be put into bypass mode if all consumers enable it
      and the machine enables permission for this.
      
      This is not supported as a mode since the existing modes are rarely used
      due to fuzzy definition and mostly redundant with modern hardware which is
      able to respond promptly to load changes.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Reviewed-by: NGraeme Gregory <gg@slimlogic.co.uk>
      f59c8f9f
  3. 08 8月, 2012 1 次提交
  4. 02 7月, 2012 1 次提交
  5. 18 6月, 2012 1 次提交
  6. 16 3月, 2012 1 次提交
    • P
      device.h: audit and cleanup users in main include dir · 313162d0
      Paul Gortmaker 提交于
      The <linux/device.h> header includes a lot of stuff, and
      it in turn gets a lot of use just for the basic "struct device"
      which appears so often.
      
      Clean up the users as follows:
      
      1) For those headers only needing "struct device" as a pointer
      in fcn args, replace the include with exactly that.
      
      2) For headers not really using anything from device.h, simply
      delete the include altogether.
      
      3) For headers relying on getting device.h implicitly before
      being included themselves, now explicitly include device.h
      
      4) For files in which doing #1 or #2 uncovers an implicit
      dependency on some other header, fix by explicitly adding
      the required header(s).
      
      Any C files that were implicitly relying on device.h to be
      present have already been dealt with in advance.
      
      Total removals from #1 and #2: 51.  Total additions coming
      from #3: 9.  Total other implicit dependencies from #4: 7.
      
      As of 3.3-rc1, there were 110, so a net removal of 42 gives
      about a 38% reduction in device.h presence in include/*
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      313162d0
  7. 30 1月, 2012 1 次提交
  8. 27 1月, 2012 1 次提交
  9. 23 1月, 2012 2 次提交
  10. 20 1月, 2012 1 次提交
  11. 04 1月, 2012 1 次提交
  12. 02 1月, 2012 1 次提交
  13. 14 9月, 2011 1 次提交
    • M
      regulator: Implement deferred disable support · da07ecd9
      Mark Brown 提交于
      It is a reasonably common pattern for hardware to require some delay after
      being quiesced before the disable has finalised, especially in mixed signal
      devices. For example, an active discharge may be required to ensure that
      the circuit starts up again in a known state. Avoid having to implement
      such delays in the regulator API by providing regulator_deferred_disable()
      which will do a regulator_disable() a specified number of milliseconds
      after it is called.
      
      Due to the reference counting done on regulators a deferred disable can
      be cancelled by doing another regulator_enable().
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NLiam Girdwood <lrg@ti.com>
      da07ecd9
  14. 09 9月, 2011 1 次提交
  15. 09 8月, 2011 1 次提交
  16. 30 5月, 2011 1 次提交
    • M
      regulator: Do bulk enables of regulators in parallel · f21e0e81
      Mark Brown 提交于
      In order to reduce the impact of ramp times rather than enabling the
      regulators for a device in series use async tasks to run the actual
      enables. This means that the delays which the enables implement can all
      run in parallel, though it does mean that the order in which the
      supplies come on may be unstable.
      
      For super bonus fun points if any of the regulators are shared between
      multiple supplies on the same device (as is rather likely) then this
      will test our locking.  Note that in this case we only delay once for
      each physical regulator so the threads shouldn't block each other while
      delaying.
      
      It'd be even nicer if we could coalesce writes to a shared enable registers
      in PMICs but that's definitely future work, and it may also be useful
      and is certainly more achievable to optimise out the parallelism if none
      of the regulators implement ramp delays.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      f21e0e81
  17. 26 3月, 2011 1 次提交
  18. 12 1月, 2011 1 次提交
  19. 19 4月, 2010 1 次提交
  20. 03 3月, 2010 1 次提交
    • M
      regulator: Add notifier event on regulator disable · 84b68263
      Mark Brown 提交于
      The intended use case is for drivers which disable regulators to save
      power but need to do some work to restore the hardware state when
      restarting.  If the supplies are not actually disabled due to board
      limits or sharing with other active devices this notifier allows the
      driver to avoid unneeded reinitialisation, particularly when used with
      runtime PM.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      84b68263
  21. 17 12月, 2009 1 次提交
  22. 22 9月, 2009 2 次提交
    • M
      regulator: Add regulator voltage range check API · a7a1ad90
      Mark Brown 提交于
      Simplify checking of support for voltage ranges by providing an API which
      wraps the existing count and list operations.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      a7a1ad90
    • M
      regulator: Add regulator_get_exclusive() API · 5ffbd136
      Mark Brown 提交于
      Some consumers require complete control of the regulator and can't
      tolerate sharing it with other consumers, most commonly because they need
      to have the regulator actually disabled so can't have other consumers
      forcing it on. This new regulator_get_exclusive() API call allows these
      consumers to explicitly request this, documenting the assumptions that
      they are making.
      
      In order to simplify coding of such consumers the use count for regulators
      they request is forced to match the enabled state of the regulator when
      it is requested. This is not possible for consumers which can share
      regulators due to the need to keep track of the ownership of use counts.
      
      A new API call is used rather than an additional argument to the existing
      regulator_get() in order to avoid merge headaches with driver code in
      other trees.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      5ffbd136
  23. 31 3月, 2009 3 次提交
  24. 09 1月, 2009 1 次提交
  25. 30 7月, 2008 1 次提交
    • L
      regulator: consumer device interface · e2ce4eaa
      Liam Girdwood 提交于
      Add support to allow consumer device drivers to control their regulator
      power supply.
      
      This uses a similar API to the kernel clock interface in that consumer
      drivers can get and put a regulator (like they can with clocks atm) and
      get/set voltage, current limit, mode, enable and disable. This should
      allow consumers complete control over their supply voltage and current
      limit. This also compiles out if not in use so drivers can be reused in
      systems with no regulator based power control.
      Signed-off-by: NLiam Girdwood <lg@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      e2ce4eaa