16
16
17
17
enum chips {
18
18
adpm12160 ,
19
+ adpm12200 ,
19
20
max34440 ,
20
21
max34441 ,
21
22
max34446 ,
@@ -89,7 +90,7 @@ static int max34440_read_word_data(struct i2c_client *client, int page,
89
90
break ;
90
91
case PMBUS_VIRT_READ_IOUT_AVG :
91
92
if (data -> id != max34446 && data -> id != max34451 &&
92
- data -> id != adpm12160 )
93
+ data -> id != adpm12160 && data -> id != adpm12200 )
93
94
return - ENXIO ;
94
95
ret = pmbus_read_word_data (client , page , phase ,
95
96
MAX34446_MFR_IOUT_AVG );
@@ -174,7 +175,7 @@ static int max34440_write_word_data(struct i2c_client *client, int page,
174
175
ret = pmbus_write_word_data (client , page ,
175
176
MAX34440_MFR_IOUT_PEAK , 0 );
176
177
if (!ret && (data -> id == max34446 || data -> id == max34451 ||
177
- data -> id == adpm12160 ))
178
+ data -> id == adpm12160 || data -> id == adpm12200 ))
178
179
ret = pmbus_write_word_data (client , page ,
179
180
MAX34446_MFR_IOUT_AVG , 0 );
180
181
@@ -354,6 +355,42 @@ static struct pmbus_driver_info max34440_info[] = {
354
355
.read_word_data = max34440_read_word_data ,
355
356
.write_word_data = max34440_write_word_data ,
356
357
},
358
+ [adpm12200 ] = {
359
+ .pages = 19 ,
360
+ .format [PSC_VOLTAGE_IN ] = direct ,
361
+ .format [PSC_VOLTAGE_OUT ] = direct ,
362
+ .format [PSC_CURRENT_IN ] = direct ,
363
+ .format [PSC_CURRENT_OUT ] = direct ,
364
+ .format [PSC_TEMPERATURE ] = direct ,
365
+ .m [PSC_VOLTAGE_IN ] = 125 ,
366
+ .b [PSC_VOLTAGE_IN ] = 0 ,
367
+ .R [PSC_VOLTAGE_IN ] = 0 ,
368
+ .m [PSC_VOLTAGE_OUT ] = 125 ,
369
+ .b [PSC_VOLTAGE_OUT ] = 0 ,
370
+ .R [PSC_VOLTAGE_OUT ] = 0 ,
371
+ .m [PSC_CURRENT_IN ] = 250 ,
372
+ .b [PSC_CURRENT_IN ] = 0 ,
373
+ .R [PSC_CURRENT_IN ] = -1 ,
374
+ .m [PSC_CURRENT_OUT ] = 250 ,
375
+ .b [PSC_CURRENT_OUT ] = 0 ,
376
+ .R [PSC_CURRENT_OUT ] = -1 ,
377
+ .m [PSC_TEMPERATURE ] = 1 ,
378
+ .b [PSC_TEMPERATURE ] = 0 ,
379
+ .R [PSC_TEMPERATURE ] = 2 ,
380
+ /* absent func below [18] are not for monitoring */
381
+ .func [2 ] = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT ,
382
+ .func [4 ] = PMBUS_HAVE_STATUS_IOUT ,
383
+ .func [5 ] = PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT ,
384
+ .func [6 ] = PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT ,
385
+ .func [7 ] = PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT ,
386
+ .func [8 ] = PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT ,
387
+ .func [9 ] = PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT ,
388
+ .func [10 ] = PMBUS_HAVE_IIN | PMBUS_HAVE_STATUS_INPUT ,
389
+ .func [14 ] = PMBUS_HAVE_IOUT ,
390
+ .func [18 ] = PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP ,
391
+ .read_word_data = max34440_read_word_data ,
392
+ .write_word_data = max34440_write_word_data ,
393
+ },
357
394
[max34440 ] = {
358
395
.pages = 14 ,
359
396
.format [PSC_VOLTAGE_IN ] = direct ,
@@ -584,7 +621,7 @@ static int max34440_probe(struct i2c_client *client)
584
621
rv = max34451_set_supported_funcs (client , data );
585
622
if (rv )
586
623
return rv ;
587
- } else if (data -> id == adpm12160 ) {
624
+ } else if (data -> id == adpm12160 || data -> id == adpm12200 ) {
588
625
data -> iout_oc_fault_limit = PMBUS_IOUT_OC_FAULT_LIMIT ;
589
626
data -> iout_oc_warn_limit = PMBUS_IOUT_OC_WARN_LIMIT ;
590
627
}
@@ -594,6 +631,7 @@ static int max34440_probe(struct i2c_client *client)
594
631
595
632
static const struct i2c_device_id max34440_id [] = {
596
633
{"adpm12160" , adpm12160 },
634
+ {"adpm12200" , adpm12200 },
597
635
{"max34440" , max34440 },
598
636
{"max34441" , max34441 },
599
637
{"max34446" , max34446 },
0 commit comments