Commit graph

25 commits

Author SHA1 Message Date
Anirudh Ghayal
eaad7892cc ARM: dts: msm: Add CPR support for SDM630 speed-bin 3
Add the CPR configuration of Speed-bin 3 for the power
and performance cluster of SDM630.

Change-Id: I6bf9a837ae941cf3ad9413da6e44821916acf197
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2018-09-11 07:58:09 -07:00
Tirupathi Reddy
b717c40ca9 regulator: cprh-kbss: Add speed-bin 4 support for sdm660
Update fuse combo count supported for sdm660 to 40.

Change-Id: I9ee2c15792c3f006db5969be42bce19a4ebc180c
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2018-05-14 11:18:50 +05:30
Tirupathi Reddy
1f4af949b0 ARM: dts: msm: Add speed-bin 3 for sdm660
Add speed-bin 3 support in cpr3 driver and device nodes
for sdm660.

CRs-Fixed: 2099889
Change-Id: Ied0da8ea6f9d787d0021716566080c37881b9558
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2017-08-23 10:26:50 +05:30
Prasad Sodagudi
0958ceaaf4 drivers: Warning fixes to disable CC_OPTIMIZE_FOR_SIZE
These are all driver changes needed for disablement of
CONFIG_CC_OPTIMIZE_FOR_SIZE. CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
is enabled by default once CONFIG_CC_OPTIMIZE_FOR_SIZE is disabled.

Change-Id: Ia46a1f24e8a082a29ea6151e41e6d3a85a05fd4f
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Sridhar Parasuram <sridhar@codeaurora.org>
2017-05-31 16:51:47 -07:00
Tirupathi Reddy
1c423b2380 regulator: Update APC0/1 CPR fuse corners supported for sdm630
Update the number of fuse corners used for APC0 and APC1 CPR
instances of sdm630 as per the new fusing scheme.

CRs-Fixed: 2008764
Change-Id: Icee251c350c102c698c2f60f3189e5aecf2dc7b1
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2017-02-22 08:44:35 +05:30
Tirupathi Reddy
18e54c2fda regulator: cprh-kbss: add support for sdm630 kbss cpr instances
sdm630 CPU CPR controllers support full hardware closed-loop CPR
operation also known as CPR hardening. Extend the cprh-kbss-regulator
driver to handle CPU subsystem specific power requirements of
the sdm630 chip.

CRs-Fixed: 1117353
Change-Id: Id2aa0674b0d9737907defd4b305ee70b74f65142
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2017-02-10 09:55:09 +05:30
David Collins
110c32f055 regulator: cpr3-regulator: correct various coding style issues
Correct warnings flagged by checkpatch.  In particular, modify
the following:

 - Use octal file permissions instead of symbolic.

 - Add 'const' to type of struct of_device_id variables.

 - Remove unnecessary out-of-memory error messages.

 - Change variables of type 'unsigned' to 'unsigned int'.

 - Restructure conditionals to avoid else after return/break.

 - Remove 'return' from the end of void functions.

 - Correct minor whitespace inconsistencies.

Change-Id: Ibf7812cd722c74e48d51e765f00efcbcf548c552
Signed-off-by: David Collins <collinsd@codeaurora.org>
2017-02-03 11:48:09 -08:00
Tirupathi Reddy
a8af09abd1 regulator: cprh-kbss: add support for sdm660 kbss cpr instances
sdm660 CPU CPR controllers support full hardware closed-loop CPR
operation also known as CPR hardening. Extend the cprh-kbss-regulator
driver to handle CPU subsystem specific power requirements of
the sdm660 chip.

CRs-Fixed: 1105923
Change-Id: I2e24a061a5ad4ee959dd578da9e811ac7700702c
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2017-01-04 09:19:00 +05:30
David Collins
1a9d62db8e regulator: cprh-regulator: add support for MEM ACC threshold voltage
Add support for configuring the memory accelerator (MEM ACC)
threshold voltage and the MEM ACC crossover voltage.
The threshold voltage is used to restrict the floor to ceiling
voltage range of all corners so that they cannot cross the
the MEM ACC threshold voltage due to CPR operation.  The
crossover voltage is set when switching the MEM ACC
configuration.

If specified, the APM and MEM ACC crossover voltages are added
to the array of corners after all true corners.  If both are
specified, then the APM crossover corner is added before the MEM
ACC crossover corner (i.e. last corner = MEM ACC crossover and
second to last corner = APM crossover).

CRs-Fixed: 1088429
Change-Id: I2b9b746071579ba9d4bcdcfb6cb755ca08a73182
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-11-28 14:51:18 -08:00
Osvaldo Banuelos
6b7a5fd9d2 regulator: cprh-kbss-regulator: increase supported fuse combo count
Support a total of 32 fuse combos to cater to MSM8998
parts blown with speed-bins 2 and 3.

CRs-Fixed: 1086294
Change-Id: Id03a418f66c9cbb51c2be6904f682d15e82f78c8
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-11-28 13:27:15 -08:00
Runmin Wang
1289f98375 msm: 8998: Replace cobalt with 8998
Update the code name from msmcobalt to msm8998. As a result, update
the filename containing "cobalt" and files content containing "cobalt".

CRs-Fixed: 1070840
Change-Id: I2c7b95e3e2a2fec7730724da9eeb86a39a77faf1
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-11-22 13:07:05 -08:00
Osvaldo Banuelos
1e33c205e4 regulator: cprh-kbss-regulator: update temp sensor ID for msmcobalt
Update the temperature sensor ID for the KBSS performance
cluster according to latest hardware recommendations.

CRs-Fixed: 1080409
Change-Id: Ie8e7a8d390d49937e57e23ada953c117541f2f99
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-10-28 14:33:08 -07:00
David Collins
8402e71863 regulator: cprh-kbss-regulator: add CPR aging adjustment support
Add support to read the initial CPR aging sensor skew fuse value
and to perform an aging measurement and subsequent voltage
adjustment.

Change-Id: I51a6762d026e7b5a4e39e957144f1b21c5ef121a
CRs-Fixed: 1048890
Signed-off-by: David Collins <collinsd@codeaurora.org>
2016-10-05 15:23:03 -07:00
Osvaldo Banuelos
2fbd5cd8f9 regulator: cprh-kbss-regulator: add per-cluster fuse reference voltages
Allow specification of different fuse reference voltages for
the power and performance clusters of MSMCOBALTv2 and increase
the LowSVS fuse reference voltage of the performance cluster.
This allows operation at increased voltages for SVS2 to ensure
stable operation of MSMCOBALT v2 parts.

CRs-Fixed: 1062365
Change-Id: If9f35626303321439286bd62e664e68c05ef19c5
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-09-02 17:54:20 -07:00
Osvaldo Banuelos
4a2b0132a4 regulator: cprh-kbss-regulator: increase number of supported fuse combos
Add support for a total of 16 fuse combos to cater to MSMCOBALT
parts blown with a speed-bin fuse equal to 1.

CRs-Fixed: 1057119
Change-Id: I778e33b9de9947dd33f4cb7142be8771d4afc7cb
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-09-02 08:45:12 -07:00
Linux Build Service Account
e97b6a0e02 Merge "regulator: cprh-kbss-regulator: support the force highest corner fuse" 2016-08-23 09:08:52 -07:00
Osvaldo Banuelos
260f061e65 regulator: cprh-kbss-regulator: support per-rev fuse reference voltages
Add support for per-chip revision open-loop fuse reference
voltages. This allows for the correct calculation of open-loop
voltages across msmcobalt chip revisions where the fused
reference voltages vary. Lastly, update the compatible string for
existing msmcobalt v1 CPR APC devices.

CRs-Fixed: 1051863
Change-Id: Icff31b265b49d087005ac0e58d7783ff2588548c
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-08-15 15:59:32 -07:00
Osvaldo Banuelos
a60cb501e0 regulator: cprh-kbss-regulator: support the force highest corner fuse
Add support for the MSMCOBALT force highest corner fuse. This
fuse is set on parts which can only operate consistently when
the highest corner's voltage is applied to all of the lower
corners.

CRs-Fixed: 1051261
Change-Id: I442e87e780a790d0f00aa62bc0534b6f017fc02c
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-08-05 17:08:00 -07:00
Osvaldo Banuelos
9992623763 regulator: cprh-kbss-regulator: add support for APM crossover corner
Add support for a corner whose open-loop voltage corresponds to the
VDD supply voltage required during an APM switch transition. This
corner is requested by OSM hardware to the CPRh controller when
the VDD supply must be set to a specific voltage to ensure a stable
APM switch procedure. Define a crossover corner of 880 mV for both
VDD_APC CPR devices.

CRs-Fixed: 1021656
Change-Id: Icf4b640ec2c330b0d9721d3494297e2d8445c9b6
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-07-26 18:35:52 -07:00
Osvaldo Banuelos
2c0842299d regulator: cpr3-regulator: support step quot for CPRh controllers
The step quotient is used for target quotient adjustment when
sdelta table margins are used. Add support for fixed or dynamic
step quotient for CPRh controllers to allow per-core-count and
per temperature adjustments to work in conjunction with
closed-loop operation.

Change-Id: I6b9d663b44c96dafba26ad25bcfc4b61c8c86d56
CRs-Fixed: 1020505
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-05-25 14:21:10 -07:00
Osvaldo Banuelos
2d36c20ef4 regulator: cprh-kbss-regulator: use APM hysteresis for voltage adjustments
Adjust floor voltages based upon a configurable APM hysteresis voltage.
This reduces the number of corners whose floor voltages must be raised
to ensure stable operation with manual APM switching. In particular,
for corners with ceiling voltage greater than or equal to the APM
threshold voltage and floor voltage less than APM threshold voltage
set an adjusted floor of max(floor, APM threshold - APM hysteresis).

Change-Id: I65bebcfd8f4785bce9f65243987c05444aab14ee
CRs-Fixed: 1001346
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-04-12 15:49:52 -07:00
Osvaldo Banuelos
802247e417 regulator: cprh-kbss-regulator: move controller type initialization
Initialize the controller type before cpr3_parse_common_ctrl_data()
is called as this function performs initializations based upon
controller type.

Change-Id: I0cdcd6519338043e40acf9357f39a61ff6f43604
CRs-Fixed: 1001355
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-04-12 15:49:51 -07:00
Osvaldo Banuelos
c413bcb70a regulator: cprh-kbss-regulator: fix interpolation for highest fuse corner
Currently, open-loop voltage interpolation is skipped for corners
mapping to the highest fused corner thus resulting in incorrect
open-loop voltages when open-loop interpolation is enabled. Fix this.

Change-Id: Iab5a2dadfec45efb08b9c45f956e9f102d2d2c55
CRs-Fixed: 1001350
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-04-12 15:49:49 -07:00
Osvaldo Banuelos
9de8ac9a72 regulator: cprh-kbss-regulator: update open-loop reference voltages
Update the CPR open-loop reference voltages for msmcobalt
to ensure that the correct open-loop voltages are calculated
based upon hardware fuse values. In addition, rename Turbo_L2 to
Turbo_L1 as this corresponds to the highest fused corner valid
across all msmcobalt devices.

Change-Id: Ia71c6bade7920f80ce4227344011c1f239ac9752
CRs-Fixed: 988269
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-03-25 16:04:21 -07:00
Osvaldo Banuelos
0514464b8e regulator: cpr3-regulator: add support for CPRh-compliant controllers
Augment the cpr3-regulator driver to support controllers with full
hardware CPR operation also known as CPR hardening. Also, introduce
the cprh-kbss-regulator driver to handle CPU subsystem specific power
requirements of the msmcobalt chip.

Change-Id: Icac84f9533fa1895ca2466a3793ddaa8b7a4c89c
CRs-Fixed: 967275
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
2016-03-23 21:23:13 -07:00