Lines Matching full:charger

188 static int sgm41542_read(struct sgm41542 *charger, uint reg, u8 *buffer)  in sgm41542_read()  argument
193 ret = dm_i2c_read(charger->dev, reg, &val, 1); in sgm41542_read()
203 static int sgm41542_write(struct sgm41542 *charger, uint reg, u8 val) in sgm41542_write() argument
207 ret = dm_i2c_write(charger->dev, reg, &val, 1); in sgm41542_write()
214 static int sgm41542_update_bits(struct sgm41542 *charger, in sgm41542_update_bits() argument
221 sgm41542_read(charger, offset, &reg); in sgm41542_update_bits()
225 return sgm41542_write(charger, offset, reg | val); in sgm41542_update_bits()
228 static int sgm4154x_set_input_curr_lim(struct sgm41542 *charger, int iindpm) in sgm4154x_set_input_curr_lim() argument
242 ret = sgm41542_update_bits(charger, in sgm4154x_set_input_curr_lim()
264 static int sgm4154x_set_ichrg_curr(struct sgm41542 *charger, int uA) in sgm4154x_set_ichrg_curr() argument
271 else if (uA > charger->ichg) in sgm4154x_set_ichrg_curr()
272 uA = uA > charger->ichg; in sgm4154x_set_ichrg_curr()
276 ret = sgm41542_update_bits(charger, in sgm4154x_set_ichrg_curr()
286 static int sgm4154x_set_prechrg_curr(struct sgm41542 *charger, int uA) in sgm4154x_set_prechrg_curr() argument
299 ret = sgm41542_update_bits(charger, in sgm4154x_set_prechrg_curr()
309 static int sgm4154x_set_chrg_volt(struct sgm41542 *charger, int chrg_volt) in sgm4154x_set_chrg_volt() argument
322 ret = sgm41542_update_bits(charger, in sgm4154x_set_chrg_volt()
332 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_set_charger_voltage() local
334 SGM_DBG("SGM41542: charger voltage %d\n", uV); in sgm41542_set_charger_voltage()
335 return sgm4154x_set_chrg_volt(charger, uV); in sgm41542_set_charger_voltage()
340 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_charger_enable() local
342 SGM_DBG("SGM41542: charger enable\n"); in sgm41542_charger_enable()
343 sgm41542_update_bits(charger, SGM4154x_CHRG_CTRL_1, in sgm41542_charger_enable()
351 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_charger_disable() local
353 SGM_DBG("SGM41542: charger disable\n"); in sgm41542_charger_disable()
354 sgm41542_update_bits(charger, SGM4154x_CHRG_CTRL_1, in sgm41542_charger_disable()
362 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_iprechg_current() local
364 SGM_DBG("SGM41542: charger current:iprechrg_uA: %d\n", in sgm41542_iprechg_current()
367 return sgm4154x_set_prechrg_curr(charger, iprechrg_uA); in sgm41542_iprechg_current()
372 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_charger_current() local
374 SGM_DBG("SGM41542: charger current:ichrg_uA%d\n", in sgm41542_charger_current()
377 return sgm4154x_set_ichrg_curr(charger, ichrg_uA); in sgm41542_charger_current()
380 static int sgm41542_get_pd_output_val(struct sgm41542 *charger, in sgm41542_get_pd_output_val() argument
387 if (!charger->pd) in sgm41542_get_pd_output_val()
391 ret = power_delivery_get_data(charger->pd, &pd_data); in sgm41542_get_pd_output_val()
399 charger->pd_online = pd_data.online; in sgm41542_get_pd_output_val()
404 static void sgm41542_charger_input_current_init(struct sgm41542 *charger) in sgm41542_charger_input_current_init() argument
411 if (!charger->pd) { in sgm41542_charger_input_current_init()
412 ret = uclass_get_device(UCLASS_PD, 0, &charger->pd); in sgm41542_charger_input_current_init()
418 charger->pd = NULL; in sgm41542_charger_input_current_init()
422 if (!sgm41542_get_pd_output_val(charger, &pd_inputvol, &pd_inputcurrent)) { in sgm41542_charger_input_current_init()
424 sgm4154x_set_input_curr_lim(charger, pd_inputcurrent); in sgm41542_charger_input_current_init()
428 sgm4154x_set_input_curr_lim(charger, dcp_inputcurrent); in sgm41542_charger_input_current_init()
430 sgm4154x_set_input_curr_lim(charger, dcp_inputcurrent); in sgm41542_charger_input_current_init()
432 sgm4154x_set_input_curr_lim(charger, dcp_inputcurrent); in sgm41542_charger_input_current_init()
434 sgm4154x_set_input_curr_lim(charger, sdp_inputcurrent); in sgm41542_charger_input_current_init()
440 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_charger_status() local
446 sgm41542_read(charger, SGM4154x_CHRG_STAT, &value); in sgm41542_charger_status()
448 if (!state_of_charger && charger->pd_online) { in sgm41542_charger_status()
456 if ((state_of_charger) && (charger->init_count < 5)) { in sgm41542_charger_status()
457 sgm41542_charger_input_current_init(charger); in sgm41542_charger_status()
458 sgm41542_update_bits(charger, in sgm41542_charger_status()
462 charger->init_count++; in sgm41542_charger_status()
466 sgm4154x_set_prechrg_curr(charger, SGM4154x_PRECHRG_I_DEF_uA); in sgm41542_charger_status()
470 sgm41542_read(charger, i, &value); in sgm41542_charger_status()
482 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_ofdata_to_platdata() local
486 charger->dev = dev; in sgm41542_ofdata_to_platdata()
487 charger->ichg = dev_read_u32_default(dev, in sgm41542_ofdata_to_platdata()
490 if (charger->ichg == 0) in sgm41542_ofdata_to_platdata()
491 charger->ichg = 3000 * 1000; in sgm41542_ofdata_to_platdata()
492 charger->vchg = dev_read_u32_default(dev, in sgm41542_ofdata_to_platdata()
495 if (charger->vchg == 0) in sgm41542_ofdata_to_platdata()
496 charger->vchg = 4400 * 1000; in sgm41542_ofdata_to_platdata()
497 SGM_DBG("charger->ichg: %d\n", charger->ichg); in sgm41542_ofdata_to_platdata()
498 SGM_DBG("charger->vchg: %d\n", charger->vchg); in sgm41542_ofdata_to_platdata()
513 charger->irq = phandle_gpio_to_irq(phandle, interrupt); in sgm41542_ofdata_to_platdata()
514 if (charger->irq < 0) in sgm41542_ofdata_to_platdata()
515 printf("sgm41542: failed to request irq: %d\n", charger->irq); in sgm41542_ofdata_to_platdata()
522 struct sgm41542 *charger = dev_get_priv(dev); in sgm41542_probe() local
529 sgm41542_read(charger, i, &value); in sgm41542_probe()
533 charger->dev = dev; in sgm41542_probe()
535 sgm41542_update_bits(charger, SGM4154x_CHRG_CTRL_5, in sgm41542_probe()
539 sgm41542_update_bits(charger, SGM4154x_CHRG_CTRL_a, in sgm41542_probe()
543 sgm4154x_set_ichrg_curr(charger, charger->ichg); in sgm41542_probe()
544 sgm4154x_set_chrg_volt(charger, charger->vchg); in sgm41542_probe()
546 if (0 && charger->irq) { in sgm41542_probe()
548 irq_install_handler(charger->irq, sgm41542_irq_handler, dev); in sgm41542_probe()
549 irq_handler_enable(charger->irq); in sgm41542_probe()