Lines Matching +full:- +full:30 +full:mv
7 * SPDX-License-Identifier: GPL-2.0-or-later
52 #define ADM1272_MODEL_DEFAULT "ADM1272-A1"
64 #define ADM1272_SHUNT 300 /* micro-ohms */
101 [0] = { 6770, 0, -2 }, /* voltage, vrange 60V */
102 [1] = { 4062, 0, -2 }, /* voltage, vrange 100V */
103 [2] = { 1326, 20480, -1 }, /* current, vsense range 15mV */
104 [3] = { 663, 20480, -1 }, /* current, vsense range 30mV */
105 [4] = { 3512, 0, -2 }, /* power, vrange 60V, irange 15mV */
106 [5] = { 21071, 0, -3 }, /* power, vrange 100V, irange 15mV */
107 [6] = { 17561, 0, -3 }, /* power, vrange 60V, irange 30mV */
108 [7] = { 10535, 0, -3 }, /* power, vrange 100V, irange 30mV */
109 [8] = { 42, 31871, -1 }, /* temperature */
118 if (pmdev->pages[0].read_vout > s->peak_vout) { in adm1272_check_limits()
119 s->peak_vout = pmdev->pages[0].read_vout; in adm1272_check_limits()
122 if (pmdev->pages[0].read_vin > s->peak_vin) { in adm1272_check_limits()
123 s->peak_vin = pmdev->pages[0].read_vin; in adm1272_check_limits()
126 if (pmdev->pages[0].read_iout > s->peak_iout) { in adm1272_check_limits()
127 s->peak_iout = pmdev->pages[0].read_iout; in adm1272_check_limits()
130 if (pmdev->pages[0].read_temperature_1 > s->peak_temperature) { in adm1272_check_limits()
131 s->peak_temperature = pmdev->pages[0].read_temperature_1; in adm1272_check_limits()
134 if (pmdev->pages[0].read_pin > s->peak_pin) { in adm1272_check_limits()
135 s->peak_pin = pmdev->pages[0].read_pin; in adm1272_check_limits()
143 c.R = c.R - 3; in adm1272_millivolts_to_direct()
151 c.R = c.R - 3; in adm1272_direct_to_millivolts()
158 /* Y = (m * r_sense * x - b) * 10^R */ in adm1272_milliamps_to_direct()
159 c.m = c.m * ADM1272_SHUNT / 1000; /* micro-ohms */ in adm1272_milliamps_to_direct()
161 c.R = c.R - 3; in adm1272_milliamps_to_direct()
170 c.R = c.R - 3; in adm1272_direct_to_milliamps()
193 pmdev->page = 0; in adm1272_exit_reset()
194 pmdev->pages[0].operation = ADM1272_OPERATION_DEFAULT; in adm1272_exit_reset()
197 pmdev->capability = ADM1272_CAPABILITY_NO_PEC; in adm1272_exit_reset()
198 pmdev->pages[0].revision = ADM1272_PMBUS_REVISION_DEFAULT; in adm1272_exit_reset()
199 pmdev->pages[0].vout_mode = ADM1272_DIRECT_MODE; in adm1272_exit_reset()
200 pmdev->pages[0].vout_ov_warn_limit = ADM1272_HIGH_LIMIT_DEFAULT; in adm1272_exit_reset()
201 pmdev->pages[0].vout_uv_warn_limit = 0; in adm1272_exit_reset()
202 pmdev->pages[0].iout_oc_warn_limit = ADM1272_HIGH_LIMIT_DEFAULT; in adm1272_exit_reset()
203 pmdev->pages[0].ot_fault_limit = ADM1272_HIGH_LIMIT_DEFAULT; in adm1272_exit_reset()
204 pmdev->pages[0].ot_warn_limit = ADM1272_HIGH_LIMIT_DEFAULT; in adm1272_exit_reset()
205 pmdev->pages[0].vin_ov_warn_limit = ADM1272_HIGH_LIMIT_DEFAULT; in adm1272_exit_reset()
206 pmdev->pages[0].vin_uv_warn_limit = 0; in adm1272_exit_reset()
207 pmdev->pages[0].pin_op_warn_limit = ADM1272_PIN_OP_DEFAULT; in adm1272_exit_reset()
209 pmdev->pages[0].status_word = 0; in adm1272_exit_reset()
210 pmdev->pages[0].status_vout = 0; in adm1272_exit_reset()
211 pmdev->pages[0].status_iout = 0; in adm1272_exit_reset()
212 pmdev->pages[0].status_input = 0; in adm1272_exit_reset()
213 pmdev->pages[0].status_temperature = 0; in adm1272_exit_reset()
214 pmdev->pages[0].status_mfr_specific = 0; in adm1272_exit_reset()
216 pmdev->pages[0].read_vin in adm1272_exit_reset()
218 pmdev->pages[0].read_vout in adm1272_exit_reset()
220 pmdev->pages[0].read_iout in adm1272_exit_reset()
222 pmdev->pages[0].read_temperature_1 = 0; in adm1272_exit_reset()
223 pmdev->pages[0].read_pin = adm1272_watts_to_direct(ADM1272_PWR_DEFAULT); in adm1272_exit_reset()
224 pmdev->pages[0].revision = ADM1272_PMBUS_REVISION_DEFAULT; in adm1272_exit_reset()
225 pmdev->pages[0].mfr_id = ADM1272_MFR_ID_DEFAULT; in adm1272_exit_reset()
226 pmdev->pages[0].mfr_model = ADM1272_MODEL_DEFAULT; in adm1272_exit_reset()
227 pmdev->pages[0].mfr_revision = ADM1272_MFR_DEFAULT_REVISION; in adm1272_exit_reset()
228 pmdev->pages[0].mfr_date = ADM1272_DEFAULT_DATE; in adm1272_exit_reset()
230 s->pin_ext = 0; in adm1272_exit_reset()
231 s->ein_ext = 0; in adm1272_exit_reset()
232 s->restart_time = ADM1272_RESTART_TIME_DEFAULT; in adm1272_exit_reset()
234 s->peak_vin = 0; in adm1272_exit_reset()
235 s->peak_vout = 0; in adm1272_exit_reset()
236 s->peak_iout = 0; in adm1272_exit_reset()
237 s->peak_temperature = 0; in adm1272_exit_reset()
238 s->peak_pin = 0; in adm1272_exit_reset()
240 s->pmon_control = ADM1272_PMON_CONTROL_DEFAULT; in adm1272_exit_reset()
241 s->pmon_config = ADM1272_PMON_CONFIG_DEFAULT; in adm1272_exit_reset()
242 s->alert1_config = 0; in adm1272_exit_reset()
243 s->alert2_config = 0; in adm1272_exit_reset()
244 s->device_config = ADM1272_DEVICE_CONFIG_DEFAULT; in adm1272_exit_reset()
246 s->hysteresis_low = 0; in adm1272_exit_reset()
247 s->hysteresis_high = ADM1272_HYSTERESIS_HIGH_DEFAULT; in adm1272_exit_reset()
248 s->status_hysteresis = 0; in adm1272_exit_reset()
249 s->status_gpio = 0; in adm1272_exit_reset()
251 s->strt_up_iout_lim = ADM1272_STRT_UP_IOUT_LIM_DEFAULT; in adm1272_exit_reset()
258 switch (pmdev->code) { in adm1272_read_byte()
260 pmbus_send8(pmdev, s->restart_time); in adm1272_read_byte()
264 pmbus_send16(pmdev, s->peak_iout); in adm1272_read_byte()
268 pmbus_send16(pmdev, s->peak_vin); in adm1272_read_byte()
272 pmbus_send16(pmdev, s->peak_vout); in adm1272_read_byte()
276 pmbus_send8(pmdev, s->pmon_control); in adm1272_read_byte()
280 pmbus_send16(pmdev, s->pmon_config); in adm1272_read_byte()
284 pmbus_send16(pmdev, s->alert1_config); in adm1272_read_byte()
288 pmbus_send16(pmdev, s->alert2_config); in adm1272_read_byte()
292 pmbus_send16(pmdev, s->peak_temperature); in adm1272_read_byte()
296 pmbus_send16(pmdev, s->device_config); in adm1272_read_byte()
300 pmbus_send16(pmdev, s->peak_pin); in adm1272_read_byte()
304 pmbus_send32(pmdev, s->pin_ext); in adm1272_read_byte()
308 pmbus_send64(pmdev, s->ein_ext); in adm1272_read_byte()
312 pmbus_send16(pmdev, s->hysteresis_low); in adm1272_read_byte()
316 pmbus_send16(pmdev, s->hysteresis_high); in adm1272_read_byte()
320 pmbus_send16(pmdev, s->status_hysteresis); in adm1272_read_byte()
324 pmbus_send16(pmdev, s->status_gpio); in adm1272_read_byte()
328 pmbus_send16(pmdev, s->strt_up_iout_lim); in adm1272_read_byte()
334 __func__, pmdev->code); in adm1272_read_byte()
349 return -1; in adm1272_write_data()
352 pmdev->code = buf[0]; /* PMBus command code */ in adm1272_write_data()
360 len--; in adm1272_write_data()
362 switch (pmdev->code) { in adm1272_write_data()
365 s->restart_time = pmbus_receive8(pmdev); in adm1272_write_data()
369 s->pmon_control = pmbus_receive8(pmdev); in adm1272_write_data()
373 s->pmon_config = pmbus_receive16(pmdev); in adm1272_write_data()
377 s->alert1_config = pmbus_receive16(pmdev); in adm1272_write_data()
381 s->alert2_config = pmbus_receive16(pmdev); in adm1272_write_data()
385 s->device_config = pmbus_receive16(pmdev); in adm1272_write_data()
393 s->hysteresis_low = pmbus_receive16(pmdev); in adm1272_write_data()
397 s->hysteresis_high = pmbus_receive16(pmdev); in adm1272_write_data()
401 s->strt_up_iout_lim = pmbus_receive16(pmdev); in adm1272_write_data()
408 __func__, pmdev->code); in adm1272_write_data()
498 adm1272_set, NULL, &pmdev->pages[0].read_vin); in adm1272_init()
502 adm1272_set, NULL, &pmdev->pages[0].read_vout); in adm1272_init()
506 adm1272_set, NULL, &pmdev->pages[0].read_iout); in adm1272_init()
510 adm1272_set, NULL, &pmdev->pages[0].read_pin); in adm1272_init()
520 dc->desc = "Analog Devices ADM1272 Hot Swap controller"; in adm1272_class_init()
521 dc->vmsd = &vmstate_adm1272; in adm1272_class_init()
522 k->write_data = adm1272_write_data; in adm1272_class_init()
523 k->receive_byte = adm1272_read_byte; in adm1272_class_init()
524 k->device_num_pages = 1; in adm1272_class_init()
526 rc->phases.exit = adm1272_exit_reset; in adm1272_class_init()