Loading arch/arm/boot/dts/qcom/sdm660-regulator.dtsi +72 −11 Original line number Diff line number Diff line Loading @@ -700,11 +700,33 @@ regulator-max-microvolt = <8>; qcom,cpr-fuse-corners = <5>; qcom,cpr-fuse-combos = <16>; qcom,cpr-speed-bins = <2>; qcom,cpr-speed-bin-corners = <8 8>; qcom,cpr-corners = <8>; qcom,cpr-corner-fmax-map = <2 3 4 5 8>; qcom,cpr-fuse-combos = <32>; qcom,cpr-speed-bins = <4>; qcom,cpr-speed-bin-corners = <8 8 0 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>; 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>; qcom,cpr-voltage-ceiling = < 724000 724000 724000 788000 868000 Loading @@ -715,9 +737,20 @@ 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 1747200000 1843200000>; 1612800000 1843200000>; qcom,allow-voltage-interpolation; qcom,allow-quotient-interpolation; Loading Loading @@ -806,11 +839,34 @@ regulator-max-microvolt = <7>; qcom,cpr-fuse-corners = <5>; qcom,cpr-fuse-combos = <16>; qcom,cpr-speed-bins = <2>; qcom,cpr-speed-bin-corners = <7 7>; qcom,cpr-corners = <7>; qcom,cpr-corner-fmax-map = <2 3 4 6 7>; qcom,cpr-fuse-combos = <32>; qcom,cpr-speed-bins = <4>; qcom,cpr-speed-bin-corners = <7 7 0 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>; 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>; qcom,cpr-voltage-ceiling = <724000 724000 788000 868000 Loading @@ -829,6 +885,11 @@ /* Speed bin 1 */ <300000000 1113600000 1401600000 1747200000 1958400000 2150400000 2208000000>, /* Speed bin 3 */ <300000000 1113600000 1401600000 1747200000 1804800000 2150400000 2208000000>; qcom,allow-voltage-interpolation; Loading drivers/regulator/cprh-kbss-regulator.c +12 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ struct cprh_kbss_fuses { * Fuse combos 24 - 31 map to CPR fusing revision 0 - 7 with speed bin fuse = 3. */ #define CPRH_MSM8998_KBSS_FUSE_COMBO_COUNT 32 #define CPRH_SDM660_KBSS_FUSE_COMBO_COUNT 16 #define CPRH_SDM660_KBSS_FUSE_COMBO_COUNT 32 #define CPRH_SDM630_KBSS_FUSE_COMBO_COUNT 24 /* Loading Loading @@ -1069,6 +1069,12 @@ static int cprh_kbss_calculate_open_loop_voltages(struct cpr3_regulator *vreg) CPRH_KBSS_FUSE_STEP_VOLT, fuse->init_voltage[i], CPRH_KBSS_VOLTAGE_FUSE_SIZE); /* SDM660 speed bin #3 does not support TURBO_L1/L2 */ if (soc_revision == SDM660_SOC_ID && vreg->speed_bin_fuse == 3 && (id == CPRH_KBSS_PERFORMANCE_CLUSTER_ID) && (i == CPRH_SDM660_PERF_KBSS_FUSE_CORNER_TURBO_L2)) continue; /* Log fused open-loop voltage values for debugging purposes. */ cpr3_info(vreg, "fused %8s: open-loop=%7d uV\n", corner_name[i], fuse_volt[i]); Loading Loading @@ -1615,6 +1621,11 @@ static int cprh_kbss_calculate_target_quotients(struct cpr3_regulator *vreg) CPRH_SDM660_PERF_KBSS_FUSE_CORNER_SVS; highest_fuse_corner = CPRH_SDM660_PERF_KBSS_FUSE_CORNER_TURBO_L2; /* speed-bin 3 does not have Turbo_L2 fuse */ if (vreg->speed_bin_fuse == 3) highest_fuse_corner = CPRH_SDM660_PERF_KBSS_FUSE_CORNER_TURBO; } break; case SDM630_SOC_ID: Loading Loading
arch/arm/boot/dts/qcom/sdm660-regulator.dtsi +72 −11 Original line number Diff line number Diff line Loading @@ -700,11 +700,33 @@ regulator-max-microvolt = <8>; qcom,cpr-fuse-corners = <5>; qcom,cpr-fuse-combos = <16>; qcom,cpr-speed-bins = <2>; qcom,cpr-speed-bin-corners = <8 8>; qcom,cpr-corners = <8>; qcom,cpr-corner-fmax-map = <2 3 4 5 8>; qcom,cpr-fuse-combos = <32>; qcom,cpr-speed-bins = <4>; qcom,cpr-speed-bin-corners = <8 8 0 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>; 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>; qcom,cpr-voltage-ceiling = < 724000 724000 724000 788000 868000 Loading @@ -715,9 +737,20 @@ 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 1747200000 1843200000>; 1612800000 1843200000>; qcom,allow-voltage-interpolation; qcom,allow-quotient-interpolation; Loading Loading @@ -806,11 +839,34 @@ regulator-max-microvolt = <7>; qcom,cpr-fuse-corners = <5>; qcom,cpr-fuse-combos = <16>; qcom,cpr-speed-bins = <2>; qcom,cpr-speed-bin-corners = <7 7>; qcom,cpr-corners = <7>; qcom,cpr-corner-fmax-map = <2 3 4 6 7>; qcom,cpr-fuse-combos = <32>; qcom,cpr-speed-bins = <4>; qcom,cpr-speed-bin-corners = <7 7 0 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>; 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>; qcom,cpr-voltage-ceiling = <724000 724000 788000 868000 Loading @@ -829,6 +885,11 @@ /* Speed bin 1 */ <300000000 1113600000 1401600000 1747200000 1958400000 2150400000 2208000000>, /* Speed bin 3 */ <300000000 1113600000 1401600000 1747200000 1804800000 2150400000 2208000000>; qcom,allow-voltage-interpolation; Loading
drivers/regulator/cprh-kbss-regulator.c +12 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ struct cprh_kbss_fuses { * Fuse combos 24 - 31 map to CPR fusing revision 0 - 7 with speed bin fuse = 3. */ #define CPRH_MSM8998_KBSS_FUSE_COMBO_COUNT 32 #define CPRH_SDM660_KBSS_FUSE_COMBO_COUNT 16 #define CPRH_SDM660_KBSS_FUSE_COMBO_COUNT 32 #define CPRH_SDM630_KBSS_FUSE_COMBO_COUNT 24 /* Loading Loading @@ -1069,6 +1069,12 @@ static int cprh_kbss_calculate_open_loop_voltages(struct cpr3_regulator *vreg) CPRH_KBSS_FUSE_STEP_VOLT, fuse->init_voltage[i], CPRH_KBSS_VOLTAGE_FUSE_SIZE); /* SDM660 speed bin #3 does not support TURBO_L1/L2 */ if (soc_revision == SDM660_SOC_ID && vreg->speed_bin_fuse == 3 && (id == CPRH_KBSS_PERFORMANCE_CLUSTER_ID) && (i == CPRH_SDM660_PERF_KBSS_FUSE_CORNER_TURBO_L2)) continue; /* Log fused open-loop voltage values for debugging purposes. */ cpr3_info(vreg, "fused %8s: open-loop=%7d uV\n", corner_name[i], fuse_volt[i]); Loading Loading @@ -1615,6 +1621,11 @@ static int cprh_kbss_calculate_target_quotients(struct cpr3_regulator *vreg) CPRH_SDM660_PERF_KBSS_FUSE_CORNER_SVS; highest_fuse_corner = CPRH_SDM660_PERF_KBSS_FUSE_CORNER_TURBO_L2; /* speed-bin 3 does not have Turbo_L2 fuse */ if (vreg->speed_bin_fuse == 3) highest_fuse_corner = CPRH_SDM660_PERF_KBSS_FUSE_CORNER_TURBO; } break; case SDM630_SOC_ID: Loading