qcom: smb138x-charger: Add support for setting parallel mode

More than one parallel configurations between PMI8998 and SMB138x are
supported. Update the parallel mode from DT.

Change-Id: I07c30e8d4d860acaf24dd5d0608dca6ba3e65559
Signed-off-by: Harry Yang <harryy@codeaurora.org>
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
This commit is contained in:
Harry Yang 2017-03-14 12:23:01 -07:00
parent 27489753bf
commit 71aeac7a9c
2 changed files with 13 additions and 1 deletions

View file

@ -31,6 +31,12 @@ Charger specific properties:
revid module. This is used to identify revid module. This is used to identify
the SMB subtype. the SMB subtype.
- qcom,parallel-mode
Usage: optional
Value type: <u32>
Definition: Specifies parallel charging mode. If not specified, MID-MID
option is selected by default.
- qcom,suspend-input - qcom,suspend-input
Usage: optional Usage: optional
Value type: <empty> Value type: <empty>

View file

@ -96,6 +96,7 @@ struct smb_dt_props {
int dc_icl_ua; int dc_icl_ua;
int chg_temp_max_mdegc; int chg_temp_max_mdegc;
int connector_temp_max_mdegc; int connector_temp_max_mdegc;
int pl_mode;
}; };
struct smb138x { struct smb138x {
@ -161,6 +162,11 @@ static int smb138x_parse_dt(struct smb138x *chip)
return -EINVAL; return -EINVAL;
} }
rc = of_property_read_u32(node,
"qcom,parallel-mode", &chip->dt.pl_mode);
if (rc < 0)
chip->dt.pl_mode = POWER_SUPPLY_PL_USBMID_USBMID;
chip->dt.suspend_input = of_property_read_bool(node, chip->dt.suspend_input = of_property_read_bool(node,
"qcom,suspend-input"); "qcom,suspend-input");
@ -588,7 +594,7 @@ static int smb138x_parallel_get_prop(struct power_supply *psy,
val->strval = "smb138x"; val->strval = "smb138x";
break; break;
case POWER_SUPPLY_PROP_PARALLEL_MODE: case POWER_SUPPLY_PROP_PARALLEL_MODE:
val->intval = POWER_SUPPLY_PL_USBMID_USBMID; val->intval = chip->dt.pl_mode;
break; break;
case POWER_SUPPLY_PROP_CONNECTOR_HEALTH: case POWER_SUPPLY_PROP_CONNECTOR_HEALTH:
val->intval = smb138x_get_prop_connector_health(chip); val->intval = smb138x_get_prop_connector_health(chip);