static int bq51221_chg_get_property(struct power_supply *psy, enum power_supply_property psp, union power_supply_propval *val) { struct bq51221_charger_data *charger = container_of(psy, struct bq51221_charger_data, psy_chg); switch (psp) { case POWER_SUPPLY_PROP_STATUS: pr_info("%s charger->pdata->cs100_status %d \n",__func__,charger->pdata->cs100_status); val->intval = charger->pdata->cs100_status; break; case POWER_SUPPLY_PROP_CHARGE_TYPE: val->intval = bq51221_get_pad_mode(charger->client); break; case POWER_SUPPLY_PROP_HEALTH: val->intval = 1; break; case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: val->intval = charger->pdata->siop_level; break; case POWER_SUPPLY_PROP_ONLINE: val->intval = charger->pdata->pad_mode; break; case POWER_SUPPLY_PROP_CHARGE_OTG_CONTROL: break; default: return -EINVAL; } return 0; }
void bq51221_wireless_chg_init(struct i2c_client *client) { int data = 0; union power_supply_propval value; struct bq51221_charger_data *charger = i2c_get_clientdata(client); pr_info("%s\n", __func__); psy_do_property("battery", get, POWER_SUPPLY_PROP_CAPACITY, value); /* init I limit(IOREG) */ bq51221_reg_write(client, BQ51221_REG_CURRENT_REGISTER2, BQ51221_IOREG_100_VALUE); data = bq51221_reg_read(client, BQ51221_REG_CURRENT_REGISTER2); pr_info("%s IOREG = 0x%x \n", __func__, data); /* init CEP timing */ /* init RCVD PWR */ /* read pad mode */ bq51221_get_pad_mode(client); pr_info("%s siop = %d \n" ,__func__, charger->pdata->siop_level ); if ((value.intval < charger->pdata->wireless_cc_cv) && (charger->pdata->pad_mode == BQ51221_PAD_MODE_WPC) && (charger->pdata->siop_level == 100) && !charger->pdata->default_voreg) { /* set VOREG set 5.5V*/ bq51221_set_voreg(charger->client, 0); } else { /* init VOREG with default value */ bq51221_set_voreg(charger->client, 1); } }
void bq51221_wireless_chg_init(struct i2c_client *client) { int data = 0; union power_supply_propval value; pr_info("%s\n", __func__); psy_do_property("battery", get, POWER_SUPPLY_PROP_CAPACITY, value); /* init I limit(IOREG) */ bq51221_reg_write(client, BQ51221_REG_CURRENT_REGISTER2, BQ51221_IOREG_100_VALUE); data = bq51221_reg_read(client, BQ51221_REG_CURRENT_REGISTER2); pr_info("%s IOREG = 0x%x \n", __func__, data); /* init CEP timing */ /* init RCVD PWR */ /* read pad mode */ bq51221_get_pad_mode(client); }