1. 29 6月, 2016 1 次提交
  2. 17 5月, 2016 1 次提交
  3. 13 5月, 2016 1 次提交
  4. 12 5月, 2016 1 次提交
  5. 11 5月, 2016 1 次提交
  6. 07 5月, 2016 4 次提交
  7. 03 5月, 2016 1 次提交
  8. 29 4月, 2016 2 次提交
  9. 28 4月, 2016 1 次提交
  10. 27 4月, 2016 4 次提交
    • J
      regulator: core: Add early supply resolution for regulators · 45389c47
      Jon Hunter 提交于
      The call to set_machine_constraints() in regulator_register(), will
      attempt to get the voltage for the regulator. If a regulator is in
      bypass will fail to get the voltage (ie. it's bypass voltage) and
      hence register the regulator, because the supply for the regulator has
      not been resolved yet.
      
      To fix this, add a call to regulator_resolve_supply() before we call
      set_machine_constraints(). If the call to regulator_resolve_supply()
      fails, rather than returning an error at this point, allow the
      registration of the regulator to continue because for some regulators
      resolving the supply at this point may not be necessary and it will be
      resolved later as more regulators are added. Furthermore, if the supply
      is still not resolved for a bypassed regulator, this will be detected
      when we attempt to get the voltage for the regulator and an error will
      be propagated at this point.
      
      If a bypassed regulator does not have a supply when we attempt to get
      the voltage, rather than returing -EINVAL, return -EPROBE_DEFER instead
      to allow the registration of the regulator to be deferred and tried
      again later.
      
      Please note that regulator_resolve_supply() will call
      regulator_dev_lookup() which may acquire the regulator_list_mutex. To
      avoid any deadlocks we cannot hold the regulator_list_mutex when calling
      regulator_resolve_supply(). Therefore, rather than holding the lock
      around a large portion of the registration code, just hold the lock when
      aquiring any GPIOs and setting up supplies because these sections may
      add entries to the regulator_map_list and regulator_ena_gpio_list,
      respectively.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      45389c47
    • H
      regulator: axp20x: Fix axp22x ldo_io voltage ranges · 05195ed3
      Hans de Goede 提交于
      The minium voltage of 1800mV is a copy and paste error from the axp20x
      regulator info. The correct minimum voltage for the ldo_io regulators
      on the axp22x is 700mV.
      
      Fixes: 1b82b4e4 ("regulator: axp20x: Add support for AXP22X regulators")
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: NChen-Yu Tsai <wens@csie.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      05195ed3
    • H
      regulator: axp20x: Fix axp22x ldo_io voltage ranges · a2262e5a
      Hans de Goede 提交于
      The minium voltage of 1800mV is a copy and paste error from the axp20x
      regulator info. The correct minimum voltage for the ldo_io regulators
      on the axp22x is 700mV.
      
      Fixes: 1b82b4e4 ("regulator: axp20x: Add support for AXP22X regulators")
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Acked-by: NChen-Yu Tsai <wens@csie.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      a2262e5a
    • N
      regulator: tps65917/palmas: Add bypass "On" value · e0341f17
      Nishanth Menon 提交于
      When commit b554e145 ("regulator: tps65917/palmas: Add bypass
      ops for LDOs with bypass capability") introduced bypass capability
      to palmas regulator, it went with the assumption that regulator
      regmap helpers just check val against the bypass_mask.
      
      Unfortunately, this ignored the explicit "on" and "off" values when
      the register value is masked with bypass_mask in commit ca5d1b35
      ("regulator: helpers: Modify helpers enabling multi-bit control").
      
      With the recent commit dd1a571d ("regulator: helpers: Ensure
      bypass register field matches ON value"), this issue gets highlighted
      and fails tps65917/palmas based platforms which need regulators/ldos
      that have bypass capability.
      
      Introduce the bypass_on value appropriately for tps65917/palmas
      regulator.
      
      Fixes: b554e145 ("regulator: tps65917/palmas: Add bypass ops for LDOs with bypass capability")
      Cc: Keerthy <j-keerthy@ti.com>
      Cc: Mark Brown <broonie@kernel.org>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      e0341f17
  11. 26 4月, 2016 4 次提交
  12. 22 4月, 2016 6 次提交
    • L
      regulator: max77620: Add support for device specific ramp rate setting · 5aa43599
      Laxman Dewangan 提交于
      Maxim advertised the ramp rate of the rail with some recommended
      design specification like output capacitance of rail should be
      2.2uF. This make sure that current change in the rail is within
      maximum current limit and hence meet the advertised ramp rate.
      
      If there is variation in design which causes the rail current to
      change more that maximum current limit then device applies the
      current limit. In this case, ramp rate is different than advertised
      ramp rate.
      
      Add device specific settings for ramp rate which need to be configure
      on device register when measure ramp rate on platform is deviated from
      advertised ramp rate. In this case, all delay time calculation for
      voltage change is done with measured ramp rate and device ramp rate
      is used for configuring the device register.
      
      If measured ramp rate in the platform is same as advertised ramp rate
      then regulator-ramp-delay is used for the device register configuration
      and ramp time calculation for voltage change.
      Signed-off-by: NLaxman Dewangan <ldewangan@nvidia.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5aa43599
    • J
      regulator: helpers: Ensure bypass register field matches ON value · dd1a571d
      Jon Hunter 提交于
      When checking bypass state for a regulator, we check to see if any bits
      in the bypass mask are set. For most cases this is fine because there is
      typically, only a single bit used to determine if the regulator is in
      bypass. However, for some regulators, such as LDO6 on AS3722, the bypass
      state is indicate by a value rather than a single bit. Therefore, when
      checking the bypass state, check that the bypass field matches the ON
      value.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      dd1a571d
    • J
      regulator: core: Move registration of regulator device · c438b9d0
      Jon Hunter 提交于
      The public functions to acquire a regulator, such as regulator_get(),
      internally look-up the regulator from the list of regulators that have
      been registered with the regulator device class. The registration of
      a new regulator with the regulator device class happens before the
      regulator has been completely setup. Therefore, it is possible that
      the regulator could be acquired before it has been setup successfully.
      To avoid this move the device registration of the regulator to the end
      of the regulator setup and update the error exit path accordingly.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c438b9d0
    • J
      regulator: core: Clear the supply pointer if enabling fails · 8e5356a7
      Jon Hunter 提交于
      During the resolution of a regulator's supply, we may attempt to enable
      the supply if the regulator itself is already enabled. If enabling the
      supply fails, then we will call _regulator_put() for the supply.
      However, the pointer to the supply has not been cleared for the
      regulator and this will cause a crash if we then unregister the
      regulator and attempt to call regulator_put() a second time for the
      supply. Fix this by clearing the supply pointer if enabling the supply
      after fails when resolving the supply for a regulator.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      8e5356a7
    • J
      regulator: core: Don't terminate supply resolution early · 7ddede6a
      Jon Hunter 提交于
      The function regulator_register_resolve_supply() is called from the
      context of class_for_each_dev() (during the regulator registration) to
      resolve any supplies added. regulator_register_resolve_supply() will
      return an error if a regulator's supply cannot be resolved and this will
      terminate the loop in class_for_each_dev(). This means that we will not
      attempt to resolve any other supplies after one has failed. Hence, this
      may delay the resolution of other regulator supplies until the failing
      one itself can be resolved.
      
      Rather than terminating the loop early, don't return an error code and
      keep attempting to resolve any other supplies for regulators that have
      been registered.
      Signed-off-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      7ddede6a
    • R
      regulator: core: Add debugfs to show constraint flags · 2d80a91b
      Richard Fitzgerald 提交于
      There are debugfs entries for voltage and current, but not for
      the constraint flags. It's useful for debugging to be able to
      see what these flags are so this patch adds a new debugfs file.
      We can't use debugfs_create_bool for this because the flags are
      bitfields, so as this needs a special read callback they have been
      collected into a single file that lists all the flags.
      Signed-off-by: NRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      2d80a91b
  13. 21 4月, 2016 1 次提交
  14. 20 4月, 2016 2 次提交
  15. 19 4月, 2016 3 次提交
  16. 18 4月, 2016 1 次提交
  17. 14 4月, 2016 3 次提交
  18. 13 4月, 2016 2 次提交
  19. 12 4月, 2016 1 次提交