Files
android_kernel_motorola_sm6225/qcom/sdm660-regulator.dtsi
T
Chetan C R a03b9c1c78 ARM: dts: msm: Add initial device tree for SDM660
Add initial device tree support for SDM660 target.
This is a snapshot of dtsi files as of msm-4.14
'commit <ca4ff9398e337420b> ("fbdev: msm: Use
dynamic allocation for SID variable")'.

Change-Id: Ia13a516de919c7c6c12a064f76af1ab2a8439e2d
2020-07-21 12:21:17 +05:30

950 lines
24 KiB
Devicetree

#include <dt-bindings/clock/qcom,gcc-sdm660.h>
#include <dt-bindings/clock/qcom,gpu-sdm660.h>
#include <dt-bindings/clock/qcom,rpmcc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
&rpm_bus {
rpm-regulator-smpa4 {
status = "okay";
pm660_s4: regulator-s4 {
regulator-min-microvolt = <1805000>;
regulator-max-microvolt = <2040000>;
status = "okay";
};
};
rpm-regulator-smpa5 {
status = "okay";
pm660_s5: regulator-s5 {
regulator-min-microvolt = <1224000>;
regulator-max-microvolt = <1350000>;
status = "okay";
};
};
rpm-regulator-smpa6 {
status = "okay";
pm660_s6: regulator-s6 {
regulator-min-microvolt = <504000>;
regulator-max-microvolt = <992000>;
status = "okay";
};
};
rpm-regulator-smpb1 {
status = "okay";
pm660l_s1: regulator-s1 {
regulator-min-microvolt = <1125000>;
regulator-max-microvolt = <1125000>;
status = "okay";
};
};
rpm-regulator-smpb2 {
status = "okay";
pm660l_s2: regulator-s2 {
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
status = "okay";
};
};
/* PM660L S3 + S4 - VDD_CX supply */
rpm-regulator-smpb3 {
status = "okay";
pm660l_s3_level: regulator-s3-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s3_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_s3_floor_level: regulator-s3-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s3_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
pm660l_s3_level_ao: regulator-s3-level-ao {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s3_level_ao";
qcom,set = <1>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
cx_cdev: cx-cdev {
compatible = "qcom,regulator-cooling-device";
regulator-cdev-supply = <&pm660l_s3_floor_level>;
regulator-levels = <RPM_SMD_REGULATOR_LEVEL_NOM
RPM_SMD_REGULATOR_LEVEL_RETENTION>;
#cooling-cells = <2>;
};
};
/* PM660L S5 - VDD_MX supply */
rpm-regulator-smpb5 {
status = "okay";
pm660l_s5_level: regulator-s5-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s5_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_s5_floor_level: regulator-s5-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s5_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
pm660l_s5_level_ao: regulator-s5-level-ao {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_s5_level_ao";
qcom,set = <1>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
};
rpm-regulator-ldoa1 {
status = "okay";
pm660_l1: regulator-l1 {
regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1250000>;
status = "okay";
};
};
rpm-regulator-ldoa2 {
status = "okay";
pm660_l2: regulator-l2 {
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1010000>;
status = "okay";
};
};
rpm-regulator-ldoa3 {
status = "okay";
pm660_l3: regulator-l3 {
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <1010000>;
status = "okay";
};
};
/* TODO: remove if ADRASTEA CX/MX not voted from APPS */
rpm-regulator-ldoa5 {
status = "okay";
pm660_l5: regulator-l5 {
regulator-min-microvolt = <525000>;
regulator-max-microvolt = <950000>;
status = "okay";
};
};
rpm-regulator-ldoa6 {
status = "okay";
pm660_l6: regulator-l6 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1370000>;
status = "okay";
};
pm660_l6_pin_ctrl: regulator-l6-pin-ctrl {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l6_pin_ctrl";
qcom,set = <3>;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1370000>;
/* Force NPM follows HW_EN1 */
qcom,init-pin-ctrl-mode = <2>;
/* Enable follows HW_EN1 */
qcom,enable-with-pin-ctrl = <0 2>;
};
};
rpm-regulator-ldoa7 {
status = "okay";
pm660_l7: regulator-l7 {
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
status = "okay";
};
};
rpm-regulator-ldoa8 {
status = "okay";
pm660_l8: regulator-l8 {
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
status = "okay";
};
};
rpm-regulator-ldoa9 {
status = "okay";
pm660_l9: regulator-l9 {
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
status = "okay";
};
pm660_l9_pin_ctrl: regulator-l9-pin-ctrl {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l9_pin_ctrl";
qcom,set = <3>;
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <1900000>;
/* Force NPM follows HW_EN1 */
qcom,init-pin-ctrl-mode = <2>;
/* Enable follows HW_EN1 */
qcom,enable-with-pin-ctrl = <0 2>;
};
};
rpm-regulator-ldoa10 {
status = "okay";
pm660_l10: regulator-l10 {
proxy-supply = <&pm660_l10>;
qcom,proxy-consumer-enable;
qcom,proxy-consumer-current = <14000>;
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa11 {
status = "okay";
pm660_l11: regulator-l11 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa12 {
status = "okay";
pm660_l12: regulator-l12 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa13 {
status = "okay";
pm660_l13: regulator-l13 {
regulator-min-microvolt = <1780000>;
regulator-max-microvolt = <1950000>;
status = "okay";
};
};
rpm-regulator-ldoa14 {
status = "okay";
pm660_l14: regulator-l14 {
regulator-min-microvolt = <1710000>;
regulator-max-microvolt = <1900000>;
status = "okay";
};
};
rpm-regulator-ldoa15 {
status = "okay";
pm660_l15: regulator-l15 {
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2950000>;
status = "okay";
};
};
rpm-regulator-ldoa17 {
status = "okay";
pm660_l17: regulator-l17 {
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2950000>;
status = "okay";
};
};
rpm-regulator-ldoa19 {
status = "okay";
pm660_l19: regulator-l19 {
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
status = "okay";
};
pm660_l19_pin_ctrl: regulator-l19-pin-ctrl {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660_l19_pin_ctrl";
qcom,set = <3>;
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
/* Force NPM follows HW_EN1 */
qcom,init-pin-ctrl-mode = <2>;
/* Enable follows HW_EN1 */
qcom,enable-with-pin-ctrl = <0 2>;
};
};
rpm-regulator-ldob1 {
status = "okay";
pm660l_l1: regulator-l1 {
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <925000>;
status = "okay";
};
};
rpm-regulator-ldob2 {
status = "okay";
pm660l_l2: regulator-l2 {
regulator-min-microvolt = <350000>;
regulator-max-microvolt = <3100000>;
status = "okay";
};
};
rpm-regulator-ldob3 {
status = "okay";
pm660l_l3: regulator-l3 {
regulator-min-microvolt = <1710000>;
regulator-max-microvolt = <3600000>;
status = "okay";
};
};
rpm-regulator-ldob4 {
status = "okay";
pm660l_l4: regulator-l4 {
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <2950000>;
status = "okay";
};
};
rpm-regulator-ldob5 {
status = "okay";
pm660l_l5: regulator-l5 {
regulator-min-microvolt = <1721000>;
regulator-max-microvolt = <3600000>;
status = "okay";
};
};
rpm-regulator-ldob6 {
status = "okay";
pm660l_l6: regulator-l6 {
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <3300000>;
status = "okay";
};
};
rpm-regulator-ldob7 {
status = "okay";
pm660l_l7: regulator-l7 {
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3125000>;
parent-supply = <&pm660_l10>;
status = "okay";
};
};
rpm-regulator-ldob8 {
status = "okay";
pm660l_l8: regulator-l8 {
regulator-min-microvolt = <3200000>;
regulator-max-microvolt = <3400000>;
status = "okay";
};
};
/* PM660L L9 = VDD_SSC_CX supply */
rpm-regulator-ldob9 {
status = "okay";
pm660l_l9_level: regulator-l9-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l9_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_l9_floor_level: regulator-l9-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l9_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
};
/* PM660L L10 = VDD_SSC_MX supply */
rpm-regulator-ldob10 {
status = "okay";
pm660l_l10_level: regulator-l10-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l10_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-level;
};
pm660l_l10_floor_level: regulator-l10-floor-level {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_l10_floor_level";
qcom,set = <3>;
regulator-min-microvolt =
<RPM_SMD_REGULATOR_LEVEL_RETENTION>;
regulator-max-microvolt =
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,use-voltage-floor-level;
qcom,always-send-voltage;
};
};
rpm-regulator-bobb {
status = "okay";
pm660l_bob: regulator-bob {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
status = "okay";
};
pm660l_bob_pin1: regulator-bob-pin1 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_bob_pin1";
qcom,set = <3>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
qcom,use-pin-ctrl-voltage1;
};
pm660l_bob_pin2: regulator-bob-pin2 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_bob_pin2";
qcom,set = <3>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
qcom,use-pin-ctrl-voltage2;
};
pm660l_bob_pin3: regulator-bob-pin3 {
compatible = "qcom,rpm-smd-regulator";
regulator-name = "pm660l_bob_pin3";
qcom,set = <3>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3600000>;
qcom,pwm-threshold-current = <2000000>;
qcom,init-bob-mode = <2>;
qcom,use-pin-ctrl-voltage3;
};
};
};
&pm660_charger {
smb2_vbus: qcom,smb2-vbus {
regulator-name = "smb2-vbus";
};
smb2_vconn: qcom,smb2-vconn {
regulator-name = "smb2-vconn";
};
};
/* Stub regulators */
/ {
/* GFX Supply */
gfx_stub_vreg: regulator-gfx-stub {
compatible = "qcom,stub-regulator";
regulator-name = "gfx_stub_corner";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <1070000>;
};
};
&soc {
/* MEM ACC regulators */
gfx_mem_acc_vreg: regulator@01fcf004 {
compatible = "qcom,mem-acc-regulator";
reg = <0x01fcf004 0x4>;
reg-names = "acc-sel-l1";
regulator-name = "gfx_mem_acc_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <2>;
qcom,corner-acc-map = <0x1 0x0>;
qcom,acc-sel-l1-bit-pos = <0>;
qcom,acc-sel-l1-bit-size = <1>;
};
gfx_ldo_vreg: ldo@0506e000 {
compatible = "qcom,sdm660-gfx-ldo";
reg = <0x0506e000 0x34>;
reg-names = "ldo_addr";
regulator-name = "msm_gfx_ldo";
regulator-min-microvolt = <400000>;
regulator-max-microvolt = <925000>;
};
/* CPR controller regulators */
/* MMSS CPR Controller node */
gfx_cpr: cpr4-ctrl@05061000 {
compatible = "qcom,cpr4-sdm660-mmss-ldo-regulator";
reg = <0x05061000 0x4000>, <0x00784000 0x1000>;
reg-names = "cpr_ctrl", "fuse_base";
clocks = <&clock_gpu GPUCC_RBCPR_CLK>,
<&clock_rpmcc RPM_SMD_CNOC_CLK>;
clock-names = "core_clk", "bus_clk";
interrupts = <GIC_SPI 285 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "cpr";
qcom,cpr-ctrl-name = "gfx";
qcom,cpr-sensor-time = <1000>;
qcom,cpr-loop-time = <5000000>;
qcom,cpr-idle-cycles = <15>;
qcom,cpr-step-quot-init-min = <12>;
qcom,cpr-step-quot-init-max = <14>;
qcom,cpr-count-mode = <0>; /* All at once */
qcom,cpr-count-repeat = <14>;
qcom,cpr-reset-step-quot-loop-en;
vdd-supply = <&gfx_stub_vreg>;
mem-acc-supply = <&gfx_mem_acc_vreg>;
system-supply = <&pm660l_s3_level>; /* vdd_cx */
qcom,voltage-step = <5000>;
vdd-thread0-ldo-supply = <&gfx_ldo_vreg>;
thread@0 {
qcom,cpr-thread-id = <0>;
qcom,cpr-consecutive-up = <0>;
qcom,cpr-consecutive-down = <2>;
qcom,cpr-up-threshold = <2>;
qcom,cpr-down-threshold = <2>;
gfx_vreg_corner: regulator {
regulator-name = "gfx_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <7>;
qcom,cpr-fuse-corners = <6>;
qcom,cpr-fuse-combos = <8>;
qcom,cpr-corners = <7>;
qcom,cpr-corner-fmax-map = <1 2 3 4 5 6>;
qcom,cpr-voltage-ceiling =
<585000 645000 725000 790000
870000 925000 1070000>;
qcom,cpr-voltage-floor =
<504000 504000 596000 652000
712000 744000 1070000>;
qcom,mem-acc-voltage = <1 1 1 2 2 2 2>;
qcom,system-voltage =
<RPM_SMD_REGULATOR_LEVEL_LOW_SVS>,
<RPM_SMD_REGULATOR_LEVEL_LOW_SVS>,
<RPM_SMD_REGULATOR_LEVEL_SVS>,
<RPM_SMD_REGULATOR_LEVEL_SVS_PLUS>,
<RPM_SMD_REGULATOR_LEVEL_NOM>,
<RPM_SMD_REGULATOR_LEVEL_NOM_PLUS>,
<RPM_SMD_REGULATOR_LEVEL_TURBO>;
qcom,corner-frequencies =
<160000000 266000000 370000000
465000000 588000000 647000000
750000000>;
qcom,cpr-target-quotients =
<0 0 0 0 0 0 174 167
294 292 303 313 0 0 0 0>,
<0 0 0 0 0 0 263 247
413 397 415 412 0 0 0 0>,
<0 0 0 0 0 0 375 354
554 519 573 554 0 0 0 0>,
<0 0 0 0 0 0 412 380
597 562 612 591 0 0 0 0>,
<0 0 0 0 0 0 513 476
722 680 738 718 0 0 0 0>,
<0 0 0 0 0 0 595 553
811 768 837 811 0 0 0 0>,
<0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0>;
qcom,cpr-ro-scaling-factor =
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>,
< 0 0 0 0 0 0 1790 1760
1990 1900 2140 2020 0 0 0 0>;
qcom,cpr-scaled-open-loop-voltage-as-ceiling;
qcom,cpr-corner-allow-ldo-mode =
<0 0 0 0 0 0 0>;
qcom,cpr-corner-allow-closed-loop =
<0 0 0 0 0 0 0>;
};
};
};
/* APC0 CPR Controller node for Silver cluster */
apc0_cpr: cprh-ctrl@179c8000 {
compatible = "qcom,cprh-sdm660-kbss-regulator";
reg = <0x179c8000 0x4000>, <0x00784000 0x1000>;
reg-names = "cpr_ctrl", "fuse_base";
clocks = <&clock_gcc GCC_HMSS_RBCPR_CLK>;
clock-names = "core_clk";
qcom,cpr-ctrl-name = "apc0";
qcom,cpr-controller-id = <0>;
qcom,cpr-sensor-time = <1000>;
qcom,cpr-loop-time = <5000000>;
qcom,cpr-idle-cycles = <15>;
qcom,cpr-up-down-delay-time = <3000>;
qcom,cpr-step-quot-init-min = <12>;
qcom,cpr-step-quot-init-max = <14>;
qcom,cpr-count-mode = <0>; /* All at once */
qcom,cpr-count-repeat = <14>;
qcom,cpr-down-error-step-limit = <1>;
qcom,cpr-up-error-step-limit = <1>;
qcom,cpr-corner-switch-delay-time = <1042>;
qcom,cpr-voltage-settling-time = <1760>;
qcom,apm-threshold-voltage = <872000>;
qcom,apm-crossover-voltage = <872000>;
qcom,apm-hysteresis-voltage = <20000>;
qcom,voltage-step = <4000>;
qcom,voltage-base = <400000>;
qcom,cpr-saw-use-unit-mV;
qcom,cpr-reset-step-quot-loop-en;
qcom,cpr-panic-reg-addr-list =
<0x179cbaa4 0x17912c18>;
qcom,cpr-panic-reg-name-list =
"PWR_CPRH_STATUS", "APCLUS0_L2_SAW4_PMIC_STS";
qcom,cpr-enable;
qcom,cpr-hw-closed-loop;
thread@0 {
qcom,cpr-thread-id = <0>;
qcom,cpr-consecutive-up = <0>;
qcom,cpr-consecutive-down = <2>;
qcom,cpr-up-threshold = <2>;
qcom,cpr-down-threshold = <2>;
apc0_pwrcl_vreg: regulator {
regulator-name = "apc0_pwrcl_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <8>;
qcom,cpr-fuse-corners = <5>;
qcom,cpr-fuse-combos = <40>;
qcom,cpr-speed-bins = <5>;
qcom,cpr-speed-bin-corners = <8 8 0 8 8>;
qcom,cpr-corners =
/* Speed bin 0 */
<8 8 8 8 8 8 8 8>,
/* Speed bin 1 */
<8 8 8 8 8 8 8 8>,
/* Speed bin 2 */
<0 0 0 0 0 0 0 0>,
/* Speed bin 3 */
<8 8 8 8 8 8 8 8>,
/* Speed bin 4 */
<8 8 8 8 8 8 8 8>;
qcom,cpr-corner-fmax-map =
/* Speed bin 0 */
<2 3 4 5 8>,
/* Speed bin 1 */
<2 3 4 5 8>,
/* Speed bin 2 */
<0 0 0 0 0>,
/* Speed bin 3 */
<2 3 4 5 8>,
/* Speed bin 4 */
<2 3 4 5 8>;
qcom,cpr-voltage-ceiling =
< 724000 724000 724000 788000 868000
1068000 1068000 1068000>;
qcom,cpr-voltage-floor =
<588000 588000 596000 652000 712000
744000 784000 844000>;
qcom,corner-frequencies =
/* Speed bin 0 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1747200000 1843200000>,
/* Speed bin 1 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1747200000 1843200000>,
/* Speed bin 3 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1612800000 1843200000>,
/* Speed bin 4 */
<300000000 633600000 902400000
1113600000 1401600000 1536000000
1747200000 1843200000>;
qcom,allow-voltage-interpolation;
qcom,allow-quotient-interpolation;
qcom,cpr-scaled-open-loop-voltage-as-ceiling;
qcom,cpr-ro-scaling-factor =
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>,
<3600 3600 3830 2430 2520 2700 1790
1760 1970 1880 2110 2010 2510 4900
4370 4780>;
qcom,cpr-open-loop-voltage-fuse-adjustment =
< (-4000) 4000 7000 19000 (-8000)>;
qcom,cpr-closed-loop-voltage-fuse-adjustment =
<(-32000) (-30000) (-29000) (-23000)
(-21000)>;
qcom,cpr-floor-to-ceiling-max-range =
<32000 32000 32000 40000 44000
40000 40000 40000>;
};
};
};
/* APC1 CPR Controller node for Gold cluster */
apc1_cpr: cprh-ctrl@179c4000 {
compatible = "qcom,cprh-sdm660-kbss-regulator";
reg = <0x179c4000 0x4000>, <0x00784000 0x1000>;
reg-names = "cpr_ctrl", "fuse_base";
clocks = <&clock_gcc GCC_HMSS_RBCPR_CLK>;
clock-names = "core_clk";
qcom,cpr-ctrl-name = "apc1";
qcom,cpr-controller-id = <1>;
qcom,cpr-sensor-time = <1000>;
qcom,cpr-loop-time = <5000000>;
qcom,cpr-idle-cycles = <15>;
qcom,cpr-up-down-delay-time = <3000>;
qcom,cpr-step-quot-init-min = <12>;
qcom,cpr-step-quot-init-max = <14>;
qcom,cpr-count-mode = <0>; /* All at once */
qcom,cpr-count-repeat = <14>;
qcom,cpr-down-error-step-limit = <1>;
qcom,cpr-up-error-step-limit = <1>;
qcom,cpr-corner-switch-delay-time = <1042>;
qcom,cpr-voltage-settling-time = <1760>;
qcom,apm-threshold-voltage = <872000>;
qcom,apm-crossover-voltage = <872000>;
qcom,apm-hysteresis-voltage = <20000>;
qcom,voltage-step = <4000>;
qcom,voltage-base = <400000>;
qcom,cpr-saw-use-unit-mV;
qcom,cpr-reset-step-quot-loop-en;
qcom,cpr-panic-reg-addr-list =
<0x179c7aa4 0x17812c18>;
qcom,cpr-panic-reg-name-list =
"PERF_CPRH_STATUS", "APCLUS1_L2_SAW4_PMIC_STS";
qcom,cpr-enable;
qcom,cpr-hw-closed-loop;
thread@0 {
qcom,cpr-thread-id = <0>;
qcom,cpr-consecutive-up = <0>;
qcom,cpr-consecutive-down = <2>;
qcom,cpr-up-threshold = <2>;
qcom,cpr-down-threshold = <2>;
apc1_perfcl_vreg: regulator {
regulator-name = "apc1_perfcl_corner";
regulator-min-microvolt = <1>;
regulator-max-microvolt = <7>;
qcom,cpr-fuse-corners = <5>;
qcom,cpr-fuse-combos = <40>;
qcom,cpr-speed-bins = <5>;
qcom,cpr-speed-bin-corners = <7 7 0 7 7>;
qcom,cpr-corners =
/* Speed-bin 0 */
<7 7 7 7 7 7 7 7>,
/* Speed-bin 1 */
<7 7 7 7 7 7 7 7>,
/* Speed-bin 1 */
<0 0 0 0 0 0 0 0>,
/* Speed-bin 3 */
<7 7 7 7 7 7 7 7>,
/* Speed-bin 4 */
<7 7 7 7 7 7 7 7>;
qcom,cpr-corner-fmax-map =
/* Speed-bin 0 */
<2 3 4 6 7>,
/* Speed-bin 1 */
<2 3 4 6 7>,
/* Speed-bin 2 */
<0 0 0 0 0>,
/* Speed-bin 3 */
<2 3 4 6 7>,
/* Speed-bin 4 */
<2 3 4 6 7>;
qcom,cpr-voltage-ceiling =
<724000 724000 788000 868000
988000 988000 1068000>;
qcom,cpr-voltage-floor =
<588000 596000 652000 712000
744000 784000 844000>;
qcom,corner-frequencies =
/* Speed bin 0 */
<300000000 1113600000 1401600000
1747200000 1958400000 2150400000
2457600000>,
/* Speed bin 1 */
<300000000 1113600000 1401600000
1747200000 1958400000 2150400000
2208000000>,
/* Speed bin 3 */
<300000000 1113600000 1401600000
1747200000 1804800000 2150400000
2208000000>,
/* Speed bin 4 */
<300000000 1113600000 1401600000
1747200000 1958400000 2150400000
2208000000>;
qcom,allow-voltage-interpolation;
qcom,allow-quotient-interpolation;
qcom,cpr-scaled-open-loop-voltage-as-ceiling;
qcom,cpr-ro-scaling-factor =
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>,
<4040 4230 0000 2210 2560 2450 2230
2220 2410 2300 2560 2470 1600 3120
2620 2280>;
qcom,cpr-open-loop-voltage-fuse-adjustment =
<16000 27000 39000 39000 20000>;
qcom,cpr-closed-loop-voltage-fuse-adjustment =
<(-22000) (-9000) (-7000) (-2000)
11000>;
qcom,cpr-floor-to-ceiling-max-range =
<40000 40000 40000 40000
66000 66000 40000>;
};
};
};
};