mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
Merge commit 'a7d5f5ffcdfcf20212c10f4cb849c4183005a917'
* commit 'a7d5f5ffcdfcf20212c10f4cb849c4183005a917': power: supply: rockchip_charger_manager: fix build error for kernel 6.1 power: supply: sgm41542: fix build error for kernel 6.1 Change-Id: Iebebb3d366b81e98d792985bb7b34687a9c38f6d
This commit is contained in:
@@ -255,7 +255,7 @@ struct charger_desc {
|
||||
unsigned int polling_interval_ms;
|
||||
unsigned int polling_force_enable;
|
||||
|
||||
struct power_supply_battery_info info;
|
||||
struct power_supply_battery_info *info;
|
||||
|
||||
const char *psy_charger_stat;
|
||||
const char *psy_charger_pump_stat;
|
||||
@@ -1066,7 +1066,7 @@ static void cm_charge_pump_move_state(struct charger_manager *cm,
|
||||
static int cm_charge_limit_update(struct charger_manager *cm)
|
||||
{
|
||||
struct fastcharge_config *fc_config;
|
||||
struct power_supply_battery_info info;
|
||||
struct power_supply_battery_info *info;
|
||||
union power_supply_propval val;
|
||||
int ibus_dcdc_lmt;
|
||||
int ret = 0;
|
||||
@@ -1075,13 +1075,13 @@ static int cm_charge_limit_update(struct charger_manager *cm)
|
||||
fc_config = cm->fc_config;
|
||||
|
||||
if (fc_config->jeita_charge_support) {
|
||||
fc_config->vbat_lmt = min(info.constant_charge_voltage_max_uv,
|
||||
fc_config->vbat_lmt = min(info->constant_charge_voltage_max_uv,
|
||||
fc_config->jeita_charge_voltage);
|
||||
fc_config->ibat_lmt = min(info.constant_charge_current_max_ua,
|
||||
fc_config->ibat_lmt = min(info->constant_charge_current_max_ua,
|
||||
fc_config->jeita_charge_current);
|
||||
} else {
|
||||
fc_config->vbat_lmt = info.constant_charge_voltage_max_uv;
|
||||
fc_config->ibat_lmt = info.constant_charge_current_max_ua;
|
||||
fc_config->vbat_lmt = info->constant_charge_voltage_max_uv;
|
||||
fc_config->ibat_lmt = info->constant_charge_current_max_ua;
|
||||
}
|
||||
|
||||
ret = get_battery_voltage(cm, &fc_config->vbat_now);
|
||||
@@ -1159,19 +1159,19 @@ static int cm_charge_limit_update(struct charger_manager *cm)
|
||||
|
||||
CM_DBG("battery info:\n");
|
||||
CM_DBG("battery info:: charge-full-design-microamp-hours: %d\n",
|
||||
info.charge_full_design_uah);
|
||||
info->charge_full_design_uah);
|
||||
CM_DBG("battery info:: factory_internal_resistance_uohm: %d\n",
|
||||
info.factory_internal_resistance_uohm);
|
||||
info->factory_internal_resistance_uohm);
|
||||
CM_DBG("battery info:: charge_term_current_ua: %d\n",
|
||||
info.charge_term_current_ua);
|
||||
info->charge_term_current_ua);
|
||||
CM_DBG("battery info:: constant_charge_voltage_max_uv: %d\n",
|
||||
info.constant_charge_voltage_max_uv);
|
||||
info->constant_charge_voltage_max_uv);
|
||||
CM_DBG("battery info:: constant_charge_current_max_ua: %d\n",
|
||||
info.constant_charge_current_max_ua);
|
||||
info->constant_charge_current_max_ua);
|
||||
CM_DBG("battery info:: precharge_current_ua: %d\n",
|
||||
info.precharge_current_ua);
|
||||
info->precharge_current_ua);
|
||||
CM_DBG("battery info:: precharge-upper-limit-microvolt: %d\n",
|
||||
info.precharge_voltage_max_uv);
|
||||
info->precharge_voltage_max_uv);
|
||||
|
||||
CM_DBG("charge type: %d\n", fc_config->charge_type);
|
||||
|
||||
@@ -1436,7 +1436,7 @@ static void cm_sw_fast_charge_algo(struct charger_manager *cm)
|
||||
|
||||
static int cm_charge_pump_sm(struct charger_manager *cm)
|
||||
{
|
||||
struct power_supply_battery_info info;
|
||||
struct power_supply_battery_info *info;
|
||||
struct fastcharge_config *fc_config;
|
||||
union power_supply_propval val;
|
||||
static int tune_vbus_retry;
|
||||
@@ -1507,7 +1507,7 @@ static int cm_charge_pump_sm(struct charger_manager *cm)
|
||||
}
|
||||
}
|
||||
|
||||
if (cm->cp.vbat_volt < info.precharge_voltage_max_uv) {
|
||||
if (cm->cp.vbat_volt < info->precharge_voltage_max_uv) {
|
||||
ret = power_supply_get_property(cm->desc->tcpm_psy,
|
||||
POWER_SUPPLY_PROP_CURRENT_MAX,
|
||||
&val);
|
||||
@@ -1519,7 +1519,7 @@ static int cm_charge_pump_sm(struct charger_manager *cm)
|
||||
if (ret)
|
||||
return ret;
|
||||
CM_DBG("batt_volt-%d, waiting... > %d\n",
|
||||
cm->cp.vbat_volt, info.precharge_voltage_max_uv);
|
||||
cm->cp.vbat_volt, info->precharge_voltage_max_uv);
|
||||
} else if (cm->cp.vbat_volt > cm->fc_config->vbat_lmt - 100 * 1000) {
|
||||
pr_info("batt_volt-%d is too high for cp, charging with switch charger(%duv)\n",
|
||||
cm->cp.vbat_volt, cm->fc_config->vbat_lmt - 100 * 1000);
|
||||
@@ -1558,9 +1558,9 @@ static int cm_charge_pump_sm(struct charger_manager *cm)
|
||||
|
||||
cm->cp.request_current = min(cm->cp.ibus_max + fc_config->ibus_dcdc_lmt, val.intval);
|
||||
|
||||
bat_voltage = fc_config->vbat_now - fc_config->ibat_now / 1000 * info.factory_internal_resistance_uohm;
|
||||
bat_voltage = fc_config->vbat_now - fc_config->ibat_now / 1000 * info->factory_internal_resistance_uohm;
|
||||
ibat_max = min(fc_config->ibat_lmt, 2 * cm->cp.request_current);
|
||||
vbus_volt_init_up = ibat_max / 1000 * info.factory_internal_resistance_uohm;
|
||||
vbus_volt_init_up = ibat_max / 1000 * info->factory_internal_resistance_uohm;
|
||||
/* cm->cp.request_voltage = bat_voltage * 2 + 2 * vbus_volt_init_up + ibat_max / 2 * 100 / 1000; */
|
||||
cm->cp.request_voltage = bat_voltage * 2 + 15 * vbus_volt_init_up / 10 + ibat_max / 2 * 100 / 1000;
|
||||
|
||||
@@ -1693,7 +1693,7 @@ static int cm_charge_pump_sm(struct charger_manager *cm)
|
||||
CM_DBG("PPS_PM_STATE_FC_ENTRY_1: cm->cp.vbus_volt: %d vbus_volt_init_up: %d\n"
|
||||
"bat_res: %d, factory_internal_resistance_uohm: %d\n",
|
||||
cm->cp.vbus_volt, vbus_volt_init_up, bat_res,
|
||||
info.factory_internal_resistance_uohm);
|
||||
info->factory_internal_resistance_uohm);
|
||||
cm_charge_pump_move_state(cm, PPS_PM_STATE_FC_ENTRY_2);
|
||||
break;
|
||||
case PPS_PM_STATE_FC_ENTRY_2:
|
||||
@@ -2478,7 +2478,7 @@ static inline struct charger_desc *cm_get_drv_data(struct platform_device *pdev)
|
||||
static int charger_manager_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct charger_desc *desc = cm_get_drv_data(pdev);
|
||||
struct power_supply_battery_info info;
|
||||
struct power_supply_battery_info *info;
|
||||
struct power_supply charger_psy;
|
||||
struct charger_manager *cm;
|
||||
int ret;
|
||||
@@ -2519,8 +2519,8 @@ static int charger_manager_probe(struct platform_device *pdev)
|
||||
charger_psy.of_node = cm->dev->of_node;
|
||||
ret = power_supply_get_battery_info(&charger_psy, &(desc->info));
|
||||
if (ret) {
|
||||
info = bat_default_info;
|
||||
desc->info = bat_default_info;
|
||||
info = &bat_default_info;
|
||||
desc->info = &bat_default_info;
|
||||
dev_err(&pdev->dev, "failed to get battery information\n");
|
||||
} else
|
||||
info = desc->info;
|
||||
@@ -2537,19 +2537,19 @@ static int charger_manager_probe(struct platform_device *pdev)
|
||||
|
||||
CM_DBG("battery info:\n");
|
||||
CM_DBG("INFO: charge-full-design-microamp-hours: %d\n",
|
||||
info.charge_full_design_uah);
|
||||
info->charge_full_design_uah);
|
||||
CM_DBG("INFO:factory_internal_resistance_uohm: %d\n",
|
||||
info.factory_internal_resistance_uohm);
|
||||
info->factory_internal_resistance_uohm);
|
||||
CM_DBG("charge_term_current_ua: %d\n",
|
||||
info.charge_term_current_ua);
|
||||
info->charge_term_current_ua);
|
||||
CM_DBG("constant_charge_voltage_max_uv: %d\n",
|
||||
info.constant_charge_voltage_max_uv);
|
||||
info->constant_charge_voltage_max_uv);
|
||||
CM_DBG("constant_charge_current_max_ua: %d\n",
|
||||
info.constant_charge_current_max_ua);
|
||||
info->constant_charge_current_max_ua);
|
||||
CM_DBG("precharge_current_ua: %d\n",
|
||||
info.precharge_current_ua);
|
||||
info->precharge_current_ua);
|
||||
CM_DBG("precharge-upper-limit-microvolt: %d\n",
|
||||
info.precharge_voltage_max_uv);
|
||||
info->precharge_voltage_max_uv);
|
||||
|
||||
cm->cm_wq = alloc_ordered_workqueue("%s",
|
||||
WQ_MEM_RECLAIM | WQ_FREEZABLE,
|
||||
|
||||
@@ -924,54 +924,58 @@ static int sgm4154x_power_supply_init(struct sgm4154x_device *sgm,
|
||||
|
||||
static int sgm4154x_hw_init(struct sgm4154x_device *sgm)
|
||||
{
|
||||
struct power_supply_battery_info bat_info = { };
|
||||
struct power_supply_battery_info *bat_info;
|
||||
int chrg_stat, ret = 0;
|
||||
|
||||
ret = power_supply_get_battery_info(sgm->charger, &bat_info);
|
||||
if (ret) {
|
||||
/* Allocate an empty battery */
|
||||
bat_info = devm_kzalloc(sgm->dev, sizeof(*bat_info), GFP_KERNEL);
|
||||
if (!bat_info)
|
||||
return -ENOMEM;
|
||||
pr_info("sgm4154x: no battery information is supplied\n");
|
||||
/*
|
||||
* If no battery information is supplied, we should set
|
||||
* default charge termination current to 120 mA, and default
|
||||
* charge termination voltage to 4.35V.
|
||||
*/
|
||||
bat_info.constant_charge_current_max_ua =
|
||||
bat_info->constant_charge_current_max_ua =
|
||||
SGM4154x_ICHRG_I_DEF_uA;
|
||||
bat_info.constant_charge_voltage_max_uv =
|
||||
bat_info->constant_charge_voltage_max_uv =
|
||||
SGM4154x_VREG_V_DEF_uV;
|
||||
bat_info.precharge_current_ua =
|
||||
bat_info->precharge_current_ua =
|
||||
SGM4154x_PRECHRG_I_DEF_uA;
|
||||
bat_info.charge_term_current_ua =
|
||||
bat_info->charge_term_current_ua =
|
||||
SGM4154x_TERMCHRG_I_DEF_uA;
|
||||
sgm->init_data.max_ichg =
|
||||
SGM4154x_ICHRG_I_MAX_uA;
|
||||
sgm->init_data.max_vreg = SGM4154x_VREG_V_DEF_uV;
|
||||
}
|
||||
if (!bat_info.constant_charge_current_max_ua)
|
||||
bat_info.constant_charge_current_max_ua =
|
||||
if (!bat_info->constant_charge_current_max_ua)
|
||||
bat_info->constant_charge_current_max_ua =
|
||||
SGM4154x_ICHRG_I_MAX_uA;
|
||||
if (!bat_info.constant_charge_voltage_max_uv)
|
||||
bat_info.constant_charge_voltage_max_uv =
|
||||
if (!bat_info->constant_charge_voltage_max_uv)
|
||||
bat_info->constant_charge_voltage_max_uv =
|
||||
SGM4154x_VREG_V_DEF_uV;
|
||||
if (!bat_info.precharge_current_ua)
|
||||
bat_info.precharge_current_ua =
|
||||
if (!bat_info->precharge_current_ua)
|
||||
bat_info->precharge_current_ua =
|
||||
SGM4154x_PRECHRG_I_DEF_uA;
|
||||
if (!bat_info.charge_term_current_ua)
|
||||
bat_info.charge_term_current_ua =
|
||||
if (!bat_info->charge_term_current_ua)
|
||||
bat_info->charge_term_current_ua =
|
||||
SGM4154x_TERMCHRG_I_DEF_uA;
|
||||
if (!sgm->init_data.max_ichg)
|
||||
sgm->init_data.max_ichg =
|
||||
SGM4154x_ICHRG_I_MAX_uA;
|
||||
|
||||
if (bat_info.constant_charge_voltage_max_uv)
|
||||
sgm->init_data.max_vreg = bat_info.constant_charge_voltage_max_uv;
|
||||
if (bat_info->constant_charge_voltage_max_uv)
|
||||
sgm->init_data.max_vreg = bat_info->constant_charge_voltage_max_uv;
|
||||
|
||||
ret = sgm4154x_set_watchdog_timer(sgm, 0);
|
||||
if (ret)
|
||||
goto err_out;
|
||||
|
||||
|
||||
ret = sgm4154x_set_prechrg_curr(sgm, bat_info.precharge_current_ua);
|
||||
ret = sgm4154x_set_prechrg_curr(sgm, bat_info->precharge_current_ua);
|
||||
if (ret)
|
||||
goto err_out;
|
||||
|
||||
@@ -981,7 +985,7 @@ static int sgm4154x_hw_init(struct sgm4154x_device *sgm)
|
||||
goto err_out;
|
||||
|
||||
ret = sgm4154x_set_term_curr(sgm,
|
||||
bat_info.charge_term_current_ua);
|
||||
bat_info->charge_term_current_ua);
|
||||
if (ret)
|
||||
goto err_out;
|
||||
|
||||
@@ -1000,7 +1004,7 @@ static int sgm4154x_hw_init(struct sgm4154x_device *sgm)
|
||||
if (ret)
|
||||
goto err_out;
|
||||
ret = sgm4154x_set_ichrg_curr(sgm,
|
||||
bat_info.constant_charge_current_max_ua);
|
||||
bat_info->constant_charge_current_max_ua);
|
||||
if (ret)
|
||||
goto err_out;
|
||||
|
||||
@@ -1037,10 +1041,10 @@ static int sgm4154x_hw_init(struct sgm4154x_device *sgm)
|
||||
"chrg_vol:%d\n"
|
||||
"term_curr:%d\n"
|
||||
"input_curr_lim:%d\n",
|
||||
bat_info.constant_charge_current_max_ua,
|
||||
bat_info.precharge_current_ua,
|
||||
bat_info.constant_charge_voltage_max_uv,
|
||||
bat_info.charge_term_current_ua,
|
||||
bat_info->constant_charge_current_max_ua,
|
||||
bat_info->precharge_current_ua,
|
||||
bat_info->constant_charge_voltage_max_uv,
|
||||
bat_info->charge_term_current_ua,
|
||||
sgm->init_data.ilim);
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user