Lines Matching +full:negative +full:- +full:phase

1 // SPDX-License-Identifier: GPL-2.0-or-later
80 bool negative = false; in val2linear11() local
86 negative = true; in val2linear11()
87 val = -val; in val2linear11()
96 while (val < MIN_LIN_MANTISSA && exponent > -15) { in val2linear11()
97 exponent--; in val2linear11()
101 /* Convert mantissa from milli-units to units */ in val2linear11()
105 if (negative) in val2linear11()
106 mantissa = -mantissa; in val2linear11()
113 mp2856_read_word_helper(struct i2c_client *client, int page, int phase, u8 reg, in mp2856_read_word_helper() argument
116 int ret = pmbus_read_word_data(client, page, phase, reg); in mp2856_read_word_helper()
123 int phase, u8 reg) in mp2856_read_vout() argument
127 ret = mp2856_read_word_helper(client, page, phase, reg, in mp2856_read_vout()
133 ret = (data->vout_format[page] == vid) ? in mp2856_read_vout()
141 int page, int phase, u8 reg) in mp2856_read_phase() argument
146 ret = pmbus_read_word_data(client, page, phase, reg); in mp2856_read_phase()
150 if (!((phase + 1) % MP2856_PAGE_NUM)) in mp2856_read_phase()
155 * Output value is calculated as: (READ_CSx * 12.5mV - 1.23V) / (Kcs * Rcs) in mp2856_read_phase()
157 val = (ret * 125) - 12300; in mp2856_read_phase()
164 int page, int phase) in mp2856_read_phases() argument
169 switch (phase) { in mp2856_read_phases()
171 ret = mp2856_read_phase(client, data, page, phase, in mp2856_read_phases()
175 ret = mp2856_read_phase(client, data, page, phase, in mp2856_read_phases()
179 ret = mp2856_read_phase(client, data, page, phase, in mp2856_read_phases()
183 ret = mp2856_read_phase(client, data, page, phase, in mp2856_read_phases()
187 return -ENODATA; in mp2856_read_phases()
190 switch (phase) { in mp2856_read_phases()
192 ret = mp2856_read_phase(client, data, page, phase, in mp2856_read_phases()
196 ret = mp2856_read_phase(client, data, page, phase, in mp2856_read_phases()
200 return -ENODATA; in mp2856_read_phases()
208 int phase, int reg) in mp2856_read_word_data() argument
216 ret = mp2856_read_vout(client, data, page, phase, reg); in mp2856_read_word_data()
219 if (phase != 0xff) in mp2856_read_word_data()
220 ret = mp2856_read_phases(client, data, page, phase); in mp2856_read_word_data()
222 ret = pmbus_read_word_data(client, page, phase, reg); in mp2856_read_word_data()
225 return -ENODATA; in mp2856_read_word_data()
239 return -ENODATA; in mp2856_read_byte_data()
272 data->info.phases[0] = (ret > data->max_phases[0]) ? in mp2856_identify_multiphase_rail1()
273 data->max_phases[0] : ret; in mp2856_identify_multiphase_rail1()
275 for (i = 0 ; i < data->info.phases[0]; i++) in mp2856_identify_multiphase_rail1()
276 data->info.pfunc[i] |= PMBUS_HAVE_IOUT; in mp2856_identify_multiphase_rail1()
292 data->info.phases[1] = (ret > data->max_phases[1]) ? in mp2856_identify_multiphase_rail2()
293 data->max_phases[1] : ret; in mp2856_identify_multiphase_rail2()
295 for (i = 0 ; i < data->info.phases[0]; i++) in mp2856_identify_multiphase_rail2()
296 data->info.pfunc[i] |= PMBUS_HAVE_IOUT; in mp2856_identify_multiphase_rail2()
309 * MP2856_MFR_VR_CONFIG1, bits 13-12. The value is selected as below: in mp2856_current_sense_gain_get()
310 * 00b - 5µA/A, 01b - 8.5µA/A, 10b - 9.7µA/A, 11b - 10µA/A. Other in mp2856_current_sense_gain_get()
313 for (i = 0 ; i < data->info.pages; i++) { in mp2856_current_sense_gain_get()
324 data->curr_sense_gain[i] = 50; in mp2856_current_sense_gain_get()
327 data->curr_sense_gain[i] = 85; in mp2856_current_sense_gain_get()
330 data->curr_sense_gain[i] = 97; in mp2856_current_sense_gain_get()
333 data->curr_sense_gain[i] = 100; in mp2856_current_sense_gain_get()
346 for (i = 0; i < data->info.pages; i++) { in mp2856_identify_vout_format()
355 data->vout_format[i] = (ret & MP2856_VOUT_MODE) ? linear : vid; in mp2856_identify_vout_format()
402 data = devm_kzalloc(&client->dev, sizeof(struct mp2856_data), in mp2856_probe()
405 return -ENOMEM; in mp2856_probe()
407 data->chip_id = (enum chips)(uintptr_t)i2c_get_match_data(client); in mp2856_probe()
409 memcpy(data->max_phases, mp2856_max_phases[data->chip_id], in mp2856_probe()
410 sizeof(data->max_phases)); in mp2856_probe()
412 memcpy(&data->info, &mp2856_info, sizeof(*info)); in mp2856_probe()
413 info = &data->info; in mp2856_probe()
426 info->pages = 1; in mp2856_probe()