26 Jun, 2016

3 commits

  • The voltage switches support mode switching, so add support for
    these ops to those types of regulators.

    Cc: Bjorn Andersson
    Fixes: e92a4047419c ("regulator: Add QCOM SPMI regulator driver")
    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     
  • The mvs1 and mvs2 switches are actually called 5vs1 and 5vs2 on
    some datasheets. Let's rename them to match the datasheets and
    also match the RPM based regulator driver which calls these by
    their 5vs names (see qcom_smd-regulator.c). There aren't any
    users of these regulators so far, so there aren't any concerns of
    DT ABI breakage here. While we're here making updates to the
    switches, also mandate usage of the OCP irq for these switches
    too.

    Cc: Bjorn Andersson
    Fixes: e92a4047419c ("regulator: Add QCOM SPMI regulator driver")
    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     
  • The S4 supply is sometimes called the boost regulator because it
    outputs 5V. Typically it's connected to the 5vs1 and 5vs2
    switches for use in USB OTG and HDMI applications. Add support
    for this regulator which was mistakenly left out from the initial
    submission of this driver.

    Cc: Bjorn Andersson
    Fixes: e92a4047419c ("regulator: Add QCOM SPMI regulator driver")
    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     

18 Apr, 2016

1 commit

  • I had a thinko in spmi_regulator_select_voltage_same_range() when
    converting it to return selectors via the function's return value
    instead of by modifying a pointer argument. I only tested
    multi-range regulators so this passed through testing. Fix it by
    returning the selector here.

    Fixes: 1b5b19689278 ("regulator: qcom_spmi: Only use selector based regulator ops")
    Reported-by: Rajendra Nayak
    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     

01 Apr, 2016

2 commits

  • Mixing raw voltage and selector based regulator ops is
    inconsistent. This driver already supports some selector based
    ops via the list_voltage and set_voltage_time_sel ops but it uses
    raw voltage ops for get_voltage and set_voltage. This causes
    problems for regulator_set_voltage() and automatic insertion of
    slewing delays because set_voltage_time_sel() is only used if the
    regulator ops are all selector based. Put another way, delays
    aren't happening at all right now when we should be waiting for
    voltages to settle. Let's move to pure selector based regulator
    ops so that the delays are inserted properly.

    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     
  • Only the FT SMPS type regulators have slewing supported in the
    driver, but all types of SMPS regulators need the same support.
    The only difference is that some SMPS regulators don't have a
    step size and the step delay is typically 20, not 8. Luckily, the
    step size reads as 0 for the non-FT types, so we can always read
    that, but we need to detect which type of regulator we're using
    to figure out what step delay to use. Make these minor
    adjustments to the slew rate calculations and add support for the
    delay function to the appropriate regulator ops.

    Reported-by: Georgi Djakov
    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     

28 Mar, 2016

2 commits

  • On some designs, a handful of the regulators can't be read via
    SPMI transactions because they're "secure" and not intended to be
    touched by non-secure processors. This driver unconditionally
    attempts to read the id registers of all the regulators though,
    leading to probe failing and no regulators being registered.
    Let's ignore any errors from failing to read the registers and
    keep adding other regulators so that this driver can probe on
    such devices.

    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     
  • Document the regulators available on pm8994 and add support for
    this PMIC to the SPMI PMIC regulator driver.

    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd
     

25 Jul, 2015

1 commit


10 Jul, 2015

1 commit


19 Jun, 2015

1 commit


17 Jun, 2015

1 commit

  • drivers/regulator/qcom_spmi-regulator.c:751:3-50: code aligned
    with following code on line 753
    drivers/regulator/qcom_spmi-regulator.c:584:3-41: code aligned
    with following code on line 587

    These lines where missing braces causing the break to always
    be executed even when it shouldn't be. Fix it.

    Reported-by: kbuild test robot
    Signed-off-by: Stephen Boyd
    Reviewed-by: Andy Gross
    Signed-off-by: Mark Brown

    Stephen Boyd
     

16 Jun, 2015

2 commits

  • Simplify a trivial if-return sequence and combine with a
    preceding function call.

    Generated by: scripts/coccinelle/misc/simple_return.cocci

    CC: Mark Brown
    Signed-off-by: Julia Lawall
    Signed-off-by: Mark Brown

    Julia Lawall
     
  • Add an SPMI regulator driver for Qualcomm's PM8841, PM8941, and
    PM8916 PMICs. This driver is based largely on code from
    codeaurora.org[1].

    [1] https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.10/tree/drivers/regulator/qpnp-regulator.c?h=msm-3.10
    Cc: David Collins
    Cc:
    Signed-off-by: Stephen Boyd
    Signed-off-by: Mark Brown

    Stephen Boyd