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 -
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 -
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
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
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 -
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
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 -
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
25 Jul, 2015
1 commit
-
Add support for over current protection (OCP), pin control
selection, soft start strength, and auto-mode.Cc:
Signed-off-by: Stephen Boyd
Signed-off-by: Mark Brown
10 Jul, 2015
1 commit
-
Signed-off-by: Axel Lin
Reviewed-by: Andy Gross
Signed-off-by: Mark Brown
19 Jun, 2015
1 commit
-
n /= range->step_uV + 1; is equivalent to n /= (range->step_uV + 1);
which is wrong. Fix it.Signed-off-by: Axel Lin
Acked-by: Stephen Boyd
Signed-off-by: Mark Brown
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 587These 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
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 -
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