diff --git a/drivers/power/qti_glink_charger/Android.mk b/drivers/power/qti_glink_charger/Android.mk index f65cae47f297..9905be68c0bf 100755 --- a/drivers/power/qti_glink_charger/Android.mk +++ b/drivers/power/qti_glink_charger/Android.mk @@ -18,6 +18,11 @@ ifeq ($(WIRELESS_CPS4019),true) KBUILD_OPTIONS += CONFIG_WIRELESS_CPS4019=y endif +ifeq ($(MSB_DEV),true) + KERNEL_CFLAGS += CONFIG_MSB_DEV=y + KBUILD_OPTIONS += CONFIG_MSB_DEV=y +endif + ifeq ($(SKIP_QTI_CHARGER_CONFIRMAION),true) KERNEL_CFLAGS += CONFIG_SKIP_QTI_CHARGER_CONFIRMAION=y KBUILD_OPTIONS += CONFIG_SKIP_QTI_CHARGER_CONFIRMAION=y diff --git a/drivers/power/qti_glink_charger/Kbuild b/drivers/power/qti_glink_charger/Kbuild index 36fe68be4f38..1219004ec207 100755 --- a/drivers/power/qti_glink_charger/Kbuild +++ b/drivers/power/qti_glink_charger/Kbuild @@ -11,6 +11,10 @@ ifneq ($(filter m y,$(CONFIG_WIRELESS_CPS4019)),) EXTRA_CFLAGS += -DWIRELESS_CPS4019 endif +ifneq ($(filter m y,$(CONFIG_MSB_DEV)),) + EXTRA_CFLAGS += -DMSB_DEV +endif + ifneq ($(filter m y,$(CONFIG_SKIP_QTI_CHARGER_CONFIRMAION)),) EXTRA_CFLAGS += -DSKIP_QTI_CHARGER_CONFIRMAION endif diff --git a/drivers/power/qti_glink_charger/qti_glink_charger.c b/drivers/power/qti_glink_charger/qti_glink_charger.c index ef906a68143c..15ba9553d83b 100644 --- a/drivers/power/qti_glink_charger/qti_glink_charger.c +++ b/drivers/power/qti_glink_charger/qti_glink_charger.c @@ -203,6 +203,18 @@ struct wls_dump }; #endif +struct msb_dev_info +{ + u32 usb_iin; + u32 usb_vout; + u32 usb_suspend; + u32 batt_fcc; + u32 batt_fv; + u32 chg_en; + u32 chg_st; + u32 chg_fault; +}; + struct qti_charger { char *name; struct device *dev; @@ -700,13 +712,31 @@ void qti_wireless_charge_dump_info(struct qti_charger *chg, struct wls_dump wls_ } #endif +#if defined(MSB_DEV) +void qti_msb_dev_info(struct qti_charger *chg, struct msb_dev_info msb_dev) +{ + mmi_info(chg, "msb dev info : usb_iin: %dma, usb_vout: %dmv, usb_suspend: %d, " + "batt_fcc: %dma, batt_fv: %dmv, chg_en: %d, chg_fault: 0x%x, chg_st: 0x%x", + msb_dev.usb_iin, + msb_dev.usb_vout, + msb_dev.usb_suspend, + msb_dev.batt_fcc, + msb_dev.batt_fv, + msb_dev.chg_en, + msb_dev.chg_fault, + msb_dev.chg_st); +} +#endif + static int qti_charger_get_chg_info(void *data, struct mmi_charger_info *chg_info) { int rc; struct qti_charger *chg = data; struct charger_info info; struct wls_dump wls_info; - +#if defined(MSB_DEV) + struct msb_dev_info msb_dev; +#endif rc = qti_charger_read(chg, OEM_PROP_CHG_INFO, &info, sizeof(struct charger_info)); @@ -756,6 +786,13 @@ static int qti_charger_get_chg_info(void *data, struct mmi_charger_info *chg_inf qti_wireless_charge_dump_info(chg, wls_info); } +#if defined(MSB_DEV) + qti_charger_read(chg, OEM_PROP_MSB_DEV_INFO, + &msb_dev, + sizeof(struct msb_dev_info)); + qti_msb_dev_info(chg, msb_dev); +#endif + bm_ulog_print_log(OEM_BM_ULOG_SIZE); return rc; diff --git a/drivers/power/qti_glink_charger/qti_glink_charger.h b/drivers/power/qti_glink_charger/qti_glink_charger.h index 2e51707dd406..3992c4a1c5bd 100644 --- a/drivers/power/qti_glink_charger/qti_glink_charger.h +++ b/drivers/power/qti_glink_charger/qti_glink_charger.h @@ -70,6 +70,7 @@ enum oem_property_type { OEM_PROP_WLS_WLC_TX_SN, OEM_PROP_LPD_MITIGATE_MODE, OEM_PROP_CHG_PARTNER_ICL, + OEM_PROP_MSB_DEV_INFO, OEM_PROP_MAX, };