Lines Matching defs:fuse

145 	/* fuse quot */
149 /* fuse quot_offset */
366 struct fuse_corner *fuse = corner->fuse_corner;
370 ro_sel = fuse->ring_osc_idx;
372 gcnt |= fuse->quot - corner->quot_adjust;
376 step_quot |= fuse->step_quot & RBCPR_STEP_QUOT_STEPQUOT_MASK;
806 struct fuse_corner *fuse = drv->fuse_corners;
807 struct fuse_corner *end = fuse + drv->desc->num_fuse_corners;
812 for (; fuse < end; fuse++, fuses++) {
816 fuse->ring_osc_idx = data;
855 struct fuse_corner *fuse, *end;
867 fuse = drv->fuse_corners;
868 end = &fuse[desc->num_fuse_corners - 1];
871 for (i = 0; fuse <= end; fuse++, fuses++, i++, fdata++) {
886 fuse->min_uV = fdata->min_uV;
887 fuse->max_uV = fdata->max_uV;
888 fuse->uV = clamp(uV, fuse->min_uV, fuse->max_uV);
890 if (fuse == end) {
892 * Allow the highest fuse corner's PVS voltage to
901 ret = nvmem_cell_read_variable_le_u32(drv->dev, fuses->quotient, &fuse->quot);
905 fuse->quot *= fdata->quot_scale;
906 fuse->quot += fdata->quot_offset;
907 fuse->quot += fdata->quot_adjust;
908 fuse->step_quot = desc->step_quot[fuse->ring_osc_idx];
911 fuse->accs = accs;
912 fuse->num_accs = acc_desc->num_regs_per_fuse;
917 * Restrict all fuse corner PVS voltages based upon per corner
920 for (fuse = drv->fuse_corners, i = 0; fuse <= end; fuse++, i++) {
921 if (fuse->uV > fuse->max_uV)
922 fuse->uV = fuse->max_uV;
923 else if (fuse->uV < fuse->min_uV)
924 fuse->uV = fuse->min_uV;
927 fuse->min_uV,
928 fuse->min_uV);
931 "min uV: %d (fuse corner: %d) not supported by regulator\n",
932 fuse->min_uV, i);
937 fuse->max_uV,
938 fuse->max_uV);
941 "max uV: %d (fuse corner: %d) not supported by regulator\n",
942 fuse->max_uV, i);
947 "fuse corner %d: [%d %d %d] RO%hhu quot %d squot %d\n",
948 i, fuse->min_uV, fuse->uV, fuse->max_uV,
949 fuse->ring_osc_idx, fuse->quot, fuse->step_quot);
963 const struct fuse_corner *fuse, *prev_fuse;
966 fuse = corner->fuse_corner;
967 prev_fuse = fuse - 1;
977 quot_diff = fuse->quot - prev_fuse->quot;
980 freq_diff = fuse->max_freq - prev_fuse->max_freq;
992 const struct fuse_corner *fuse, *prev_fuse;
994 fuse = corner->fuse_corner;
995 prev_fuse = fuse - 1;
997 f_high = fuse->max_freq;
999 uV_high = fuse->uV;
1001 f_diff = fuse->max_freq - corner->freq;
1005 * if the adjusted fuse voltage overlaps with the previous fuse's
1031 if (of_property_read_u32(np, "qcom,opp-fuse-level", &fuse_corner))
1032 pr_err("%s: missing 'qcom,opp-fuse-level' property\n",
1082 struct fuse_corner *fuse, *prev_fuse;
1105 * Store maximum frequency for each fuse corner based on the frequency
1126 fuse = &drv->fuse_corners[fnum];
1127 dev_dbg(drv->dev, "freq: %lu level: %u fuse level: %u\n",
1129 if (freq > fuse->max_freq)
1130 fuse->max_freq = freq;
1140 * QUOT(corner_N): quotient read from fuse for fuse corner N
1141 * QUOT(corner_N-1): quotient read from fuse for fuse corner (N - 1)
1142 * freq(corner_N): max frequency in MHz supported by fuse corner N
1143 * freq(corner_N-1): max frequency in MHz supported by fuse corner
1146 * Then walk through the corners mapped to each fuse corner
1152 * freq_max: max frequency in MHz supported by the fuse corner
1170 * f = fuse corner
1177 fuse = &drv->fuse_corners[fnum];
1183 corner->fuse_corner = fuse;
1185 corner->uV = fuse->uV;
1194 } else if (corner->freq == fuse->max_freq) {
1195 /* This is a fuse corner; don't scale anything */
1200 freq_diff = fuse->max_freq - corner->freq;
1207 corner->max_uV = fuse->max_uV;
1208 corner->min_uV = fuse->min_uV;
1215 else if (desc->reduce_to_fuse_uV && fuse->uV < corner->max_uV)
1216 corner->max_uV = max(corner->min_uV, fuse->uV);
1220 fuse->quot - corner->quot_adjust);
1363 /* fuse corner 0 */
1376 /* fuse corner 1 */
1389 /* fuse corner 2 */
1486 * the maximum frequency for each fuse corner, and this is only
1489 * frequency associated with each fuse corner.
1656 * Initialize fuse corners, since it simply depends