Commit Graph

1828 Commits

Author SHA1 Message Date
Mark Brown aac80fa724 regulator: core: Use the power efficient workqueue for delayed powerdown
There is no need to use a normal per-CPU workqueue for delayed power downs
as they're not timing or performance critical and waking up a core for them
would defeat some of the point.

Signed-off-by: Mark Brown <broonie@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Liam Girdwood <liam.r.girdwood@intel.com>
2019-07-27 22:11:03 +02:00
Masanari Iida f82fc6e3ba treewide: Fix typo in Documentation/DocBook
This patch fix spelling typo in Documentation/DocBook.
It is because .html and .xml files are generated by make htmldocs,
I have to fix a typo within the source files.

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2019-07-27 22:10:20 +02:00
Kiran Gunda e91c373da7 regulator: core: Fix buffer overflow issue
There is a possible buffer overflow in the "reg_debug_volt_get"
function. Fix it by passing the appropriate byte count.

Change-Id: I30868790c42cdb225af74054532a75c49506fe82
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
2019-07-27 22:08:41 +02:00
Luca Stefani 82b37d9f2f Merge remote-tracking branch 'f2fs/linux-3.10.y' into HEAD
Change-Id: Ic2fe24529f029909ddd96490bd6d885d60f88be2
2017-04-18 17:02:28 +02:00
LuK1337 fc9499e55a Import latest Samsung release
* Package version: T713XXU2BQCO

Change-Id: I293d9e7f2df458c512d59b7a06f8ca6add610c99
2017-04-18 03:43:52 +02:00
Linux Build Service Account 1fe03dc5cf Merge "regualtor: spm-regulator: Add additional settling delay for FTS2.5 SMPS" 2016-07-27 07:57:49 -07:00
Anirudh Ghayal a880c34a41 regualtor: spm-regulator: Add additional settling delay for FTS2.5 SMPS
Based on characterization add 70us settling delay on the voltage UP
to account for warm-up time and ramp-up delays for 0-10% and 90-100%
of the voltage value.

On the voltage ramp-down side add the stepper slew-rate delay and
and an additional 70us margin to avoid voltage updates while the
stepper is in progress. This could lead to voltage over/undershoot
due to buck-internal synchronization failure.

CRs-Fixed: 1036738
Change-Id: Id4230be9c4c981758bbf6860bab1f487a3b57f85
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2016-07-01 10:05:02 +05:30
Manaf Meethalavalappu Pallikunhi 54a36422d8 msm: thermal: Maintain state in the mitigation device monitor
If KTM get a trip threshold trigger notification and if the
temperature stays the same as the recent trip threshold, KTM will
re-activate the recently triggered threshold, resulting in back to
back interrupts. To avoid this add support in KTM to maintain the
recently triggered threshold state and then re-active the threshold
based on the last threshold trip.
This state is updated for mitigation features like VDD MX retention,
CX phase control, VDD restriction, OCR monitor and external clients
like CPR low temperature monitor etc.

CRs-Fixed: 969112 972634
Change-Id: I44c0a93e1507a9f0b8a65e5c2ce5a98962bb335b
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
2016-04-14 03:14:08 -07:00
David Collins 5e56116ded regulator: core: correct double remove in rdev_deinit_debugfs
The current ordering of statements in the rdev_deinit_debugfs()
function causes freed memory to be dereferenced.  This occurs
because the regulator_put(rdev->debug_consumer) call results in
debugfs_remove_recursive() being called on
rdev->debug_consumer->debugfs after it was previously removed
by the debugfs_remove_recursive() call to the parent dentry
rdev->debugfs.

Correct this by setting rdev->debug_consumer->debugfs to NULL
after calling debugfs_remove_recursive() for the parent directory
rdev->debugfs.  This ensures that the regulator_put() call does
not try to remove the already removed subdirectory and also that
the debugfs callbacks which make use of rdev->debug_consumer are
removed before rdev->debug_consumer is freed in the regulator_put()
call.

Change-Id: Icb7da7949e401f64cf9e71c732cb40e43ddbdc01
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-07 10:51:44 -08:00
David Collins d5c2b09a29 regulator: core: put debugfs consumer handle when unregistering a regulator
Ensure that regulator_put() is called on the core debugfs
consumer pointer for a given regulator when the debugfs interface
is no longer needed.  This includes inside of the
regulator_unregister() function as well as in the error return
path of rdev_init_debugfs().

Change-Id: I10563ae1716f31bdc5840d22633fdbfe278330f1
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-03-07 10:47:37 -08:00
Anirudh Ghayal a8948f837f regulator: qpnp-labibb: Add support for TTW on PMI8950
Add TTW configuration for PMI8950. Also, add a DT property
(qcom,labibb-ttw-force-lab-on) to keep LAB always-on in TTW mode.
Presently, this property is only required for PMI8950.

CRs-Fixed: 958285 962662
Change-Id: Iec79a6f752067d96fc62a8e9d629c39f4db5ab9f
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2016-02-19 10:14:52 +05:30
Subbaraman Narayanamurthy 8ac740251d regulator: qpnp-labibb: do not disable IBB when entering TTW mode
Currently when entering touch-to-wakeup (TTW) mode, IBB module
is disabled as part of the regulator_disable sequence before
applying the settings needed for SWIRE control in TTW mode.
This causes adversary effects such as droop in the VDISN
voltage rail.

To avoid this, as per the hardware documentation, do not disable
IBB module through IBB_ENABLE_CTL when LABIBB regulators are
disabled and entering TTW mode. Instead, just enter TTW mode and
mark the regulators disabled. Normal mode settings will be
applied when the regulators are enabled again as before.

While at it, add a centralized function qpnp_ibb_mode() to write
to IBB_ENABLE_CTL register.

CRs-Fixed: 952847
Change-Id: I74c6ba411091d146ab5719c2d72d6385fa90af21
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-02-18 20:16:46 -08:00
Subbaraman Narayanamurthy 44626b79a8 regulator: qpnp-labibb: change the LAB soft start time for TTW mode
As per the requirement, LAB soft start time should be configured
to 200us when touch-to-wakeup (TTW) mode is activated. Save and
restore the LAB_SOFT_START_CTL register setting before entering
TTW mode and after exiting TTW mode, similar to IBB register
settings done before.

CRs-Fixed: 928619
Change-Id: Ib285cbb11a788a23726b2cbbb2954d2ac62db171
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2016-02-18 20:16:08 -08:00
Tirupathi Reddy 87f0b69f0e regulator: cpr2-gfx: remove target quotient order check
An explicit target quotient values order check is not
needed in the driver as the static target quotient table
is being programmed for GFX CPR controller.

Change-Id: I78545cfba1463ef134146cc51e814de7ed362770
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-11-09 04:09:07 -08:00
Linux Build Service Account 18c28e6a36 Merge "regulator: qpnp-labibb: Always configure current sense" 2015-10-23 05:05:48 -07:00
Anirudh Ghayal b6d8b0e3b4 regulator: qpnp-labibb: Always configure current sense
The AMOLED panel needs a different current sense configuration
than LCD. Move the current_sense as a part of default LAB
initialization.

Change-Id: I9f6d23622e468d30c3db740bcd5077b7f6a7644a
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-10-20 20:10:16 +05:30
Anirudh Ghayal 8c5163c552 regulator: qpnp-labibb: Add support for SWIRE control
In the SWIRE configuration, the SWIRE signal from the display
panel controls the LAB/IBB voltage and MODULE_EN directly.

Skip the voltage/MODULE_EN configuration during initialization
and suspend/resume if SWIRE control is enabled.

CRs-Fixed: 923651
Change-Id: I425711ef46511816d2ad0f2a34189b7dc47c00c3
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-10-20 20:09:31 +05:30
Subbaraman Narayanamurthy 1657842fc3 regulator: qpnp-labibb: move TTW mode enter/exit out of suspend/resume
Currently, if the TTW mode is enabled, register settings are
being configured when the regulator driver's suspend callback
is invoked. This is little late given the time constraints
especially when the regulator is disabled and suspend operation
finishes up after several seconds. Instead of that, configure
the TTW mode settings when the regulator is disabled. Normal
mode settings will be applied again when the regulator is
enabled.

CRs-Fixed: 847094
Change-Id: I7699ceffca8091e4082382f392e40100d39dc7bb
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Signed-off-by: Nicholas Troast <ntroast@codeaurora.org>
2015-10-20 20:08:53 +05:30
Subbaraman Narayanamurthy f02961c23f regulator: qpnp-labibb: add support for touch-to-wakeup feature
There is a requirement to configure LAB/IBB module registers with
the specified settings to enable support for touch-to-wakeup(TTW)
mode. Add support for TTW mode by configuring the LAB/IBB
registers as per the hardware documentation. This feature can
be enabled by specifying qcom,qpnp-labibb-touch-to-wake-en property.

TTW mode settings will be applied to LAB/IBB module registers
when the regulator suspend callback is executed. Normal mode
settings will be restored back when the regulator resume callback
is executed.

CRs-Fixed: 847094
Change-Id: Ia80f0d67de4af701d89fb8dceae80fba078dd367
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-10-20 20:08:10 +05:30
Subbaraman Narayanamurthy 7bade36df7 regulator: qpnp-labibb: add secure writing functions for LAB/IBB registers
Currently, there is some redundant code to write securely to the
LAB/IBB module registers. Add functions qpnp_labibb_sec_write()
and qpnp_labibb_sec_masked_write() to write to the registers that
needs secure access.

While at it, add a pr_fmt() for LABIBB regulator driver to have
the messages printed out in a nice way.

Change-Id: Id42b60aba6d4611e3ea30480e16469952083c43b
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2015-10-20 19:54:19 +05:30
Anirudh Ghayal 2ddeb5becc regulator: qpnp-labibb-regulator: change the way LAB module is configured
Currently, IBB_EN_RDY bit of LAB_IBB_EN_RDY register is being
used to determine whether LAB module needs to be configured
from HLOS or just to have the settings done by the bootloader
earlier. However, that bit specifies whether or not the LAB
module to be enabled from IBB via MODULE_EN bit in register
ENABLE_CTL of IBB or SWIRE. Hence modify the driver to check
IBB_ENABLE_CTL to see if it has been already enabled or not
before doing the configuration in HLOS based on the device tree.

While at it, fix a minor issue in qpnp_ibb_dt_init() where the
wrong macro was being used, even though the bit position being
configured is same.

Change-Id: I0c691fab2e624eb981fa836f910e0ee69503d74f
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-10-20 19:53:40 +05:30
Anirudh Ghayal 5e54be5115 regulator: qpnp-labibb-regulator: support configuring LAB CURRENT_SENSE
As per the hardware documentation, current sense gain for LAB regulator
should be configured to 1.5 times for AMOLED mode. Add
support for that.

While at it, add support for configuring current sense gain through a
device tree property "qcom,qpnp-lab-current-sense". If the property is
specified, then allow overriding the current sense gain irrespective of
the panel type.

Change-Id: I7567eedb8331c70de715f2b392cbb6e560ec4622
Signed-off-by: Ravindranath Thiyagarajan <rthiyaga@codeaurora.org>
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-10-20 19:52:30 +05:30
Osvaldo Banuelos 1b8888bf82 regulator: qpnp-regulator: add support for FTSMPS slew rate delay
PMIC Fast Transient SMPS regulators support voltage scaling with
a slew rate defined to ensure reliable voltage changes during
active operation.  Add support to read the step control register
in order to obtain the slew and use the slew rate to calculate an
appropriate delay during voltage change requests.

CRs-Fixed: 924563
Change-Id: I0aaea78d8ea4f0b7d1ff13eab7100fbc28868092
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Signed-off-by: David Collins <collinsd@codeaurora.org>
2015-10-20 14:26:58 +05:30
Tirupathi Reddy 37b29b2b1c regulator: cpr2-gfx: Fix fuse version map handling
Fix the process id selection in fuse version map.
Also, fix the target quotient list selection based on
the fuse version map index.

CRs-Fixed: 922440
Change-Id: I106b730521a33fccc35304054f0eed138e48c7ae
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-10-20 14:23:05 +05:30
Tirupathi Reddy fbf559896f regulator: cpr2-gfx: Add CPR de-aging support
CPR aging sensors detect the performance degradation
resulting from silicon aging. The CPR de-aging algorithm
detects the aging degradation of the device by reading
aging sensor data and generating necessary voltage guard band
to maintain SoC performance. Limit the generated voltage
guard band to a pre-defined threshold.

CRs-Fixed: 922440
Change-Id: I7c6f05b3c1e1e87f9e5cd0a18a51466e7b93ee20
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-10-20 14:22:49 +05:30
Tirupathi Reddy 84e0bd4396 regulator: cpr2-gfx: add support for fuse bit remapping
On certain targets some fuse parameters are split between
non-contiguous fuse rows.  The various device tree fuse
specification properties cannot handle such a layout.  Therefore,
add support for a pair of device tree properties which can be
used to remap arbitrary combinations of fuse bits into a single
contiguous range of virtual fuse rows.  These remapped fuse rows
can then be referenced by all other device tree fuse properties.

CRs-Fixed: 922440
Change-Id: I6ae32ecadb6cc8d427f5e47bdd665d899e56d181
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-10-20 14:22:32 +05:30
Tirupathi Reddy 103d3f3b8e regulator: cpr-regulator: Update CPR de-aging algorithm
Configure vdd-supply to PWM mode for CPR de-aging measurements.
Also, perform multiple aging measurements and then average the
results in order to determine the final aging adjustment value.

Also, during CPR aging measurements for some power-domains it may
not be required to bypass the sensors. Handle this case by making
the sensor-bypass property optional.

CRs-Fixed: 913916
Change-Id: Ifb8447f1afe379c7108dca4e96d733dd256703e7
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-10-20 14:20:52 +05:30
David Collins 959c6d3df7 regulator: spm-regulator: add support for regulator mode switching
Add regulator_ops get_mode() and set_mode() callback functions
so that spm-regulator consumers may switch an individual regulator
between PWM and AUTO mode.

CRs-Fixed: 913916
Change-Id: I79ef1de3eab20c97beefed1dcce4091b91df95a3
Signed-off-by: David Collins <collinsd@codeaurora.org>
2015-10-20 14:20:36 +05:30
Anirudh Ghayal 31eccc3394 regulator: cpr-regulator: Enable/disable closed-loop CPR on temperature
Add logic to enable/disable closed-loop CPR based on TSENS temperature.
Use the thermal sensor interface which allows monitoring TSENS
temperature thresholds and notifies when the configured threshold is hit.

Use the notification callbacks to disable/enable CPR and force open-loop
voltage.

CRs-Fixed: 903646
Change-Id: Id131f7570740dce4445ce1849ae0551d6207c737
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-09-14 19:45:21 +05:30
Linux Build Service Account 85a473ec16 Merge "ARM: dts: msm: Enable GFX CPR Closed-loop operation for 8976/56" 2015-09-03 15:48:06 -07:00
Ravindranath Thiyagarajan 8d74a3c011 regulator: cpr-regulator: Add CPR de-aging support
CPR aging sensors detect the performance degradation
resulting from silicon aging. The CPR de-aging algorithm
detects the aging degradation of the device by reading
aging sensor data and generating necessary voltage guard band
to maintain SoC performance. Limit the generated voltage
guard band to a pre-defined threshold.

Change-Id: Iea6123c1b42856bb123d3e1c79f60401882aa8ba
Signed-off-by: Ravindranath Thiyagarajan <rthiyaga@codeaurora.org>
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-09-03 00:12:53 -07:00
Tirupathi Reddy 6ef76c2dc1 regulator: cpr2-gfx: Fix a race condition in the cpr interrupt handler
There is a possibility that the CPR threaded irq callback may get
scheduled after the cpr-controller is disabled causing a unclocked
access. Fix this by adding a check to return from the handler
if the controller is already disabled.

CRs-Fixed: 899788
Change-Id: I4eb2908bc44a43ab068a712df470e479d17ac190
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-09-03 12:34:23 +05:30
Anirudh Ghayal e4379c08a6 regulator: mem-acc: Select multiple override ACC configurations
Add logic to choose between multiple ACC override configurations
based on the override fuse. The scheme maps each possible override
fuse value to a override configuration.

Update 8952 and 8939 ACC DT configuration accordingly.

CRs-Fixed: 896763
Change-Id: Ia5cc395edab3d9fe34c94af5457462a677b59399
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-08-28 07:54:33 -07:00
Linux Build Service Account f8dd376dbe Merge "regulator: cpr-regulator: Add support for Voltage Sensors" 2015-08-16 16:19:46 -07:00
Abhijeet Dharmapurikar 3a51deb29e regulator: cpr-regulator: Add support for Voltage Sensors
Voltage sensor regulators need to be notified when the corner of apc
rail changes. Voltage Sensor regulator needs to be disabled prior
to changing the apc corner and needs to be notified of the ceiling
and floor voltage before enabling it again.

Change-Id: I0156480f6bfaf10397578caded2c15a298f20f95
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2015-08-13 14:32:16 +05:30
Ravindranath Thiyagarajan f343400c2b regulator: qpnp-labibb-regulator: Program LAB_PRECHARGE_CTL unconditionally
Currently, LAB_PRECHARGE_CTL register is programmed if LAB is not
ready to be enabled by IBB. LAB_PRECHARGE_CTL needs to be configured
by the LAB/IBB driver irrespective of its previous setting.

CRs-Fixed: 877370
Change-Id: Idb473ba0b063f010e89b669b79f79349ebfd0d59
Signed-off-by: Ravindranath Thiyagarajan <rthiyaga@codeaurora.org>
2015-08-11 22:02:10 -07:00
Ravindranath Thiyagarajan 076e52ccf4 regulator: qpnp-labibb-regulator: Fix IBB power up delay configuration
Currently, power up delay for IBB is programmed in the incorrect
register locations [4:3] of IBB_PWRUP_PWRDN_CTL_1. Fix this by
changing it to the correct register locations [5:4] of
IBB_PWRUP_PWRDN_CTL_1.

CRs-Fixed: 880446
Change-Id: I3beaf8cef749f3f1b0c77834b93f871de982e219
Signed-off-by: Ravindranath Thiyagarajan <rthiyaga@codeaurora.org>
2015-08-11 22:02:00 -07:00
Ravindranath Thiyagarajan 43ce3e853e regulator: cpr-regulator: Add a per cpr corner to mem-acc corner map
Define an array to map the CPR corner to MEM ACC corner. This allows
finer ACC configuration for individual corners. This is an optional
mapping provided through the device node. If not specified, the
fuse-corners are mapped as acc corners.

Change-Id: I260d4a906e0b16bacc9e724dd910c0afbe97925c
Signed-off-by: Ravindranath Thiyagarajan <rthiyaga@codeaurora.org>
2015-08-07 18:37:50 -07:00
Stefan Wahren bd5bf92293 regulator: core: fix constraints output buffer
commit a7068e3932eee8268c4ce4e080a338ee7b8a27bf upstream.

The buffer for condtraints debug isn't big enough to hold the output
in all cases. So fix this issue by increasing the buffer.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-08-03 09:29:41 -07:00
Tirupathi Reddy dfb09385a0 regulator: cpr2-gfx-regulator: Fix cpr clocks handling
Enable the required cpr clocks only when the cpr closed-loop
operation is enabled.

CRs-Fixed: 875838
Change-Id: I59db1bccbb60eef1f32c2fdf73469d0952347679
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-08-03 11:19:21 +05:30
Subbaraman Narayanamurthy 49d462f87b regulator: qpnp-labibb-regulator: fix configuring MODULE_RDY of LAB and IBB
Currently, MODULE_RDY of both LAB and IBB are getting configured
in HLOS only if the LAB/IBB modules are configured already by the
bootloader. However, if the LAB/IBB regulators needs to be
configured and used from the HLOS, MODULE_RDY should get
configured in HLOS if not already. Modify the configuration of
those registers accordingly.

CRs-Fixed: 877711
Change-Id: I17b6eea1b6ade2b76870af1833270af22af842f5
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2015-07-24 05:58:17 -07:00
Ravindranath Thiyagarajan ea66fbfeb5 regulator: qpnp-labibb-regulator: Allow configuring SOFT_START_CTL
Currently, LAB_SOFT_START_CTL and IBB_SOFT_START_CTL registers are
configured only if the IBB module was not enabled already by the
bootloader. Allow configuring them unconditionally if the device tree
parameters are specified in HLOS.

CRs-Fixed: 865268
Change-Id: I8455f40be0824cb7501279fb988ab92c7beccbb9
Signed-off-by: Ravindranath Thiyagarajan <rthiyaga@codeaurora.org>
2015-07-16 13:43:30 -07:00
Linux Build Service Account 32e51e10ee Merge "regulator: cpr-regulator: specify a list_corner_voltage callback function" 2015-07-05 02:35:43 -07:00
Linux Build Service Account efd67a74a8 Merge "regulator: qpnp-labibb-regulator: fix the base address usage" 2015-07-05 02:35:35 -07:00
Subbaraman Narayanamurthy 9cbbbf0603 regulator: qpnp-labibb-regulator: fix the base address usage
Currently, the base address of LAB module is being used for
configuring PD_CTL register of IBB module. Fix it.

Change-Id: I34edb86bc3f68cb857a4ae8ce69158991f7082c8
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
2015-07-02 11:11:08 -07:00
David Collins 3843b9ef44 Revert "regulator: rpm-smd-regulator: don't wait for ACK when lowering power state"
This reverts commit d9556f3bce05fe346df5e31784ca288691e6cafd
("regulator: rpm-smd-regulator: don't wait for ACK when lowering
power state") which conditionally avoids calling
msm_rpm_wait_for_ack() after msm_rpm_send_request().  The lack
of msm_rpm_wait_for_ack() calls can result in the device not
being able to enter suspend due to dependencies within the
rpm-smd driver.

Change-Id: Ibd3f5c1877090e9101d42f07c473348a0e5c1a38
Signed-off-by: David Collins <collinsd@codeaurora.org>
2015-06-30 12:29:11 -07:00
Tirupathi Reddy 6f7ae40807 regulator: cpr-regulator: specify a list_corner_voltage callback function
Define a list_corner_voltage callback function for the
cpr-regulator driver so that consumers can determine the CPR
ceiling voltage for each voltage corner.

Change-Id: Ic80ade45228fe8d452a4aad41e94ef44444b6124
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-06-30 16:45:25 +05:30
David Collins 34d0c4bdaf regulator: core: add regulator_list_corner_voltage function
Introduce a regulator_list_corner_voltage function for consumers
that need to know the maximum absolute voltage that may be
physically configured when a regulator is operating at a given
voltage corner.

Change-Id: Ide7a0b502796774fcad01f5cb5679f0938c72f96
Signed-off-by: David Collins <collinsd@codeaurora.org>
2015-06-30 16:23:32 +05:30
David Collins 2da02aa361 regulator: rpm-smd-regulator: don't wait for ACK when lowering power state
Modify the rpm-smd-regulator driver so that it does not wait for
an ACK or a NACK from the RPM after sending a request for a
strictly lower power state.  Some keys represent attributes with
well defined higher/lower semantics.  These include 'swen', 'uv',
'ma', 'corn', and 'vlvl'.  There is no need to wait for an ACK if
the value of one of the keys from this set is being configured to
a lower value.  Some keys such as 'pcen', 'pcmd', and 'resn' do
not have higher/lower semantics so an ACK is required any time
their value changes.

Change-Id: I9cae9916181ee086a3537fec11e4e5846a729abf
Signed-off-by: David Collins <collinsd@codeaurora.org>
2015-06-28 00:20:07 -07:00
Tirupathi Reddy 149b78473e regulator: add cpr2-gfx-regulator driver
Add a driver to support the CPR2 controller block which manages
the voltage rail of graphics processor.

Change-Id: Icd950a7059702dad934fee20cbf486899fbddad7
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2015-06-22 19:37:17 +05:30