mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
discrete:add enable termination iio definition
Add main charger enable termination iio definition. Change-Id: I80ba57a4c669c44561bab152a2f7d3f1a887b325 Signed-off-by: xuwei9 <xuwei9@lenovo.com> Reviewed-on: https://gerrit.mot.com/2148136 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
833103f052
commit
247b2c7d64
6 changed files with 34 additions and 1 deletions
|
|
@ -71,6 +71,16 @@ int charger_dev_enable_charging(struct charger_device *chg_dev, bool en)
|
|||
}
|
||||
EXPORT_SYMBOL(charger_dev_enable_charging);
|
||||
|
||||
int charger_dev_enable_termination(struct charger_device *chg_dev, bool en)
|
||||
{
|
||||
if (chg_dev != NULL && chg_dev->ops != NULL &&
|
||||
chg_dev->ops->enable_termination)
|
||||
return chg_dev->ops->enable_termination(chg_dev, en);
|
||||
|
||||
return -ENOTSUPP;
|
||||
}
|
||||
EXPORT_SYMBOL(charger_dev_enable_termination);
|
||||
|
||||
int charger_dev_is_enabled_charging(struct charger_device *chg_dev, bool *en)
|
||||
{
|
||||
if (chg_dev != NULL && chg_dev->ops != NULL &&
|
||||
|
|
|
|||
|
|
@ -1952,6 +1952,21 @@ int mmi_discrete_config_charging_enabled(struct mmi_discrete_charger *chip, int
|
|||
return rc;
|
||||
}
|
||||
|
||||
int mmi_discrete_config_termination_enabled(struct mmi_discrete_charger *chip, int val)
|
||||
{
|
||||
int rc = 0;
|
||||
|
||||
mmi_dbg(chip, "mmi_discrete_config_termination_enabled val:%d\n",val);
|
||||
|
||||
rc = charger_dev_enable_termination(chip->master_chg_dev,
|
||||
val ? true:false);
|
||||
if (rc)
|
||||
mmi_err(chip, "Couldn't %s termination rc=%d\n",
|
||||
val ? "enable":"disable", rc);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
int mmi_discrete_get_charging_enabled(struct mmi_discrete_charger *chip, bool *val)
|
||||
{
|
||||
int rc = 0;
|
||||
|
|
|
|||
|
|
@ -137,5 +137,6 @@ int mmi_discrete_get_hw_current_max(struct mmi_discrete_charger *chip, int *val)
|
|||
int mmi_discrete_config_charging_enabled(struct mmi_discrete_charger *chip, int val);
|
||||
int mmi_discrete_get_charging_enabled(struct mmi_discrete_charger *chip, bool *val);
|
||||
int mmi_discrete_config_input_current_settled(struct mmi_discrete_charger *chip, int val);
|
||||
int mmi_discrete_config_termination_enabled(struct mmi_discrete_charger *chip, int val);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ static int mmi_discrete_iio_write_raw(struct iio_dev *indio_dev,
|
|||
case PSY_IIO_INPUT_CURRENT_SETTLED:
|
||||
rc = mmi_discrete_config_input_current_settled(chip, val1);
|
||||
break;
|
||||
case PSY_IIO_USB_TERMINATION_ENABLED:
|
||||
rc = mmi_discrete_config_termination_enabled(chip, val1);
|
||||
break;
|
||||
default:
|
||||
pr_err("Unsupported mmi_discrete IIO chan %d\n", chan->channel);
|
||||
rc = -EINVAL;
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ static const struct mmi_discrete_iio_channels mmi_discrete_iio_psy_channels[] =
|
|||
MMI_DISCRETE_CHAN_INDEX("hw_current_max", PSY_IIO_HW_CURRENT_MAX)
|
||||
MMI_DISCRETE_CHAN_INDEX("charging_enabled", PSY_IIO_USB_CHARGING_ENABLED)
|
||||
MMI_DISCRETE_CHAN_INDEX("input_current_settled", PSY_IIO_INPUT_CURRENT_SETTLED)
|
||||
MMI_DISCRETE_CHAN_INDEX("termination_enabled", PSY_IIO_USB_TERMINATION_ENABLED)
|
||||
};
|
||||
|
||||
int mmi_discrete_init_iio_psy(struct mmi_discrete_charger *chip,
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ struct charger_ops {
|
|||
int (*is_charge_halted)(struct charger_device *dev, bool *en);
|
||||
|
||||
int (*dump_registers)(struct charger_device *dev, struct seq_file *m);
|
||||
int (*enable_termination)(struct charger_device *dev, bool en);
|
||||
};
|
||||
|
||||
#define to_charger_device(obj) container_of(obj, struct charger_device, dev)
|
||||
|
|
@ -106,6 +107,8 @@ extern int charger_dev_get_charging_current(struct charger_device *chg_dev, u32
|
|||
|
||||
extern int charger_dev_enable_charging(struct charger_device *chg_dev, bool en);
|
||||
|
||||
extern int charger_dev_enable_termination(struct charger_device *chg_dev, bool en);
|
||||
|
||||
extern int charger_dev_is_enabled_charging(struct charger_device *chg_dev, bool *en);
|
||||
|
||||
extern int charger_dev_dump_registers(struct charger_device *chg_dev, struct seq_file *m);
|
||||
|
|
|
|||
Loading…
Reference in a new issue