mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
charging: add pd vdm verify IIO channel
add pd vdm verify IIO channel for getting pd notify Change-Id: Idd751759e30a631a70a5822ae01d7b068b90a6a0 Signed-off-by: mahj8 <mahj8@motorola.com> Reviewed-on: https://gerrit.mot.com/2258493 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Lu Chai <chailu1@motorola.com> Reviewed-by: Huosheng Liao <liaohs@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
7c90ce4083
commit
c6b1717bbe
4 changed files with 26 additions and 0 deletions
|
|
@ -2202,10 +2202,27 @@ int mmi_discrete_config_pd_active(struct mmi_discrete_charger *chip, int val)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mmi_charger_pd_vdm_verify(struct mmi_discrete_charger *chip, int val)
|
||||
{
|
||||
mmi_info(chip, "config pd_vdm_verify is %d old mode is %d\n", val, chip->pd_vdm_verify);
|
||||
|
||||
if (chip->pd_vdm_verify && chip->pd_vdm_verify == val)
|
||||
return 0;
|
||||
|
||||
chip->pd_vdm_verify = val;
|
||||
|
||||
if (chip->usb_psy && chip->pd_vdm_verify)
|
||||
power_supply_changed(chip->usb_psy);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mmi_discrete_usb_plugout(struct mmi_discrete_charger * chip)
|
||||
{
|
||||
chip->real_charger_type = POWER_SUPPLY_TYPE_UNKNOWN;
|
||||
chip->pd_active = MMI_POWER_SUPPLY_PD_INACTIVE;
|
||||
chip->pd_vdm_verify = false;
|
||||
if (chip->use_extcon)
|
||||
mmi_notify_device_mode(chip, false);
|
||||
vote(chip->usb_icl_votable, SW_ICL_MAX_VOTER, true, SDP_100_MA);
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ struct mmi_discrete_charger {
|
|||
/*PD*/
|
||||
struct adapter_device *pd_adapter_dev;
|
||||
int pd_active;
|
||||
int pd_vdm_verify;
|
||||
bool pd_supported;
|
||||
|
||||
int dc_cl_ma;
|
||||
|
|
@ -138,6 +139,7 @@ int mmi_discrete_otg_enable(struct mmi_discrete_charger *chip, bool en);
|
|||
int mmi_discrete_is_usb_suspended(struct mmi_discrete_charger *chip);
|
||||
int mmi_discrete_config_typec_mode(struct mmi_discrete_charger *chip, int val);
|
||||
int mmi_discrete_config_pd_active(struct mmi_discrete_charger *chip, int val);
|
||||
int mmi_charger_pd_vdm_verify(struct mmi_discrete_charger *chip, int val);
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -48,6 +48,9 @@ static int mmi_discrete_iio_write_raw(struct iio_dev *indio_dev,
|
|||
case PSY_IIO_CP_ENABLE:
|
||||
chip->cp_active = !!val1;
|
||||
break;
|
||||
case PSY_IIO_MMI_PD_VDM_VERIFY:
|
||||
rc = mmi_charger_pd_vdm_verify(chip, val1);
|
||||
break;
|
||||
default:
|
||||
pr_err("Unsupported mmi_discrete IIO chan %d\n", chan->channel);
|
||||
rc = -EINVAL;
|
||||
|
|
@ -100,6 +103,9 @@ static int mmi_discrete_iio_read_raw(struct iio_dev *indio_dev,
|
|||
case PSY_IIO_CP_ENABLE:
|
||||
*val1 = chip->cp_active;
|
||||
break;
|
||||
case PSY_IIO_MMI_PD_VDM_VERIFY:
|
||||
*val1 = chip->pd_vdm_verify;
|
||||
break;
|
||||
default:
|
||||
pr_err("Unsupported mmi_discrete IIO chan %d\n", chan->channel);
|
||||
rc = -EINVAL;
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ static const struct mmi_discrete_iio_channels mmi_discrete_iio_psy_channels[] =
|
|||
MMI_DISCRETE_CHAN_INDEX("usb_qc3p_power", PSY_IIO_MMI_QC3P_POWER)
|
||||
MMI_DISCRETE_CHAN_INDEX("typec_accessory_mode", PSY_IIO_TYPEC_ACCESSORY_MODE)
|
||||
MMI_DISCRETE_CHAN_INDEX("mmi_cp_enabled_status", PSY_IIO_CP_ENABLE)
|
||||
MMI_DISCRETE_CHAN_INDEX("mmi_pd_vdm_verify", PSY_IIO_MMI_PD_VDM_VERIFY)
|
||||
};
|
||||
|
||||
int mmi_discrete_init_iio_psy(struct mmi_discrete_charger *chip,
|
||||
|
|
|
|||
Loading…
Reference in a new issue